[20130415]数据泵与db link.txt
数据泵是10g以后采用的新特性,按照一些介绍速度比exp/imp快。以前我总是成对的使用它,也就是先expdp导出数据,然后再传输到新
的服务器,然后在impdp导入数据,这样的过程明显不是很快,特别是导出文件很大的情况下,速度并没有感觉快到哪里,如果数据泵加
上db link,这样仅仅使用impdp导入就可以,省去了前面的步骤。
自己做一个测试:
测试数据从10g服务器到11g的测试机的导入情况:
1.测试环境与配置如下:
--测试机器A(11g),IP=testa:
SQL> @ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
CREATE PUBLIC DATABASE LINK "TESTB.COM" CONNECT TO scott IDENTIFIED BY xxxx USING 'testb:1521/orcl';
SQL> select * from dual@testb.com;
D
-
X
--测试通过,能通过db link连接。
--测试机器B(10g),IP=testb:
SQL> select * from v$version where rownum
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
--以scott用户建立一张表:
create table t1 as select rownum id ,'test' name from dual connect by level
create unique index pk_t1 on t1(id);
alter table t1 add constraint pk_t1 primary key (id);
create or replace trigger tr_t
before insert on t1
referencing new as new old as old
for each row
declare
begin
null;
end ;
/
2.首先使用数据泵的命令方式:
--testa上执行:
var n number;
exec :n := dbms_datapump.open('IMPORT','TABLE','TESTB.COM');
exec dbms_datapump.metadata_filter(:n,'SCHEMA_LIST','''SCOTT''');
exec dbms_datapump.metadata_filter(:n,'NAME_LIST','''T1''');
exec dbms_datapump.start_job(:n);
commit ;
--引号加的真麻烦,oracle真变态!
--等待一下,看看数据是否过来。可以检查发现表T1的数据,索引以及触发器的相关内容全部过来了。
--另外我的测试如果在testa上T1表存在,是无法导入的。
3.使用命令行impdp(在testa上执行):
--drop table t1 purge ;
$ impdp scott/xxxx DIRECTORY=DATA_PUMP_DIR LOGFILE=t1.log NETWORK_LINK=testb.com TABLES=t1
Import: Release 11.2.0.3.0 - Production on Mon Apr 15 16:51:10 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SCOTT"."SYS_IMPORT_TABLE_01": scott/******** DIRECTORY=DATA_PUMP_DIR LOGFILE=t1.log NETWORK_LINK=testb.com TABLES=t1 */
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 128 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
. . imported "SCOTT"."T1" 1000 rows
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/TRIGGER
Job "SCOTT"."SYS_IMPORT_TABLE_01" successfully completed at 16:51:17
4.这种方式仅仅需要impdp就可以,唯独要注意目的表是否存在,以及方向不要搞错。
5.另外要注意db link,如果不在需要最好删除。
时间: 2024-09-20 20:37:34