利用DBLink實現數據泵遠程導出數據數據庫
在數據庫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 FILESIZE=32G;服務器