oracle11在docker环境下的运行

橙三吉。 提交于 2020-01-25 00:25:10

目的

Ø 在测试的环境下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

Ø 还原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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!