经常用EXP imp 导出导入oracle 数据库,但是效率和性能不高。很多辅助功能不强大,比如文件动态分割就做的不够好。
新的expdp 和impdp 提供更强大的功能。在客户端使用EXPDP工具之后,导出的DUMP文件将会在服务端生成。但是结合EXPDP的NETWORK_LINK参数也可以将DUMP文件在客户端生成。
现将远程服务器上数据库文件通过NETWORK_LINK导出到本地
服务器A(192.168.3.209)
服务器B(127.0.0.1)
现在以A为服务器端,B为客户端进行实验
1)在服务器B上创建一个连接到A的数据库链接
我们通过pl/sql 建立DB_LIK
sql
-- Create database link create database link DB209.REGRESS.RDBMS.DEV.US.ORACLE.COM connect to xxx using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.209)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = XXX)))';
2)创建目录,存放DUMP文件。
cmd 进入命令窗口
注意指定的目录E:\oracle\ 文件夹一定要有,没有先创建
赋予读写权限
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;
3)通过B端用户 xxx/xxx导出服务器端A中xxx用户表
expdp xxx/xxx@xxxx directory=dump dumpfile=aaa%u.dmp logfile=aa.log filesize=50m network_link=db209
cmd 执行以下命令
数据 XXX01.DMP XXXX02.DMP ... 和日志写在E:\oralce\目录下