docker还原Oracle数据

备份命令(命令根据实际情况调整):

expdp scott/g1r2a3duate4 directory=expdata dumpfile=xxx.dmp logfile=xxx.log schemas=scott;

Oracle镜像为: registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

还原操作:

  1. 复制备份文件到容器中

    docker cp db20210415214001.dmp oracle11g:/home

  2. 进入容器

    docker exec -it oracle11g bash

  3. 创建文件夹 /home/back , 并将备份文件移至文件夹内 file

  4. 使用数据库管理员角色进入数据库, 创建逻辑目录

    create directory dpdata as '/home/backup';

    (对应目录需要进行授权 chmod 777 -R /home/backup/)

    查看是否正确创建: select * from dba_directories;

    授予权限: grant read,write on directory dpdata to scott; file

  5. 切换到Oracle 程序目录

    cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/bin/

  6. 执行还原命令(REMAP_SCHEMA命令重命名模式)

    ./impdp scott@helowin DIRECTORY=dpdata DUMPFILE=db20210415214001.dmp REMAP_SCHEMA=graduate:scott; file file

    可能出现的问题:

    `ORA-39122: Unprivileged users may not perform REMAP_SCHEMA remappings.`
    

    解决方式:

    `进入数据库进行授权: grant imp_full_database to {用户名};`
    

    file

0评论