隨着數據存儲的不斷增加和雲計算的普及,Oracle數據庫成為了企業中最受歡迎的數據庫,而Docker容器技術也越來越流行。在這篇文章中,我們將會詳細介紹如何使用Docker容器安裝Oracle數據庫,同時提供各種場景下的解決方案。
一、Docker安裝Oracle19c
Oracle19c是當前最新的數據庫版本,具有高效的本機加密、在內存處理JSON和圖形數據、自動並行優化等特性,而Docker安裝Oracle19c的步驟如下:
第一步:安裝Docker並啟動服務。
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker && sudo systemctl enable docker
第二步:創建一個新的目錄並下載Oracle Docker鏡像,並執行運行命令。
sudo mkdir -p /opt/oracle18c/dbhome
sudo docker pull container-registry.oracle.com/database/standard:19.3.0.0
sudo docker run --name oracle19c -p 1521:1521 -p 5500:5500 -e ORACLE_PWD=password -v /opt/oracle18c/dbhome:/opt/oracle/oradata container-registry.oracle.com/database/standard:19.3.0.0
其中,“-p”標識可以將Docker容器中的端口映射到主機,使得主機可以通過這些端口連接到容器內,”-v”標識可以掛載主機上的目錄到Docker容器內,實現數據的持久化。
二、Docker安裝Oracle11g
註:此方法不再推薦使用,已過時。
Oracle11g是之前最常用的版本之一,這裡我們提供在Docker中安裝Oracle11g的步驟:
第一步:安裝Docker並啟動服務,同上。
第二步:下載Oracle Docker鏡像並執行運行命令。
docker pull wnameless/oracle-xe-11g
docker run -d -p 1521:1521 -p 8080:8080 -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g
“-d”標識意味着容器將在後台運行,不會佔用當前終端。
三、Docker安裝Oracle19c特別慢
有時候,Docker安裝Oracle19c可能會比較緩慢,這時候可以嘗試更改Docker的鏡像源為國內高速源,然後再執行Docker命令,如下所示。
第一步:添加阿里雲Docker源。
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://7urk5sqq.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
第二步:下載Oracle Docker鏡像並執行啟動命令。
sudo docker pull container-registry.oracle.com/database/standard:19.3.0.0
sudo docker run -d -p 1521:1521 -p 5500:5500 --name oracle19c --network=bridge -e ORACLE_SID=ORCLCDB -e ORACLE_PDB=PDB1 -e ORACLE_PWD=Oradoc_db1 -v /oracle/oradata -v /oracle/scripts -v /oracle/dpdump container-registry.oracle.com/database/standard:19.3.0.0
這樣我們就將Oracle19c安裝到了Docker中,注意需要使用”–network=bridge”參數啟用橋接網絡模式。
四、Docker安裝Oracle橋接網絡
在默認情況下,容器內的網絡是與主機隔離的。為了使容器可以通過網絡訪問其他容器和主機,我們需要使用橋接網絡。步驟如下:
第一步:創建一個新的橋接網絡。
docker network create mynet
第二步:啟動Oracle容器並指定剛剛創建的橋接網絡。
docker run -d --name oracle11g --network=mynet ......
現在,我們可以在同一橋接網絡中啟動其他容器,例如使用Tomcat容器連接Oracle數據庫。
五、Docker安裝Oracle19c卡在42
有時,Docker安裝Oracle19c可能會卡在43%(或42%),這時候可以使用以下方法解決問題。
第一步:安裝依賴軟件包。
apt-get install libaio1 libaio-dev
第二步:將Linux內核參數更改為適合Oracle的設置。
sudo sysctl -w fs.file-max=6815744
sudo sysctl -w kernel.sem=250 32000 100 128
sudo sysctl -w fs.suid_dumpable=1
sudo sysctl -w net.ipv4.ip_local_port_range='9000 65500'
sudo sysctl -w kernel.sysrq=1
sudo sysctl -w kernel.shmall=1073741824
sudo sysctl -w kernel.shmmax=4398046511104
sudo sysctl -w kernel.panic_on_oops=1
sudo sysctl -w net.core.rmem_default=262144
sudo sysctl -w net.core.rmem_max=4194304
sudo sysctl -w net.core.wmem_default=262144
sudo sysctl -w net.core.wmem_max=1048576
sudo sysctl -w vm.max_map_count=262144
第三步:重新啟動服務器並重試Oracle19c Docker安裝。
六、Docker安裝Oracle19c卡在46
在安裝Oracle19c期間,Docker進度條可能會卡在46%-47%左右。這個問題也可以通過以下解決方案來解決。
第一步:終止Docker容器。
docker stop [container-name]
docker rm [container-name]
第二步:刪除Docker容器的目錄。
rm -rf /u01/app/oracle
rm -rf /u01/app/oraInventory
注意,如果你有其他的容器需要保留,那麼不要刪除Docker的目錄。
第三步:重新構建Docker鏡像。
sudo docker build -t myoracle:19c .
接着,重新啟動Docker容器,就可以正常安裝Oracle19c。
七、Docker安裝Oracle19c
這裡我們提供一個最簡單的安裝Oracle19c的方法:
第一步:下載Oracle Docker鏡像並啟動容器。
docker run --name oracle19c -p 1521:1521 -p 5500:5500 -e ORACLE_PWD=password -v /my/oracle/home:/opt/oracle/oradata container-registry.oracle.com/database/standard:19.3.0.0
這樣,我們就成功地將Oracle19c安裝在了Docker容器中。
八、Docker安裝Oracle重啟後數據沒了
如果在Docker容器中安裝Oracle,並且在容器重啟後你發現數據變丟失了,這裡提供一種解決方案。
第一步:使用docker-compose管理Oracle容器。
第二步:將Oracle數據文件卷掛載到本地目錄。
volumes:
- ./db_data:/opt/oracle/oradata
第三步:在docker-compose.yml文件中添加一些其餘設置。
environment:
- ORACLE_ALLOW_REMOTE=true
- ORACLE_PWD=p@ssword
- ORACLE_CHARACTERSET=AL32UTF8
- ORACLE_DBNAME=orcl
- ORACLE_BASE=/opt/oracle
- ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
- ORACLE_SID=ORCLCDB
第四步:啟動Oracle容器並檢查數據是否成功持久化。
sudo docker-compose up -d
docker exec -it oracle19c bash
ls /opt/oracle/oradata
九、Docker安裝Oracle客戶端
有時候,我們可能需要在Docker容器中安裝Oracle客戶端,可以使用以下命令來安裝:
docker pull mjung/oracle11g-client
docker run --name oracle_client --network host -e TWO_TASK= -e ORACLE_HOME=/usr/lib/oracle/11.2/client64 mjung/oracle11g-client
其中,”-e”標識可以指定Docker容器中的環境變量,使得容器中的應用程序可以獲取這些值。
十、Docker安裝Oracle利弊
最後,我們對Docker安裝Oracle的優缺點進行了總結:
優點:
1、能夠以容器化的方式部署Oracle數據庫,提高了數據存儲的彈性和可操作性。
2、使用容器鏡像可以實現Oracle數據庫的快速部署,減少服務器資源的損耗和管理成本。
3、能夠為企業提供更快、更高效、更穩定的操作方式。
缺點:
1、Docker容器中的Oracle數據庫不能使用所有的Oracle功能。
2、在容器中部署Oracle數據庫會涉及到網絡和數據存儲等問題,需要特別注意。
3、Docker容器中的Oracle數據庫可能會涉及到性能問題,在高負載情況下,容器可能無法提供足夠的性能。
以上就是Docker安裝Oracle的詳細介紹,不同的安裝方法適用於不同的場景,如有需要,請選擇適合自己的方式進行安裝和配置。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/278936.html