您的位置:首页 > 其它

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

2014-10-11 16:54 260 查看
一、根据我最近一个月数据导出备份的经验,总结如下:

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: