Docker快速搭建Oracle11G
1.前置環境
CentOS7.8
Docker
2.搭建Oracle服務
拉取Oracle映象
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
執行映象
docker run -p 1521:1521 \ --restart=always \ --name oracle11g \ registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
拷貝容器裡面的資料檔案
sudo docker cp oracle11g:/home/oracle/app/oracle/oradata /home/oracle11g/oracle_data/
sudo docker cp oracle11g:/home/oracle/app/oracle/flash_recovery_area /home/oracle11g/flash_recovery_area/
新建資料夾oracle11g,授權(500:500是容器使用者的id):
chown -R 500:500 /home/oracle11g/
停止容器:
docker stop oracle11g
刪除容器:
docker rm oracle11g
重新執行容器:
docker run -p 1521:1521 \
--restart=always \
--name oracle11g \
-v /home/oracle11g/oracle_data:/home/oracle/app/oracle/oradata \
-v /home/oracle11g/flash_recovery_area:/home/oracle/app/oracle/flash_recovery_area \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
進入容器設定使用者資訊
docker exec -it oracle_11g bash
切換root使用者,密碼:helowin(不能使用exit,直接退出容器了,需要使用su - root)
配置oracle環境變數
vi /etc/profile
在末尾新增
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
重新整理配置
source /etc/profile
建立建立sqlplus軟連線
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
切換到oracle使用者,先重新整理配置
source /etc/profile
登入sqlplus
sqlplus /nolog
conn / as sysdba
或者
sqlplus / as sysdba
修改sys和system使用者密碼
alter user system identified by system;
alter user sys identified by sys;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
驗證
3.pl/sql developer連線
修改tnsnames.ora,新增連線串
ORCL_DOCKER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 具體的ip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = helowin) ) )
pl/sql developer連線測試
或者直接在plsql中寫使用者名稱、密碼後,資料庫資訊直接填寫為ip:1521/helowin,則無需配置tnsnames.ora
其他操作
system使用者沒有sysdba的許可權
執行sql:
grant sysdba to system
解鎖scott使用者
--解鎖scott使用者(安裝時若使用預設情況沒有解鎖和設定密碼進行下列操作,要超級管理員操作) alter user scott account unlock;
--解鎖scott使用者的密碼【此句也可以用來重置密碼】 alter user scott identified by scott;