在数据库B服务器上利用数据泵导出数据库A中数据的简单实现。
前提是2个数据的版本要一致。
1.数据库B上(以管理员身份)创建导出使用的用户
SQL> create user daochuB identified by daochuB;
2.1授予连接角色,资源角色给用户
SQL> grant connect,resource to daochuB;
2.2授权创建数据链接
SQL> grant create table,create database link to daochuB;
或者直接给DBA角色
SQL> grant dba to daochuB;
3.数据库B上创建存放导出数据目录
SQL> create directory dbdata AS ‘D:\export‘;
4.给用户授予目录读写权限
SQL> grant read,write on directory dbdata to daochuB;
5.以daochu身份创建DBLINK
SQL> create database link baklink
connect to daochuA identified by "daochuA"
using ‘(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XX.XX.XX.XX)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)‘;
注意:
这里使用的用户名密码是远程数据库中的用户名和密码,导出使用的是这个用户,它必须有导出的权限,
如果没有须在数据库A中授权;
在数据库A中为用户daochuA授导出权限
SQL> grant exp_full_database to daochuA;
6.执行导出(导出数据库A中用户‘daochu‘的数据)
CMD>expdp daochuB/daochuB network_link=baklink schemas=daochuA directory=dbdata dumpfile=exp%u.dmp;