当前位置: 首页 > 工具软件 > Docker Oracle > 使用案例 >

docker 导入oracle,docker oracle数据库备份、还原

宇文俊风
2023-12-01

oracle备份

登录需要备份的oracle服务器运行脚本:

--以下是我的路径

1.cd /u01/mdm/dbback

2.sh oracle_prod_backup.sh

oracle_prod_backup.sh:#!bin/bash

set NLS_LANG=AMERICAN_AMERICA.AL32UTF8

cd /u01/mdm/dbback/

fname=$(date "+%Y%m%d")

mkdir /u01/mdm/dbback/$fname

exp userName/pwd@域名/数据库sid owner=ownerName file='/u01/mdm/dbback/'$fname'/pf_prod_'$fname'.dmp'

#tar -czvf /u01/mdm/dbback/dtmdm_dbback_$fname.tar.gz /u01/mdm/dbback/$fname

oracle还原

1.还原uat

还原步骤:①备份无需还原表,备份admin密码 ②删除用户下所有表(可能存在外键关系,多删除几次即可) ③还原数据库 ④还原上述表,还原admin密码

在目标数据库环境运行以下脚本:

imp 用户名/密码@service_name或oracle_sid file=导出目录 fromuser=当前dmp导入文件中的用户名 touser=待导入数据库中的用户名 ignore=y 有相同表结构不创建表,但会导入数据set NLS_LANG=AMERICAN_AMERICA.AL32UTF8

imp 用户名/密码@service_name或oracle_sid file=导出目录 fromuser=当前dmp导入文件中的用户名 touser=待导入数据库中的用户名 ignore=y

2.还原dev

1.docker ps -l 获得CONTAINER ID

2.docker exec -it CONTAINER ID bash 进入容器

3.上传备份文件并复制到docker容器中:`docker cp 备份文件.dmp CONTAINER ID:/home/`

4.配置环境变量,容器中bin目录下运行:`export ORACLE_HOME=/******/oracle-product/12.2.0/SE`

5.容器中bin目录下运行:./imp 用户名/密码@service_name或oracle_sid file=备份文件.dmp fromuser=***** touser=****** ignore=y

导入版本不一致问题:目标数据库查询select t.* from v$version t,修改.dmp版本,注意格式 如:19.01.20

 类似资料: