• 数据泵(impdb)导入Oracle分片的数据库dump文件


    数据泵导入Oracle数据库

    一.sqlplus登录目标数据库,创建导入的目录路径

    #该目录要在导入的数据库本机建立,如果是docker就在容器内部创建
    create directory data_dir as '/home/oracle/prd_imp/prd_dump';
    

    data_dir为路径名称,可自命名。路径是导出的dmp文件存放的路径必须存在。

    查询用户创建目录

    select * from dba_directories;
    

    image-20230928110818221

    上面命令只是指定了导出文件存放的路径,但是这个路径需要自己手动创建和赋权

    mkdir /home/oracle/prd_imp/prd_dump
    
    chown -R oracle:oinstall /home/oracle/prd_imp/prd_dump
    
    cd /home/oracle/prd_imp/prd_dump
    
    chmod 777 prd_dump
    

    二.确定导入的用户具有相应的权限

    SELECT * 
    FROM DBA_ROLE_PRIVS 
    WHERE GRANTEE = '' 
    AND GRANTED_ROLE IN ('DBA', 'EXP_FULL_DATABASE', 'IMP_FULL_DATABASE');
    

    image-20231007092202940

    三.上传imp文件,检查文件权限并导入

    image-20231007092500621

    注意:在导入数据的时候需要检查源数据的表空间大小,默认表空间最大只有32G,超过容量会导致导入失败。所以超过32G的表空间需要创建大表空间。

    #创建大表空间
    CREATE BIGFILE TABLESPACE YG_JXGLXX DATAFILE'/home/oracle/app/oracle/oradata/helowin/demo01.dbf' SIZE 100G AUTOEXTEND ON NEXT 50G MAXSIZE 300G;
    
    #执行导入命令
    impdp /@ REMAP_SCHEMA=: DIRECTORY=data_dir DUMPFILE=db_20230910_2205_01.dmp,db_20230910_2205_02.dmp,db_20230910_2205_03.dmp,db_20230910_2205_04.dmp TABLE_EXISTS_ACTION=REPLACE  CONTENT=ALL LOGFILE=imp_01.log
    

    impdp [用户名]/[密码]@[服务名]
    REMAP_SCHEMA=[源用户名1]:[目标用户名2]
    table_exists_action=replace /存在的表动作(覆盖)/
    directory=[目录名]
    dumpfile=[.dmp文件名]
    logfile=[.log文件名]
    CONTENT=ALL 用于指定导入的内容范围。ALL 表示导入所有对象和数据

    执行导入命令之后就等待导入完成

  • 相关阅读:
    LeetCode每日一练 —— 160. 相交链表
    【分隔结构】动宾分离
    Vue 自定义组件中 v-model 的使用
    openGauss 社区 2022 年 8 月运作报告
    OpenCamera拍照的代码流程
    STM32Cube学习(2)——定时器中断
    Qt扫盲-QColor 理论使用总结
    1.vuex 使用一站式
    深度优先(DFS) (例子:全排列,迷宫,pta龙龙送外卖)
    想要精通算法和SQL的成长之路 - K次取反后最大化的数组和
  • 原文地址:https://www.cnblogs.com/blogof-fusu/p/17745648.html