您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

docker 安装 oracle_11g_r2 并实现数据持久化

bubuko 2022/1/25 20:03:37 其他 字数 3830 阅读 631 来源 http://www.bubuko.com/infolist-5-1.html

1,采用 docker compose 安装 1,创建相关文件 2,docker compose.yml 配置文件的内容如下 3,启动容器,并进入容器 4,配置环境,并创建一个用户,实现外部连接 5,使用 plsql 连接 1. 账号:test 2. 密码:oracle 3. 连接:ip:1521/ ...

1,采用 docker-compose 安装

1,创建相关文件

mkdir /usr/local/docker
cd /usr/local/docker
mkdir oracle
cd oracle
touch docker-compose.yml 

2,docker-compose.yml 配置文件的内容如下

version: ‘3.1‘
services:
  master:
    image: registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
    container_name: oracle
    privileged: true
    ports:
      - 1521:1521

3,启动容器,并进入容器

docker-compose up -d
docker exec -it oracle bash

4,配置环境,并创建一个用户,实现外部连接

cd /home/oracle                                           # 进入到 oracle 用户目录
source .bash_profile                                      # 加载 oracle 环境变量
$PATH                                                     # 查看 oracle 环境变量是否生效
sqlplus / as sysdba                                       # 连接 oracle 数据库
alter user system identified by oracle;                   # 修改 DBA 账号的密码
alter user sys identified by oracle;                      # 修改 DBA 账号的密码
alter profile default limit password_life_time unlimited; # 设置密码为永不过期
create user test identified by oracle;                    # 创建一个 test 用户,密码 oracle
select * from dba_users t where t.username = ‘TEST‘;      # 查询用户是否创建成功
grant connect, resource to test;                          # 给用户授予连接和数据权限

5,使用 plsql 连接

  1. 账号:test
  2. 密码:oracle
  3. 连接:ip:1521/helowin

2,数据持久化

1,可以发现,helowin 的实例安装在:/home/oracle/app/oracle/oradata/helowin 目录下

2,拷贝数据到本地,并修改拥有者

docker cp oracle:/home/oracle/app/oracle/oradata/helowin /usr/local/docker/oracle/helowin
cd /usr/local/docker/oracle
chown -R 500.500 ./helowin  # 500 500 是容器内 oracle 组合用户的 id

3,关闭容器:docker-compose down

4,重新启动容器,并在 docker-composr.yml 添加数据卷配置

version: ‘3.1‘
services:
  master:
    image: registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
    container_name: oracle
    privileged: true
    ports:
      - 1521:1521
    volumes:
      - ./helowin:/home/oracle/app/oracle/oradata/helowin

5,查看启动日志:docker logs -f oracle,我们发现了一个错误,这是由于 oracle 为了数据安全,添加的版本验证

技术分享图片

6,进入容器内,解决错误

docker exec -it oracle bash
cd /home/oracle              # 进入到 oracle 用户目录
source .bash_profile         # 加载 oracle 环境变量(每次进入容器都要加载配置文件)

# 删除新生成的版本控制文件,将数据卷中的版本控制文件复制为新生成的版本控制文件
rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl

sqlplus / as sysdba          # 以 dba 身份连接 oracle 数据库
shutdown immediate           # 关闭数据库实例(这里会报错,不用管)
startup                      # 启动实例

7,再次使用 plsql 连接,发现之前创建 test 用户可以连接,数据持久化顺利完成

PS,镜像的 root 用户账号密码:root/helowin

docker 安装 oracle_11g_r2 并实现数据持久化

原文:https://www.cnblogs.com/lovling/p/12547007.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