expdp是server端工具,但可以通过NETWORK_LINK参数实现远端导出,但是前提是远端也安装有Oracle数据库,只有CLIENT端是没有办法利用数据泵的。
1.expdp username/password@connect_string //对于使用这种格式来说,directory使用源数据库创建的,生成的文件存放在服务端。如何将生成的文件放在目标数据库而不放在源数据库呢,在expdp中使用network_link
如:expdp system/oracledba directory=my_dir dumpfile=test.dmp logfile=test.log network_link=DB_LINK_TEST schemas=test01,test02 parallel=4
2.
这里要指出的是:network_link不支持远端导出分区表中的某一个分区,但可以导整个分区表。以下为测试过程:
创建分区表sales:
[oracle@ora10g ~]$ sqlplus ‘/as sysdba’
SQL> CREATE TABLE sales
(sale_date DATE NOT NULL)
PARTITION BY RANGE (sale_date)
(PARTITION sales2010_q1
VALUES LESS THAN (TO_DATE(’2010-04-01′,’YYYY-MM-DD’))
TABLESPACE sp1,
PARTITION sales2010_q2
VALUES LESS THAN (TO_DATE(’2010-07-01′,’YYYY-MM-DD’))
TABLESPACE sp2,
PARTITION sales2010_q3
VALUES LESS THAN (TO_DATE(’2010-10-01′,’YYYY-MM-DD’))
TABLESPACE sp3);
插入4条记录:
SQL> select count(*) from sales;
COUNT(*)
———-
4
SQL> select * from sales partition(sales2010_q1);
SALE_DATE
————
23-MAR-10
SQL> select * from sales partition(sales2010_q2);
SALE_DATE
————
23-JUN-10
22-JUN-10
SQL> select * from sales partition(sales2010_q3);
SALE_DATE
————
23-SEP-10
远端机器上创建 directory目录、赋权、创建dblink:
[oracle@node1 /]$ sqlplus ‘/as sysdba’
SQL> create directory dump_dir as ‘/backup’;
Directory created.
SQL> grant read,write on directory dump_dir to ochef;
Grant succeeded.
SQL> create database link test connect to ochef identified by oracle using ‘primary’;
Database link created.
SQL> select count(*) from ochef.sales@test;
COUNT(*)
———-
4
远程导出整个分区表:
[oracle@node1 ~]$ expdp ochef/oracle directory=dump_dir dumpfile=sales.dmp network_link=test tables=sales
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
Starting “OCHEF”.”SYS_EXPORT_TABLE_01″: ochef/******** directory=dump_dir dumpfile=sales.dmp network_link=test tables=sales
Estimate in progress using BLOCKS method…
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 384 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
. . exported “OCHEF”.”SALES” 4.960 KB 4 rows
Master table “OCHEF”.”SYS_EXPORT_TABLE_01″ successfully loaded/unloaded
******************************************************************************
Dump file set for OCHEF.SYS_EXPORT_TABLE_01 is:
/backup/sales.dmp
Job “OCHEF”.”SYS_EXPORT_TABLE_01″ successfully completed at 11:12:43
远程导出分区表的某个分区:
[oracle@node1 ~]$ expdp ochef/oracle directory=dump_dir dumpfile=sales.dmp network_link=test tables=sales:sales2010_q2
ORA-39001: invalid argument value
ORA-39203: Partition selection is not supported over a network link.
本地导出分区表的某个分区:
[oracle@ora10g ~]$ expdp ochef/oracle directory=dump_dir dumpfile=sales.dmp tables=sales:sales2010_q2
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting “OCHEF”.”SYS_EXPORT_TABLE_01″: ochef/******** directory=dump_dir dumpfile=sales.dmp tables=sales:sales2010_q2
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
. . exported “OCHEF”.”SALES”:”SALES2010_Q2″ 4.937 KB 2 rows
Master table “OCHEF”.”SYS_EXPORT_TABLE_01″ successfully loaded/unloaded
******************************************************************************
Dump file set for OCHEF.SYS_EXPORT_TABLE_01 is:
/backup/sales.dmp
Job “OCHEF”.”SYS_EXPORT_TABLE_01″ successfully completed at 11:07:07
关于远程expdp用户权限问题,请移步这里。
-The End-