一个远程数据表的导入导出问题,使用exp/imp是完全可以做到的,因为他是客户端工具
那么服务端工具 expdp/impdp 应该如何做导入导出呢,方法如下:
我们可以通过dblink来实现远程数据的导入导出。
1. 在本地库创建dblink指向远程数据库库
create database link link_orcl connect to "username" identified by "password" using 'tnsname';
2. 本地数据库创建directory目录
create directory expdp_dir as '/u01/app/oracle/expdp_dir/';
3. 本地创建数据泵导出参数文件
vi exppdp_param.par:
userid=username/password
directory=expdp_dir
dumpfile=expdp_%U.dump
logfile=expdp_.log
tables=username.table
query='"where rownum<1000"'
network_link=link_orcl
-- 注意,如果需要导出的表和导入导出用户不同,则这里需要添加导出或导入对象schema=username
4. 执行导出命令。
grant exp_full_database TO username;
expdp parfile=exppdp_param.par
总结:
1. expdp/impdp是10g以上提供的数据泵工具,运行时会调用两个PL/SQL包,也可以直接运行PL/SQL包做导入导出
2. 导入需要有imp_full_database权限,导出需要有exp_full_database权限