CENTOS 7 使用Docker安装oracle 11g

1.docker第一次安装失败,下一次会提示同名的容器已经存在,解决办法:

docker container ls -a

根据上面执行的接口,选择一个containerid,然后带入到下面的命令

docker container rm -f containerid

2.安装的时候报文件找不到

我是在WINDOWS上通过CHROME浏览器下载并在WINDOWS上解压的(经验告诉我解压第一个PART会自动解压第二个,但是并没有),只解压了第一个oracle安装文件(linux.x64_11gR2_database_1of2.zip),第二个(linux.x64_11gR2_database_2of2.zip)没有解压。。。所以报错。

3.修改sys/system用户密码

使用sqlplus / as sysdba登陆进去之后执行如下命令:

alter user sys identified by abc123;
alter user system identified by abc123;

4.创建新用户

使用sqlplus / as sysdba登陆进去之后执行如下命令或者使用IDE工具以SYS/SYSTEM登录之后执行:

create user acct identified by abc123;
grant resource,connect to acct;
grant select any table to acct;
grant debug any procedure,debug connect session to acct;

5.查看ORACLE SID或者SERVICENAME

一般来说SID和SERVICENAME是一致的

使用sqlplus / as sysdba登陆进去之后执行如下命令:

select instance_name from V$instance;

6.重启服务器之后重启docker(要求root权限)

CENTOS 7 使用Docker安装oracle 11g

执行命令:

docker start 043afeb3a74d

CENTOS 7 使用Docker安装oracle 11g

检查oracle是否启动成功

netstat -anp|grep 1521

CENTOS 7 使用Docker安装oracle 11g

7.设置开机启动

7.1首先docker自己得先开机启动

systemctl enable docker.service

7.2将oracle容器设置为开机启动

要求容器没有运行

docker run –restart=always 043afeb3a74d

要求containerid=043afeb3a74d的容器是运行着的(我自己测试这种方式)

docker update –restart=always 043afeb3a74d

测试:先reboot机器

然后执行netstat -anp|grep 1521

CENTOS 7 使用Docker安装oracle 11g

使用Docker安装oracle 11g

简介

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。

借助docker,安装oracle不再困难,只需要几步即可。

一,安装Docker(就不截图了)

如果没有root用户或者你的用户没有加入sudoers列表,你是没法玩的

yum update

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum list docker-ce –showduplicates | sort -r

yum install docker-ce-18.06.3.ce-3.el7

二,安装

2.1、安装oracle 11g镜像到docker

2.1.1、搜索符合条件的镜像

<span class="hljs-attr">docker <span class="hljs-string">search oracle

<span class="hljs-attr">NAME                                  <span class="hljs-string">DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
<span class="hljs-attr">oraclelinux                           <span class="hljs-string">Official Docker builds of Oracle Linux.         573                 [OK]
</span></span></span></span></span></span>

2.1.2、选择安装 jaspeen/oracle-11g,等待下载安装完成

<span class="hljs-attr">docker <span class="hljs-string">pull jaspeen/oracle-11g
</span></span>

2.1.3、查看下载好的镜像

<span class="hljs-attr">docker <span class="hljs-string">images

<span class="hljs-attr">REPOSITORY                 <span class="hljs-string">TAG                 IMAGE ID            CREATED             SIZE
</span></span></span></span>

注意,这个镜像没有直接安装好oracle,他帮我们配置好了环境,提供了安装脚本,我们只需要按照要求把oracle的安装目录配置好,启动镜像,即可

2.2、准备oracle 11g安装文件

2.2.1、下载oracle 11g安装文件

