oracle11在docker環境下的運行

目的

Ø 在測試的環境下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實例,嘗試了屢次的教訓]

Oracle Express 11版本

這個使用的是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

wpsC460.tmp

Oracle 11g版本

#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

wpsC471.tmp

相關文章
相關標籤/搜索