oracle11在docker环境下的运行

简介: 目的 Ø 在测试的环境下oracle数据库不存在或访问不方便时,可以将这个环境快速恢复出来 Ø 开发时方便测试之用 可以在任何包含docker服务的机器上运行,具体的docker的安装可以参考如下: rpm -ivh --nodeps --force *.

目的

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

 

相关文章
|
3天前
|
JSON JavaScript 开发者
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
【8月更文挑战第7天】Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
|
10天前
|
Linux iOS开发 Docker
Docker技术概论(2):Docker环境的搭建
Docker技术概论(2):Docker环境的搭建
53 17
|
1天前
|
前端开发 PHP 开发者
React Server Component 使用问题之怎么使用Docker运行PHP应用
React Server Component 使用问题之怎么使用Docker运行PHP应用
|
1天前
|
Ubuntu Shell Docker
在Docker环境下如何“安装”Ubuntu
【8月更文挑战第18天】在Docker环境中“安装”Ubuntu实际上是指利用Ubuntu镜像构建容器。
10 1
|
5天前
|
监控 Ubuntu Docker
如何在Docker容器启动时自动运行脚本
【8月更文挑战第13天】在Docker容器启动时自动运行脚本可通过以下方式实现:1) 使用`ENTRYPOINT`或`CMD`指令在Dockerfile中直接指定启动脚本,如`ENTRYPOINT [&quot;/startup.sh&quot;]`;2) 启动容器时通过`--entrypoint`参数指定脚本路径;3) 利用supervisor等进程管理工具自动启动与监控脚本,确保其稳定运行。确保脚本具有执行权限并正确设置依赖资源路径。
|
19天前
|
弹性计算 Ubuntu 开发工具
云服务器 ECS产品使用问题之如何在Docker环境中修改配置文件
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
16天前
|
Web App开发 关系型数据库 PHP
使用 Docker 快速搭建多版本 PHP 开发环境
使用 Docker 快速搭建多版本 PHP 开发环境
18 2
|
21天前
|
人工智能 Serverless API
函数计算产品使用问题之如何在一个Docker容器内运行一个持续监听特定端口的应用程序
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
25天前
|
存储 Oracle 关系型数据库
|
24天前
|
SQL Oracle 关系型数据库
关系型数据库Oracle设置 RMAN 环境:
【7月更文挑战第25天】
41 2