oracle 官网 下载所需要的安装包,这里我们以oracle 11g 为例子,分别下载 linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip两个压缩包,下载完成后解压到home目录(如下目录结构)


  <span class="hljs-selector-tag">home
    &#x2514;&#x2500;<span class="hljs-selector-tag">database
        &#x251C;&#x2500;<span class="hljs-selector-tag">doc
        &#x251C;&#x2500;<span class="hljs-selector-tag">install
        &#x251C;&#x2500;<span class="hljs-selector-tag">response
        &#x251C;&#x2500;<span class="hljs-selector-tag">rpm
        &#x251C;&#x2500;<span class="hljs-selector-tag">sshsetup
        &#x251C;&#x2500;<span class="hljs-selector-tag">stage
        &#x251C;&#x2500;<span class="hljs-selector-tag">runInstaller
        &#x2514;&#x2500;<span class="hljs-selector-tag">welcome<span class="hljs-selector-class">.html
</span></span></span></span></span></span></span></span></span></span></span>

2.3、安装oracle

2.3.1、注意事项

为什么要解压成上面的目录结构,我们先来看看 jaspeen/oracle-11g镜像提供的安装脚本

从脚本里可以看到它会读取 /install/database目录,如果不存在会给出提示 Installation files not found. Unzip installation files into mounted(/install) folder

2.3.2、启动镜像(执行安装oracle)

