因oracle 数据量过大,导致exp/imp 导出时间太久,为了能够快速的导出,可以使用expdp/impdp导出/导入
EXPDP的使用:
- 连接oracle,创建备份文件存放的目录:
SQL> create directory ora_bak as '/backup/'; Directory created. #create directory ora_bak as '/backup/' #ora_bak :路径的名字 #'/backup/' : 绝对路径
- 给创建的目录授权:
SQL> grant read,write on directory ora_bak to user; Grant succeeded. SQL> exit #user : 你要进行备份操作的用户。可以给多个用户授权。
- 给路径授权:
[root@server /]# chown -R oracle.oinstall /backup/ [root@server /]#
- 查看数据库并行写入数量,这个参数,直接影响导出时候并行数量参数 parallel :
SQL> show parameter db_writer_processes NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_writer_processes integer 1 SQL> exit #结果是1 那么parallel 就不用设置了否则可能会出问题,正常parallel的值不能超过数据库并行写入的值。
- 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
- 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