Oracle使用——数据泵导入导出数据库——impdp/expdp使用

时间:2022-11-09 08:43:28

使用前提

  • EXPDP和IMPDP只可以在Oracle服务端使用。
  • EXP导出的文件只可以使用IMP导入,不适用于IMPDP导入文件;EXPDP导出的文件只可以使用IMPDP导入,而不适用于IMP导出文件。
  • 以超级管理员操作(最好使用超级管理员操作)。
  • 通过数据泵操作数据,无论是导入IMPDP还是导出EXPDP,都需要创建一个Oracle逻辑目录Directory,并赋予用户对这个目录的操作权限——读写。(PS:注意,此处所创建的目录在本地磁盘中必须已经存在,否则导入、导出数据时会报错)

DIRECTORY操作

  • 查看DIRECTORY
    select * from dba_directories;
  • 创建DIRECTORY(目录名称:hndir)
    create DIRECTORY hndir as 'D:\oracldir\hndata';
  • 删除DIRECTORY(目录名称:hndir)
    drop directory hndir;
  • Next

EXPDP(导出文件)

  • 导出步骤
    • 创建逻辑目录
      create DIRECTORY hndir as 'D:\oracldir\hndata';
    • 为超级管理员赋予操作逻辑目录操作权限(一般不需要设置此步骤,但有时是必须)
      grant read,write on DIRECTORY hndir to SYS;
    • 执行导出命令
      • (实例:Oracl;用户:HNQY;密码:HNQY;逻辑目录:hndir;)
      • 导出整个数据库
        expdp HNQY/HNQY@ORCL DIRECTORY=hndir DUMPFILE=hnqy.dmp FULL=y;
      • 导出具体表
        expdp HNQY/HNQY@ORCL DIRECTORY=hndir TABLES=t_card,t_user dumpfile=hnqy.dmp;
      • Next
  • Next

IMPDP(导入数据)

  • 导出步骤
    • 创建逻辑目录
      create DIRECTORY hndir as 'D:\oracldir\hndata';
    • 为超级管理员赋予操作逻辑目录操作权限(一般不需要设置此步骤,但有时是必须)
      grant read,write on DIRECTORY hndir to SYS;
    • 执行导入命令
      • (实例:Oracl;用户:HNQY;密码:HNQY;逻辑目录:hndir;)
      • 导入整个数据库
        impdp HNQY/HNQY@ORCL DIRECTORY=hndir DUMPFILE=hnqy.dmp;
      • 导入指定表
        impdp HNQY/HNQY@ORCL DIRECTORY=hndir TABLES=t_card,t_user dumpfile=hnqy.dmp;
      • Next
    • 在导入数据时,有的时候我们拿到的dmp原数据文件的表空间以及用户,是和我们将要导入的数据库的表空间和用户不同,这个时候我们需要在导入命令中指定相应的表空间和用户
      • (dmp文件表空间:ASSETS;dmp文件用户:SCOTT;导入数据库表空间:HNQY_DATA;导入数据库用户:HNQY)
      • 导入整个数据库
        impdp HNQY/HNQY@ORCL DIRECTORY=hndir DUMPFILE=hnqy.dmp REMAP_TABLESPACE=ASSETS:HNQY_DATA REMAP_SCHEMA=SCOTT:HNQY ;
      • 导入指定表
        impdp HNQY/HNQY@ORCL DIRECTORY=hndir TABLES=SCOTT.t_card,SCOTT.t_user dumpfile=hnqy.dmp REMAP_TABLESPACE=ASSETS:HNQY_DATA REMAP_SCHEMA=SCOTT:HNQY;
      • Next
    • Next
  • Next