命令的解释:

  • docker run 启动容器的命令
  • privileged 给这个容器特权,安装oracle可能需要操作需要root权限的文件或目录
  • name 给这个容器名一个名字
  • p 映射端口
  • v 挂在文件到容器指定目录 (/home&#xA0;对应容器 /install/database)
  • jaspeen/oracle-11g 代表启动指定的容器
<span class="hljs-attr">docker <span class="hljs-string">run --privileged --name oracle11g -p 1521:1521 -v /home:/install jaspeen/oracle-11g

<span class="hljs-attr">Database <span class="hljs-string">is not installed. Installing...

<span class="hljs-attr">Installing <span class="hljs-string">Oracle Database 11g
<span class="hljs-attr">Starting <span class="hljs-string">Oracle Universal Installer...

<span class="hljs-attr">Checking <span class="hljs-string">Temp space: must be greater than 120 MB.   Actual 47303 MB    Passed
<span class="hljs-attr">Checking <span class="hljs-string">swap space: must be greater than 150 MB.   Actual 1023 MB    Passed
<span class="hljs-attr">Preparing <span class="hljs-string">to launch Oracle Universal Installer from /tmp/OraInstall2019-04-17_08-14-23AM. Please wait ...

<span class="hljs-attr">You <span class="hljs-string">can find the log of this install session at:
 <span class="hljs-attr">/opt/oracle/oraInventory/logs/installActions2019-04-17_08-14-23AM.log
 <span class="hljs-attr">&#x2026;&#x2026;
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

这个安装过程会很漫长,日志也很多,这里只提供部分。注意到日志里有 100% complete 打印,代表oracle安装成功

2.3.3、安装完成

再次查看运行状态,oracle已经启动完成

<span class="hljs-string">docker <span class="hljs-string">ps <span class="hljs-string">-a

<span class="hljs-string">CONTAINER <span class="hljs-string">ID        <span class="hljs-string">IMAGE                <span class="hljs-string">COMMAND                  <span class="hljs-string">CREATED             <span class="hljs-string">STATUS                      <span class="hljs-string">PORTS                                                                             <span class="hljs-string">NAMES
<span class="hljs-string">7f53f07c93e5        <span class="hljs-string">jaspeen/oracle-11g   <span class="hljs-string">"/assets/entrypoint.&#x2026;"   <span class="hljs-string">About <span class="hljs-string">an <span class="hljs-string">hour <span class="hljs-string">ago   <span class="hljs-string">Up <span class="hljs-string">About <span class="hljs-string">an <span class="hljs-string">hour            <span class="hljs-number">0.0<span class="hljs-number">.0<span class="hljs-number">.0<span class="hljs-string">:1521->1521/tcp, <span class="hljs-number">8080<span class="hljs-string">/tcp                                                  <span class="hljs-string">oracle11g
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

2.3.4、其他需要注意的,如果日志长时间没有更新,检查docker是否已经死掉

查看docker的状态

<span class="hljs-attr">docker <span class="hljs-string">ps -a
</span></span>
<span class="hljs-built_in">Error response <span class="hljs-keyword">from daemon: An invalid argument was supplied.

</span></span>

如果出现如上提示,表示docker已经死掉,我们只需要重新执行安装步骤,让oracle安装完成

ps:根据我的猜测,我给docker分配的资源不够导致的,我重新把docker的内存和cpu调高一点后oracle顺利安装完成。

<span class="hljs-attr">docker <span class="hljs-string">rm oracle11g
<span class="hljs-attr">docker <span class="hljs-string">run --privileged --name oracle11g -p 1521:1521 -v oracleinstall:/install jaspeen/oracle-11g
</span></span></span></span>

三,配置

默认scott用户是被锁定的,我们需要解锁,通过数据库工具即可成功连接到oracle

3.1,连接到容器,

<span class="hljs-attr">docker <span class="hljs-string">exec -it oracle11g /bin/bash
</span></span>

3.2,切换到oracle用户,然后连接到sql控制台

<span class="hljs-string">[root@7f53f07c93e5 <span class="hljs-string">/]# <span class="hljs-string">su <span class="hljs-bullet">- <span class="hljs-string">oracle
<span class="hljs-attr">Last login: <span class="hljs-string">Wed <span class="hljs-string">Apr <span class="hljs-number">17 <span class="hljs-number">08<span class="hljs-string">:29:31 <span class="hljs-string">UTC <span class="hljs-number">2019
<span class="hljs-string">[oracle@7f53f07c93e5 <span class="hljs-string">~]$ <span class="hljs-string">sqlplus <span class="hljs-string">/ <span class="hljs-string">as <span class="hljs-string">sysdba

<span class="hljs-string">SQL*Plus: <span class="hljs-string">Release <span class="hljs-number">11.2<span class="hljs-number">.0<span class="hljs-number">.1<span class="hljs-number">.0 <span class="hljs-string">Production <span class="hljs-string">on <span class="hljs-string">Wed <span class="hljs-string">Apr <span class="hljs-number">17 <span class="hljs-number">09<span class="hljs-string">:29:49 <span class="hljs-number">2019

<span class="hljs-string">Copyright <span class="hljs-string">(c) <span class="hljs-number">1982<span class="hljs-string">, <span class="hljs-number">2009<span class="hljs-string">, <span class="hljs-string">Oracle.  <span class="hljs-string">All <span class="hljs-string">rights <span class="hljs-string">reserved.

<span class="hljs-attr">Connected to:
<span class="hljs-string">Oracle <span class="hljs-string">Database <span class="hljs-string">11g <span class="hljs-string">Enterprise <span class="hljs-string">Edition <span class="hljs-string">Release <span class="hljs-number">11.2<span class="hljs-number">.0<span class="hljs-number">.1<span class="hljs-number">.0 <span class="hljs-bullet">- <span class="hljs-string">64bit <span class="hljs-string">Production
<span class="hljs-string">With <span class="hljs-string">the <span class="hljs-string">Partitioning, <span class="hljs-string">OLAP, <span class="hljs-string">Data <span class="hljs-string">Mining <span class="hljs-string">and <span class="hljs-string">Real <span class="hljs-string">Application <span class="hljs-string">Testing <span class="hljs-string">options

<span class="hljs-string">SQL>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

3.3,解锁账户

3.4,使用PL/SQL Devolper连接Oracle数据库

编辑本机oracle客户端或者服务端tnsnames.ora文件,增加如下配置

ACCT_LOCAL_DCOKER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

打开PL/SQL Developer选择ACCT_LOCAL_DCOKER,输入账号、密码即可

3.5使用DBeaver连接Oracle

CENTOS 7 使用Docker安装oracle 11g

Original: https://www.cnblogs.com/lcword/p/16048342.html
Author: lclc
Title: CENTOS 7 使用Docker安装oracle 11g

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/534152/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球