Ø 在測試的環境下oracle數據庫不存在或訪問不方便時,能夠將這個環境快速恢復出來node
Ø 開發時方便測試之用linux
能夠在任何包含docker服務的機器上運行,具體的docker的安裝能夠參考以下:git
rpm -ivh --nodeps --force *.rpmgithub
systemctl enable docker.servicesql
service docker restartdocker
咱們提供了11g的2個版本數據庫
Ø Express:這是內存消耗較少,速度快express
Ø 企業版:完整的企業版本ubuntu
根據狀況選擇使用centos
在咱們的centos7機器上或客戶相似環境的機器上[只要安裝了docker都可],直接運行這些服務
修改/etc/selinux/config文件,設置爲disable
# disabled - No SELinux policy is loaded.
SELINUX=disable
重啓機器
[這個很關鍵,屢次的實驗代表若是不設置這個,pull下來的容器啓動後沒有oracle實例,嘗試了屢次的教訓]
這個使用的是dockerfile文件進行安裝出來的
https://github.com/wnameless/docker-oracle-xe-11g 其中基於ubuntu16的版本有問題,獲取的是ubuntu14的分支
Ø 還原系統Ubuntu
首先還原出來一個ubuntu14的鏡像
#docker load < ubuntu_14.04.4.tar
Ø 還原oracle express
n 解壓docker 文件: tar -xvzf docker-oracle-xe-11g.tar.gz -C /root/.
n cd /root/docker-oracle-xe-11g ; docker build -t oracle_xe11g .
以下就是恢復出來的系統
[root@demo docker-oracle-xe-11g]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
oracle_xe11g latest 3d2fb0c62e4d 38 minutes ago 2.251 GB
docker.io/ubuntu 14.04.4 0ccb13bf1954 11 months ago 187.9 MB
Ø 第一次運行
docker run -d -P -p 1521:1521 --name xe oracle_xe11g
運行後能夠查看系統的狀況
[root@demo docker-oracle-xe-11g]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
130510c450e8 oracle_xe11g "/bin/sh -c '/usr/sbi" 41 minutes ago Up 2 seconds 0.0.0.0:1521->1521/tcp, 0.0.0.0:32778->22/tcp, 0.0.0.0:32777->8080/tcp xe
Ø 後續運行
在該機器上運行時,能夠使用如下的簡化命令
docker stop xe 中止容器
docker start xe 啓動容器
Ø 進入容器的SHELL
執行結果相似以下[必須有這些守護進程纔可用]
[root@demo docker-oracle-xe-11g]# docker exec -it xe bash
root@130510c450e8:/# ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 /bin/sh -c /usr/sbin/startup.sh && /usr/sbin/sshd -D
22 ? Ssl 0:00 /u01/app/oracle/product/11.2.0/xe/bin/tnslsnr LISTENER -inherit
36 ? Ss 0:00 xe_pmon_XE
38 ? Ss 0:00 xe_psp0_XE
40 ? Ss 0:00 xe_vktm_XE
44 ? Ss 0:00 xe_gen0_XE
46 ? Ss 0:00 xe_diag_XE
48 ? Ss 0:00 xe_dbrm_XE
50 ? Ss 0:00 xe_dia0_XE
52 ? Ss 0:00 xe_mman_XE
54 ? Ss 0:00 xe_dbw0_XE
56 ? Ss 0:00 xe_lgwr_XE
58 ? Ss 0:00 xe_ckpt_XE
60 ? Ss 0:00 xe_smon_XE
62 ? Ss 0:00 xe_reco_XE
64 ? Ss 0:00 xe_mmon_XE
66 ? Ss 0:00 xe_mmnl_XE
68 ? Ss 0:00 xe_d000_XE
70 ? Ss 0:00 xe_s000_XE
72 ? Ss 0:00 xe_s001_XE
74 ? Ss 0:00 xe_s002_XE
76 ? Ss 0:00 xe_s003_XE
84 ? Ss 0:00 xe_vkrm_XE
86 ? Ss 0:00 xe_qmnc_XE
88 ? S 0:00 /usr/sbin/sshd -D
102 ? Ss 0:00 xe_cjq0_XE
112 ? Ss 0:00 xe_q000_XE
114 ? Ss 0:00 xe_q001_XE
116 ? Ss 0:00 xe_j000_XE
118 ? Ss 0:00 xe_j001_XE
119 ? Ss 0:00 bash
132 ? R+ 0:00 ps ax
root@130510c450e8:/#
Ø 數據庫帳號
n sys/oralce
n system/oracle
n SID: xe
#docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
已經把這個存爲了helowin_oracel11g.tar
#docker load < helowin_oracel11g.tar
能夠看到相似以下:
[root@demo docker-oracle-xe-11g]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g latest 3fa112fd3642 17 months ago 6.849 GB
Ø 第一次運行
docker run -d -P --name 11g 3fa
運行後能夠查看系統的狀況
[root@demo docker-oracle-xe-11g]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
53b4ba87ef34 3fa "/bin/sh -c '/home/or" About an hour ago Up 6 seconds 0.0.0.0:32776->1521/tcp 11g
Ø 後續運行
在該機器上運行時,能夠使用如下的簡化命令
docker stop 11g 中止容器
docker start 11g 啓動容器
Ø 進入容器的SHELL
執行結果相似以下[必須有這些守護進程纔可用]
[root@demo docker-oracle-xe-11g]# docker exec -it 11g bash
[oracle@53b4ba87ef34 /]$ ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 /bin/sh -c /home/oracle/app/oracle/product/11.2.0/dbhome_2/bin/dbstart /home/oracle/app/oracle/product/11.2.0/dbhome_2 && tail -f /home/oracle/app
18 ? Ssl 0:00 /home/oracle/app/oracle/product/11.2.0/dbhome_2/bin/tnslsnr LISTENER -inherit
57 ? Ss 0:00 ora_pmon_helowin
59 ? Ss 0:00 ora_vktm_helowin
63 ? Ss 0:00 ora_gen0_helowin
65 ? Ss 0:00 ora_diag_helowin
67 ? Ss 0:00 ora_dbrm_helowin
69 ? Ss 0:00 ora_psp0_helowin
71 ? Ss 0:00 ora_dia0_helowin
73 ? Ss 0:00 ora_mman_helowin
75 ? Ss 0:00 ora_dbw0_helowin
77 ? Ss 0:00 ora_lgwr_helowin
79 ? Ss 0:00 ora_ckpt_helowin
81 ? Ss 0:00 ora_smon_helowin
83 ? Ss 0:00 ora_reco_helowin
85 ? Ss 0:00 ora_mmon_helowin
87 ? Ss 0:00 ora_mmnl_helowin
89 ? Ss 0:00 ora_d000_helowin
91 ? Ss 0:00 ora_s000_helowin
99 ? Ss 0:00 ora_p000_helowin
101 ? Ss 0:00 ora_p001_helowin
105 ? Ss 0:00 ora_qmnc_helowin
122 ? S 0:00 tail -f /home/oracle/app/oracle/product/11.2.0/dbhome_2/startup.log
136 ? Ss 0:00 ora_cjq0_helowin
148 ? Ss 0:00 ora_q000_helowin
150 ? Ss 0:00 ora_q001_helowin
152 ? Ss 0:00 ora_j000_helowin
154 ? Ss 0:00 ora_j001_helowin
155 ? Ss 0:00 bash
168 ? R+ 0:00 ps ax
[oracle@53b4ba87ef34 /]$
在此Shell下執行以下的語句
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$PATH:$ORACLE_HOME/bin
sqlplus / as sysdba
alter user system identified by oracle;
alter user sys identified by oracle;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
LINUX帳號: root helowin
Ø 數據庫帳號
n sys/oralce
n system/oracle
n SID: helowin