利用Oracle数据库完成数据导入和导出
2007-05-11 12:21:30 来源:WEB开发网Data Pump 执行起来要比原来的exp 和 imp 客户端命令快得多。Data Pump 运行得更快是因为它有一个新特性——“parallel”选项。选定这个选项后,Data Pump 将会以四个不同的线程同时压送数据。下面举个例子,我先执行下面的任务,然后按 [Ctrl]C,接着察看后台任务的状态: expdp scott/tiger directory=dumpdir dumpfile=scott2.dmp parallel=4
job_name=scott2
Export: Release 10.1.0.2.0 - Production on Friday, 31 December, 2004 14:54
Copyright (c) 2003, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
Production
With the Partitioning, OLAP and Data Mining options
FLASHBACK automatically enabled to preserve database integrity.
Starting "SCOTT"."SCOTT2": scott/******** directory=dumpdir
dumpfile=scott2.dmp parallel=4 job_name=scott2
Estimate in progress using BLOCKS method...
Export> status
Job: SCOTT2
Operation: EXPORT
Mode: SCHEMA
State: EXECUTING
Bytes Processed: 0
Current Parallelism: 4
Job Error Count: 0
Dump File: C:SCOTT2.DMP
bytes written: 4,096
Worker 1 Status:
State: EXECUTING
Worker 2 Status:
State: WORK WAITING
Worker 3 Status:
State: WORK WAITING
Worker 4 Status:
State: WORK WAITING
其实不仅仅只有Data Pump 是在数据库内部运行的,事实上大部分的命令行性质的命令都是在数据库内部运行的,只不过是通过一个PL/SQL API—— DBMS_DATAPUMP显示出来。例如,可以通过以下的PL/SQL代码来实现通过PL/SQL 包启动导出任务: declare
handle number;
begin
handle := dbms_datapump.open('EXPORT','SCHEMA');
dbms_datapump.add_file(handle,'SCOTT3.DMP','DUMPDIR');
dbms_datapump.metadata_filter(handle,'SCHEMA_EXPR','= ''SCOTT''');
dbms_datapump.set_parallel(handle,4);
dbms_datapump.start_job(handle);
dbms_datapump.detach(handle);
end; /
仔细研究 Data Pump ,你可以了解到 Data Pump 其他更多的新特性。例如,Data Pump 可以对数据文件重命名,可以将对象移动到不同的表空间中,还可以通过使用通配符结构或者是语句来查找图表对象或是图表。Data Pump 还可以用作外部表的接口 (例如,可以将一个表与存储在一个数据泵导出文件中的数据关联起来,这就像Oracle 9i 以及更高版本中的Oracle Loader 接口一样)。
更多精彩
赞助商链接