docker oracle数据库备份、还原

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

你可能感兴趣的:(数据库oracle)