通过API调用,把传统的eXPimp类交互模式的操作转变成为数据库内部的job任务
从而实现了任务的可中止与重启动
当然,重启动还依靠于另外一个数据结构MT(master table),任务主表该表用于记录导出导入任务的进度.
1. 主要参数说明
我们先看一下Oracle的帮助说明
代码
Cexpdp -help
Export Release 10.1.0.2.0 - ProdUCtion on 星期三, 19 5月, 2004 2327
Copyright (c) 2003, Oracle.All rights reserved.
数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输数据对象的机制。该实用程序可以使用以下命令进行调用
示例 expdp scotttiger DirectorY=dmpdir DUMPFILE=scott.dmp
您可以控制导出的运行方式。具体方法是 在 'expdp' 命令后输入各种参数。要指定各参数, 请使用要害字
格式expdp KEYWord=value 或 KEYWORD=(value1,value2,...,valueN)
示例 expdp scotttiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
或 TABLES=(T1P1,T1P2), 假如 T1 是分区表
USERID 必须是命令行中的第一个参数。
要害字 说明 (默认)
------------------------------------------------------------------------------
ATTACH连接到现有作业, 例如 ATTACH [=作业名]。
CONTENT 指定要卸载的数据, 其中有效要害字为
(ALL), DATA_ONLY 和 METADATA_ONLY。
DIRECTORY 供转储文件和日志文件使用的目录对象。
DUMPFILE目标转储文件 (expdat.dmp) 的列表,
例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdirscott3.dmp。
ESTIMATE计算作业估计值, 其中有效要害字为
(BLOCKS) 和 STATISTICS。
ESTIMATE_ONLY 在不执行导出的情况下计算作业估计值。
EXCLUDE 排除特定的对象类型, 例如 EXCLUDE=TABLEEMP。
FILESIZE以字节为单位指定每个转储文件的大小。
FLASHBACK_SCN 用于将会话快照设置回以前状态的 SCN。
FLASHBACK_TIME用于获取最接近指定时间的 SCN 的时间。
FULL导出整个数据库 (N)。
HELP显示帮助消息 (N)。
INCLUDE 包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。
JOB_NAME要创建的导出作业的名称。
LOGFILE 日志文件名 (export.log)。
NETWORK_LINK链接到源系统的远程数据库的名称。
NOLOGFILE 不写入日志文件 (N)。
PARALLEL更改当前作业的活动 worker 的数目。
PARFILE 指定参数文件。
QUERY 用于导出表的子集的谓词子句。
SCHEMAS 要导出的方案的列表 (登录方案)。
STATUS在默认值 (0) 将显示可用时的新状态的情况下,
要监视的频率 (以秒计) 作业状态。
TABLES标识要导出的表的列表 - 只有一个方案。
TABLESPACES 标识要导出的表空间的列表。
TRANSPORT_FULL_CHECK验证所有表的存储段 (N)。
TRANSPORT_TABLESPACES 要从中卸载元数据的表空间的列表。
VERSION 要导出的对象的版本, 其中有效要害字为
(COMPATIBLE), LATEST 或任何有效的数据库版本。
下列命令在交互模式下有效。
注 答应使用缩写
命令 说明
------------------------------------------------------------------------------
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 将立即关闭
&n
其中最要害的几个命令是
代码
'
CONTINUE_CLIENT 返回到记录模式。假如处于空闲状态, 将重新启动作业。
START_JOB 启动恢复当前作业。
STATUS在默认值 (0) 将显示可用时的新状态的情况下,
要监视的频率 (以秒计) 作业状态。
STATUS=[interval]
STOP_JOB顺序关闭执行的作业并退出客户机。
STOP_JOB=IMMEDIATE 将立即关闭
数据泵作业。
'
2.执行过程中终止导出
首先启动expdp执行导出操作
注重,这里可以指定一个job_name,这个名称将是你数据库中创建的MT表的名称,假如忽略,Oracle会自动命名
代码
$ expdp eygleeygle directory=dpdata dumpfile=full.dmp full=y job_name=expfull
Export Release 10.1.0.2.0 - 64bit Production on Monday, 26 April, 2004 1945
Copyright (c) 2003, Oracle.All rights reserved.
Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
FLASHBACK automatically enabled to preserve database integrity.
Starting EYGLE.EXPFULL
ok,在此,你可以通过ctrl + c,退出当前交互模式退出之后,导出操作不会停止这不同于Oracle以前的exp以前的exp,假如退出交互模式,就会出错终止导出任务在10g,由于expdp是数据库内部定义的任务已经与客户端无关.
退出交互之后,会进入export的命令行模式此时支持status等察看命令.
代码
^C
Export status
Job EXPFULL
Operation EXPORT
Mode FULL
State EXECUTING
Bytes Processed 0
Current Parallelism 1
Job Error Count 0
Dump File optoracledpdatafull.dmp
bytes written 4,096
Worker 1 Status
State EXECUTING
Object Schema WMSYS
Object Name WM$EVENT_TYPE
Object Type DATABASE_EXPORTSCHEMATYPETYPE_SPEC
Completed Objects 15
Total Objects 15
'
假如此时,想要停止该任务可以发出stop_job命令,确认后停止
代码
Export stop_job
Are you sure you wish to stop this job ([y]n)
$
3.导出主表
进入数据库,我们可以看到创建的MT表
代码
$ sqlplus eygleeygle
SQLPlus Release 10.1.0.2.0 - Production on Mon Apr 26 194816 2004
Copyright (c) 1982, 2004, Oracle.All rights reserved.
Connected to
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL selectfrom tab where tname='EXPFULL';
TNAMETABTYPECLUSTERID
------------------------------ ------- ----------
EXPFULLTABLE
SQL desc expfull
NameNullType
----------------------------------------- -------- ----------------------------
PROCESS_ORDERNUMBER
DUPLICATENUMBER
DUMP_FILEIDNUMBER
DUMP_POSITIONNUMBER
DUMP_LENGTHNUMBER
DUMP_ALLOCATIONNUMBER
COMPLETED_ROWS