hitl 发表于 2017-12-6 13:39:30

oracle11在docker环境下的运行

目的
  Ø 在测试的环境下oracle数据库不存在或访问不方便时,可以将这个环境快速恢复出来
  Ø 开发时方便测试之用
  可以在任何包含docker服务的机器上运行,具体的docker的安装可以参考如下:
  rpm -ivh --nodeps --force *.rpm
  systemctl enable docker.service
  service docker restart
  我们提供了11g的2个版本
  Ø Express:这是内存消耗较少,速度快
  Ø 企业版:完整的企业版本
  根据情况选择使用
场景
  在我们的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
  &Oslash; 还原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 .
  如下就是恢复出来的系统
# 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
运行
  &Oslash; 第一次运行
  docker run -d -P -p 1521:1521 --name xe oracle_xe11g
  运行后可以查看系统的情况
# 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
  &Oslash; 后续运行
  在该机器上运行时,可以使用以下的简化命令
  docker stop xe 停止容器
  docker start xe 启动容器
  &Oslash; 进入容器的SHELL
  执行结果类似如下[必须有这些守护进程才可用]
# 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:/#
  &Oslash; 数据库账号
  n sys/oralce
  n system/oracle
  n SID: xe

Oracle 11g版本
  #docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
  已经把这个存为了helowin_oracel11g.tar
还原镜像
  #docker load < helowin_oracel11g.tar
  可以看到类似如下:
# docker images
  REPOSITORY                                             TAG               IMAGE ID            CREATED             SIZE
  registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   latest            3fa112fd3642      17 months ago       6.849 GB
运行
  &Oslash; 第一次运行
  docker run -d -P --name 11g 3fa
  运行后可以查看系统的情况
# 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
  &Oslash; 后续运行
  在该机器上运行时,可以使用以下的简化命令
  docker stop 11g 停止容器
  docker start 11g 启动容器
  &Oslash; 进入容器的SHELL
  执行结果类似如下[必须有这些守护进程才可用]
# docker exec -it 11g bash
$ 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
$
  在此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
  &Oslash; 数据库账号
  n sys/oralce
  n system/oracle
  n SID: helowin

页: [1]
查看完整版本: oracle11在docker环境下的运行