Docker 拉取 oracle 11g映象配置
話不多說,開始記錄docker拉取阿里的oracle11g 映象並進行配置,用pl/sql 可以登入為最終結果
這是我們所需要進行拉取oracle映象的樓主所給出的說明
但是根據這個進行配置會有一些問題,所以寫這篇記錄一下,希望可以幫助其他人
開始:
①、開始拉取映象-執行命令:
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
下載的過程少長,等待吧,喝杯咖啡,休息一會!(映象6.8G)
下載完成後 檢視映象: docker images
可以看到已經下載好了
② 、建立容器
docker run -d -p
這裡說一下,命令後面的地址一定要是你下載的映象地址也就是你拉取映象名字,否則會出現名字已存在等問題!
如果建立成功能會返回容器id
③、啟動容器
docker start oracle11g
④、進入映象進行配置
1、 docker exec -it oracle11g bash
2、進行軟連線
sqlplus /nolog
發現沒有這個命令,用不了
3、切換到root 使用者下
su root
密碼:helowin
4、編輯profile檔案配置ORACLE環境變數
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
在最後加上
儲存並退出 :wq
5、建立軟連線
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
6、切換到oracle 使用者
這裡還要說一下,一定要寫中間的內條 - 必須要,否則軟連線無效
⑤ 、登入sqlplus並修改sys、system使用者密碼
sqlplus /nolog
conn /as sysdba
接著執行下面命令
alter user system identified by system;
alter user sys identified by sys;
也可以建立使用者 create user test identified by test;並給使用者賦予許可權 grant connect,resource,dba to test;
注意了這裡的坑開始出現了
當執行修改密碼的時候出現 : database not open
提示資料庫沒有開啟,不急按如下操作 輸入:alter database open;
注意了:這裡也許還會提示 : ORA-01507: database not mounted
不急!繼續!
=========== 解決方法=========== 輸入:alter database mount;輸入 :alter database open;
然後就可執行 修改資料庫密碼的命令了
改完之後輸入:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
重新整理下表
exit 是退休sql 軟連線
⑥、使用pl/sql 進行連線
之前我們把埠對映到了1521上,所以我們需要進行配置 tnsnames.ora
docker_oracle11 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.135)(PORT =1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
開啟pl/sql 進行登入 :提示監聽程式當前無法識別連線描述符中請求的服務
這時我們需要去看一下oracle 的 lsnrctl 服務
看到這兩個了麼,任選其一,修改 tnsnames.ora的 service_name=helowinXDB
docker_oracle11 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.135)(PORT =1521))
)
(CONNECT_DATA =
(SERVICE_NAME = helowinXDB)
)
)
歐克,登入成功。