在 Docker 中安装 Oracle 数据库

打印 上一主题 下一主题

主题 823|帖子 823|积分 2469

在这篇博客中,我们将探究如何使用 Docker 容器轻松地安装和运行 Oracle 数据库。Docker 提供了一种简便的方式,通过容器化,我们可以在任何支持 Docker 的情况中快速部署 Oracle 数据库。
步骤概览

步骤 1:安装 Docker

首先,确保你的体系上已经安装了 Docker。你可以根据官方文档(Docker 官方文档)提供的指南举行安装。
步骤 2:获取 Oracle 11g Docker 镜像

在 Docker Hub 上,有很多社区提供的 Oracle 数据库镜像。你可以选择符合的版本。比方,我将使用 阿里的oracle-11g 镜像。
  1. docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
复制代码

步骤 3:运行 Oracle 11g 容器(我选择持久化)


使用以下命令运行 Oracle 11g 容器:
默认启动容器的方式

  1. docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
复制代码


  • -d: 表示以后台运行的方式启动容器。
  • -it: 分别表示分配一个伪终端(pseudo-TTY)并保持 STDIN 打开。
  • -p 1521:1521: 将主机的端口映射到容器的端口,这里是将主机的 1521 端口映射到容器的 1521 端口,用于访问 Oracle 数据库。
  • --name oracle11g: 为容器指定一个名称,这里是 "oracle11g"。
  • --restart=always: 表示当容器退出时,总是重新启动容器。
持久化启动的方式

  1. docker run -d -it -p 1521:1521 --name oracle --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
复制代码
与默认启动方式相比,增长了一个 --mount 选项,用于将一个卷(volume)挂载到容器的指定路径。


  • --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata: 将名为 "oracle_vol" 的 Docker 卷挂载到容器中的 "/home/oracle/app/oracle/oradata" 路径。这样做的目标是将 Oracle 数据库的数据存储在持久化的卷中,以便数据在容器重启时得以保留。
这两种方式的选择取决于你的需求。如果你希望容器在重启时保留数据,可以选择使用挂载卷的方式,这样可以确保数据持久化。如果你对数据的持久性没有特殊要求,可以使用默认的启动方式。
步骤 4:进入 Oracle 容器

通过以下命令进入 Oracle 容器的 shell: 这个容器名称对应你之前--name的参数
  1. docker exec -it 容器名称 bash
复制代码
步骤 5:在 Oracle 容器内部举行配置

进入容器后切换到root用户,设置情况变量


有说修改/etc/profile也有说修改/home/oracle/.bashrc 这里选择全都修改

  1. export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
  2. export ORACLE_SID=helowin
  3. export PATH=$ORACLE_HOME/bin:$PATH
  4. #末尾加上
复制代码

修改完之后source一下

  1. source /etc/profile
  2. source /home/oracle/.bashrc
复制代码
切换回oracle用户

  1. su - oracle
复制代码
进入oracle的命令行

  1. sqlplus /nolog
复制代码
接下来可以做一些修改密码啊 等等的操纵 举个例子如下:

  1. CONNECT / AS SYSDBA;
  2. alter user system identified by 新密码;
  3. 修改system密码
  4. CREATE USER 用户 IDENTIFIED BY 新密码;
  5. 新建用户设置密码
  6. GRANT CREATE SESSION TO 用户;
  7. GRANT CREATE TABLE TO 用户;
  8. ALTER USER 用户 QUOTA UNLIMITED ON USERS;
复制代码

  • CONNECT / AS SYSDBA;
     以 SYSDBA 角色毗连到数据库。 使用 SYSDBA 角色登录,该角色具有最高级别的数据库权限,允许举行体系级别的管理任务。
  • alter user system identified by 密码;
    修改体系用户(system)的登录密码。
  • CREATE USER hhhhh IDENTIFIED BY 密码;
     创建一个新用户 hhhhh,并指定其登录密码。
  • GRANT CREATE SESSION TO hhhhh;
     允许用户 hhhhh毗连到数据库。
  • GRANT CREATE TABLE TO hhhhh;
     允许用户 hhhhh在数据库中创建新的表。
  • ALTER USER hhhhh QUOTA UNLIMITED ON USERS;
    设置用户 hhhhh 在表空间 USERS 上的存储配额为无限制,允许用户存储数据。
开启长途毗连(修改监听)

  1. exit;
  2. 先退出刚才oracle命令行,已退出来的不用管了
  3. cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin
复制代码
在 /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin 目次下,你可能会找到以下一些重要的配置文件:

  • listener.ora: 这个文件包含了 Oracle 数据库监听器的配置信息。你可以在这里指定监听的端口、协议、监听地址等。
  • tnsnames.ora: 这个文件包含了数据库毗连的别名和毗连信息。你可以在这里定义数据库的毗连方式。
  • sqlnet.ora: 这个文件包含了 SQL*Net 的配置信息,定义了 Oracle 客户端与服务器之间的通信参数。
这里目前修改tnsnames.ora和listener.ora,把他们的hosts改为你访问的ip我这测试情况直接全放了0.0.0.0





  1. systemctl restart docker
复制代码
步骤 6:毗连到 Oracle 数据库

最后,我使用nacivat毗连(阿里的这个镜像,所有的密码都是统一的 helowin) 如果没修改的话直接用helowin登录就好

这只是一个简要的指南,具体的步骤可能会根据使用的 Oracle Docker 镜像版本而有所不同。在实际操纵中,请确保遵循相干文档并保持对 Oracle 数据库允许的合规性。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

怀念夏天

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表