docker helowin 迁移_docker-compose 安装 oracle_11g_r2 并实现数据持久化

这篇博客介绍了如何使用docker-compose在Linux环境下安装Oracle 11g R2数据库,详细步骤包括创建配置文件、启动容器、设置环境变量、创建用户及权限,并实现了数据持久化。在数据持久化过程中,通过数据卷进行数据迁移,并解决了因版本验证导致的错误。
摘要由CSDN通过智能技术生成

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 oraclebash

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,相关配置(可省略)

grant select on V_$session to test;

grant select on V_$sesstat to test;

grant select on V_$statname to test;

show parameter deferred_segment_creation; -- 查看是否启用 true 为启动

alter system set deferred_segment_creation=false; -- 修改为不启用

show parameter deferred_segment_creation; -- 查看是否修改成功 false 未启用

6,使用 plsql 连接

账号:test

密码:oracle

连接: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 为了数据安全,添加的版本验证

bb090df98a6a8b62837e5e000652ae4d.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值