数据泵expdp导出数据备份,以及expdp命令的中断方法

来源:互联网 发布:许佳琪吴哲晗吵架知乎 编辑:程序博客网 时间:2024/06/01 23:54

一、根据我最近一个月数据导出备份的经验,总结如下:

1.使用expdp工具时,其转储文件只能被存放在directory对象对应的os目录中,而不能直接指定转储文件所在的os(操作系统)目录,因此使用expdp工具时,必须首先建立

Directory对象,并且需要为数据库用户授予使用directory对象权限。

create directory dir_dump as 'D:\oracle\dir_dp';
Grant read,write on directory dir_dump to user01;

2.导出数据分两种:导出本地数据库数据和导出远程数据库数据。

(1)导出本地数据库数据例:

expdp user01/123456  directory=dp_test_dir dumpfile=2014_abc_test%U.dmp logfile=expdp_01.log filesize=1G  version=10  tables=abc_test
详解:

 directory :存放目录

 dumpfile=2014_abc_test%U.dmp:生成的dmp文件名,%u是指按01,,02往下排,以此类推。

 logfile:指定导出过程中,产生的日志文件名

filesize=1G:每个dmp文件的大小,此处是1G。

version=10:数据库的版本。

tables:表名,可以多个表,以逗号隔开。

content=data_only :这个是只导出数据,如果要导出数据和表结构,不需要加这个。

(2)导出远程数据库数据例:

expdp user02/123456 network_link=dblinkname  directory=dp_test_dir dumpfile=abcd_201406_%U.dmp logfile=expdp_06.log filesize=5G  version=10  tables=test_1406

详解:远程数据库需要先在本地建连接远程数据库的dblink,然后在导出命令中,加 network_link=dblinkname,其他参数的含义同上。

注:1.将来数据导入,数据库的版本是个问题,如果是10g,将来也要导入10g的数据库中,不然可能存在不兼容问题。

2.以上导出命令都是同时导出数据和表结构,因为要提前记录表用到的表空间,将来导入时要提前建好相同的表空间名才能顺利导入。


二、导出过程中,可能由于一些原因,需要中断导出:

这里就不能简单的用KILL进程来处理了,因为这里是一个JOB。

JOB_NAME可以通过dba_datapump_jobs来查询:

sql>select * from dba_datapump_jobs ;

1.在命令窗口,执行如下命令

C:\Documents and Settings\Administrator>expdp system/sys attach=SYS_EXPORT_FULL_01
 
Export: Release 11.2.0.1.0 - Production on 星期六 7月 13 23:53:55 2013
 
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
 
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
 
With the Partitioning, OLAP, Data Mining and Real Application Testing options
 
作业: SYS_EXPORT_FULL_01
 
  所有者: SYSTEM
------------省略部分内容。。。
 
Export> stop_job
 
是否确实要停止此作业 ([Y]/N): Y
 
是否确实要停止此作业 ([Y]/N): Y  ---------------就是停止不了,在dba_datapump_jobs还是能查到记录,只是JOB已经停止了。
 
-----已经解决了,需要输入YES才能停止
 
Export> KILL_JOB
 
       是否确实要停止此作业 ([Y]/N): YES  ----这时job就真得中断了
 
在执行的时候CTL+C就可以进入交互模式,windows和LINUX下都是一样的。
 重新进入EXPDP/IMPDP,就可以执行下面的交互命令:
 
$expdp username/password,
 
交互模式常用命令:
 
CONTINUE_CLIENT返回到记录模式。假如处于空闲状态, 将重新启动作业。
 
START_JOB 启动恢复当前作业。
 
STATUS在默认值 (0) 将显示可用时的新状态的情况下,要监视的频率 (以秒计) 作业状态。
 
STATUS=[interval]
 
STOP_JOB顺序关闭执行的作业并退出客户机。
 
STOP_JOB=IMMEDIATE 将立即关闭数据泵作业。
 
 
 
还有其他命令:
 
ADD_FILE向转储文件集中添加转储文件。
 
ADD_FILE=dirobjdumpfile-name
 
CONTINUE_CLIENT 返回到记录模式。假如处于空闲状态, 将重新启动作业。
 
EXIT_CLIENT 退出客户机会话并使作业处于运行状态。
 
HELP总结交互命令。
 
KILL_JOB分离和删除作业。
 
PARALLEL更改当前作业的活动 worker 的数目。
 
PARALLEL=worker 的数目。
 
START_JOB 启动恢复当前作业。
 
STATUS在默认值 (0) 将显示可用时的新状态的情况下,
 
要监视的频率 (以秒计) 作业状态。
 
STATUS=[interval]
 
STOP_JOB顺序关闭执行的作业并退出客户机。
 
STOP_JOB=IMMEDIATE 将立即关闭


三、假如导出的文件已删除,作业停止但还存在,就没办法通过命令窗口进入job操作了,直接删除作业表就行了
drop table SYS_EXPORT_SCHEMA_01 purge删除表,之后即可重新调用与这相关的expdp。

0 0
原创粉丝点击