docker还原Oracle数据
备份命令(命令根据实际情况调整):
expdp scott/g1r2a3duate4 directory=expdata dumpfile=xxx.dmp logfile=xxx.log schemas=scott;
Oracle镜像为: registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
还原操作:
-
复制备份文件到容器中
docker cp db20210415214001.dmp oracle11g:/home -
进入容器
docker exec -it oracle11g bash -
创建文件夹 /home/back , 并将备份文件移至文件夹内

-
使用数据库管理员角色进入数据库, 创建逻辑目录
create directory dpdata as '/home/backup';(对应目录需要进行授权 chmod 777 -R /home/backup/)
查看是否正确创建: select * from dba_directories;
授予权限: grant read,write on directory dpdata to scott;

-
切换到Oracle 程序目录
cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/bin/ -
执行还原命令(REMAP_SCHEMA命令重命名模式)
./impdp scott@helowin DIRECTORY=dpdata DUMPFILE=db20210415214001.dmp REMAP_SCHEMA=graduate:scott;

可能出现的问题:
`ORA-39122: Unprivileged users may not perform REMAP_SCHEMA remappings.`解决方式:
`进入数据库进行授权: grant imp_full_database to {用户名};`
0评论