Oracle Database 10g:最佳新特性(第四周:高速的导出/导入)
Oracle Database 10g:最佳新特性(第四周:高速的导出/导入)
g 实用工具数据移动得到了很大的提高。
INSERT INTO 命令将其插入到目标表中,因此导入可能是个很慢的过程,这一点并不让人感到吃惊。
g 中的导出/导入工具包的更新更快的同类工具,它被设计来成倍地加速这个过程。
create directory dpdata1 as '/u02/dpdata1';grant read, write on directory dpdata1 to ananda;
expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES.dmp job_name=CASES_EXPORT
DPDATA1 指定,它指向之前创建的 /u02/dpdata1。这个进程还在目录参数指定的位置上创建一个日志文件(同样在服务器上)。默认地,这个进程使用一个名称为 DPUMP_DIR 的目录;因此可以创建它来代替 DPDATA1。
job_name)。当 expdp 结束时,这个表被丢弃。
Export>
STATUS 命令:
Export> statusJob:CASES_EXPORTOperation:EXPORT Mode:TABLE State:EXECUTING Degree: 1Job Error Count: 0Dump file:/u02/dpdata1/expCASES.dmp bytes written = 2048Worker 1 Status:State:EXECUTING Object Schema:DWOWNERObject Name:CASESObject Type:TABLE_EXPORT/TBL_TABLE_DATA/TABLE/TABLE_DATACompleted Objects: 1Total Objects: 1Completed Rows: 4687818
Export> 提示符下使用命令 CONTINUE_CLIENT。
expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES_%U.dmp parallel=4 job_name=Cases_Export
%U,它指示文件将按需要创建,格式将为 expCASES_nn.dmp,其中 nn 从 01 开始,然后按需要向上增加。
select sid, serial#from v$session s, dba_datapump_sessions dwhere s.saddr = d.saddr;
kupprdp:master process DM00 started with pid=23, OS id=20530 to execute - SYS.KUPM$MCP.MAIN('CASES_EXPORT', 'ANANDA');kupprdp:worker process DW01 started with worker id=1, pid=24, OS id=20532 to execute - SYS.KUPW$WORKER.MAIN('CASES_EXPORT', 'ANANDA');kupprdp:worker process DW03 started with worker id=2, pid=25, OS id=20534 to execute - SYS.KUPW$WORKER.MAIN('CASES_EXPORT', 'ANANDA');
select sid, program from v$session where paddr in (select addr from v$process where pid in (23,24,25));
select sid from v$px_session where qcsid = 23;
select sid, serial#, sofar, totalworkfrom v$session_longopswhere opname = 'CASES_EXPORT'and sofar != totalwork;
sofar 数量被加和到当前的时刻 — 因而您可以用它来估计还要花多长时间。
impdp ananda/abc123 directory=dpdata1 dumpfile=expCASES.dmp job_name=cases_import
TABLE_EXISTS_ACTION=APPEND。
Import>。
— 不导出表、视图、甚至函数:
expdp ananda/iclaim directory=DPDATA1 dumpfile=expprocs.dmp include=PROCEDURE
— 比如说,函数 FUNC1 和过程 PROC1 — 您可以使用
expdp ananda/iclaim directory=DPDATA1 dumpfile=expprocs.dmp include=PROCEDURE:\"=\'PROC1\'\",FUNCTION:\"=\'FUNC1\'\"
SQLFILE 的特殊参数允许创建 DDL 脚本文件。
impdp ananda/iclaim directory=DPDATA1 dumpfile=expprocs.dmp sqlfile=procs.sql
INCLUDE 允许您从转储文件中定义要包含或排除的对象。您可以使用子句 INCLUDE=TABLE:"LIKE 'TAB%'" 来仅导出那些名称以 TAB 开头的表。类似地,您可以使用结构 INCLUDE=TABLE:"NOT LIKE 'TAB%'" 来排除所有名称以 TAB 开头的表。作为另一种选择,您可以使用 EXCLUDE 参数来排除特定的对象。
Oracle Database Utilities 10g Release 1 10.1)。以下命令显示Data Pump 导出实用工具提供的所有参数的列表:
expdp help=y
将显示 DPI 中的所有参数。
STOP_JOB 来暂停它们,然后用 START_JOB 来重起它们。这个功能在您空间不足和想在继续执行之前进行修改时非常方便。
Oracle Database Utilities 10g Release 1 10.1 指南的第 1 部分。