文档 · 2020年11月25日 0

EXPDP/IMPDP(数据泵)导出/导入

因oracle 数据量过大,导致exp/imp 导出时间太久,为了能够快速的导出,可以使用expdp/impdp导出/导入

EXPDP的使用:

  1. 连接oracle,创建备份文件存放的目录:
    SQL> create directory ora_bak as '/backup/';
    
    Directory created.
    
    #create directory ora_bak as '/backup/'
    #ora_bak :路径的名字
    
    #'/backup/' : 绝对路径

     

  2. 给创建的目录授权:
    SQL> grant read,write on directory ora_bak to user;
    
    Grant succeeded.
    
    SQL> exit
    
    #user : 你要进行备份操作的用户。可以给多个用户授权。

     

  3. 给路径授权:
    [root@server /]# chown -R oracle.oinstall /backup/
    [root@server /]#

     

  4. 查看数据库并行写入数量,这个参数,直接影响导出时候并行数量参数 parallel :
    SQL> show parameter db_writer_processes
    
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_writer_processes		     integer	 1
    SQL> exit
    
    #结果是1 那么parallel 就不用设置了否则可能会出问题,正常parallel的值不能超过数据库并行写入的值。

     

  5. expdp 导出:
    ###(1)
    [root@server backup/]# expdp user/password dumpfile=user_back.dmp directory=ora_bak logfile=ora-bak.log;
    
    # user/password : 用户名/密码
    
    # user_back.dmp :备份文件名字
    
    # directory=ora_bak :第一步指定的备份文件路径的名字
    
    # logfile=ora-bak.log : 输出日志文件,这个不要加路径,否则会报错,默认生成在第一步设置的路径里面。
    
    
    
    ###(2)
    [root@server backup/]# expdp user/password dumpfile=user_back%U.dmp directory=ora_bak logfile=ora-bak.log;
    
    # user_back%U.dmp : 备份文件的名字,%U 是自动分割备份,根据数据泵自行决定创建多少个数据文件,文件名自动变成user_back(1-99).dump
    
    
    

     

  6. impdp导入:
    ###(1)
    impdp user/password dumpfile=user_back.dmp directory=ora_bak logfile=imp.log
    
    ###(2)
    impdp user/password dumpfile=user_back%U.dmp directory=ora_bak logfile=imp.log

     

打赏