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