Linux服務器使用Docker安裝Oracle12c

Linux Centos7.5

某臺Linux服務器需要安裝Oracle,但安裝過程十分繁瑣複雜,且一旦錯誤,將無法卸載乾淨,所以使用Docker拉取Oracle鏡像後安裝。

1、安裝Docker:

1.1、docker要求內核版本高於3.10,查看

uname -r

1.2、使用root權限更新yum包

sudo yum update

1.3、安裝docker

yum -y install docker-io

1.4、將docker設爲開機自啓動

sudo systemctl start docker;
sudo systemctl enable docker;

1.5、測試docker是否啓動完成並查看版本

docker version

2、安裝Oracle12C

2.1、拉取Oracle鏡像sath89/oracle-12c

docker pull sath89/oracle-12c

下載下來5G左右

查看下載的鏡像

docker images

注意:如果網慢,則多等等,還會出現一種情況,下載完2.7G的文件後,突然開始另一個文件的下載,然後卡住不動,這時直接Ctrl+C退出重新執行鏡像拉取命令

2.2、安裝Oracle

docker run --restart always -d -p 8080:8080 -p 1521:1521 -v /usr/local/oracledata:/u01/app/oracle --name orac sath89/oracle-12c

會返回一串ID如33c476a985358e42d2f18af5f3a0c2271325554fc7041a35b677892df1990824

然後執行命令查看安裝進度

docker logs -f 33c476a985358e42d2f18af5f3a0c2271325554fc7041a35b677892df1990824

這樣安裝完成則Ctrl+C退出,安裝完成~

執行

# 獲取運行的容器
docker ps
# 運行id爲7485d22f2fd5容器
docker exec -it 7485d22f2fd5 /bin/bash
# 使用sqlplus進入Oracle,使用SQL命令行,默認爲system/oracle
sqlplus system/oracle@//localhost:1521/xe

成功。使用pl/sql連接時配置tnsname,xe是這個鏡像默認的服務

VISTUAL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.xx)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = xe)
    )
  )

服務器上鏡像配置全部使用默認的,沒有做修改

安裝命令解析:

docker run --restart always -d -p 8080:8080 -p 1521:1521 -v /usr/local/oracledata:/u01/app/oracle --name orac sath89/oracle-12c
1:docker run sath89/oracle-12c
docker運行一個名爲sath89/oracle-12c的鏡像,如果該鏡像不存在於本地,則從docker遠程倉庫拉取
2:--restart always
docker容器默認爲不自啓,如斷電等情況,會導致服務無法使用
3:-p 1521:1521
就像MySQL使用3306端口連接一樣,1521是Oracle的端口
4:-v /usr/local/oracledata:/u01/app/oracle
在docker使用數據庫應注意的問題就是數據持久化,這個命令是將docker容器中安裝的Oracle數據目錄掛載到其他文件目錄下,/u01/app/oracle是容器內oracle存放數據的位置,/usr/local/oracledata是容器掛載的其他目錄,在Oracle數據庫操作後文件會同步到該文件夾
5:--name orac
爲該容器定義名稱,否則將使用默認name

總結:

# docker默認安裝目錄爲
/var/lib/docker
# 列出包含已停止的容器
docker ps -a 
# 啓動停止的容器
docker start ba4a9b5ed8f6
# 已創建的容器修改啓動策略(自動重啓等)
docker update --restart always orac
# 停止
docker stop orac
# 刪除容器
docker rm ba4a9b5ed8f6
# 刪除容器(同時刪除數據)
docker rm -v ba4a9b5ed8f6
# 運行容器到容器命令行界面
docker exec -it 7485d22f2fd5 /bin/bash
# 查找文件
find / -name tnsnames.ora 
# 本地測試服務器端口是否開啓,telnet不是內部命令解決方法:打開啓動或關閉Windows功能-Telnet勾選
telnet 192.168.58.129 1521

在虛擬機上測試時最初安裝出現錯誤(使用logs跟蹤後定位到日誌文件可查看)

Specified value of sga_target 292M is too small, needs to be at least 364M
查看虛擬機設置的內存爲1G,修改爲2G後,Oracle安裝成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章