天天看點

Oracle 把一個使用者的資料導入另一個使用者 (資料泵)

192.168.0.1——server1

1. 導出資料

[expdp版本]

使用expdp之前,需要現在Oracle裡面建directory

1 、create directory dump as '/u01/dump';

授予使用者對directory的read/write權限

2、grant read,write on directory  dump to [wyb];

使用者需要resource或者dba的權限,才能expdp

3、grant resource to [wyb] ;

4、expdp wyb/123456 dumpfile= dump1.dmp logfile=expdp.log directory=dump1

192.168.0.1_server2

導入之前,清空目标使用者所有的對象

最簡單的辦法,把目标使用者删了再重建,或者建立

1、drop   user   sam   cascade; 同時會删除表空間資料

再建立使用者//建立臨時表空間//授予權限

2、CREATE TABLESPACE   sam  DATAFILE  'sam.dbf' 

SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

3、CREATE USER  sam IDENTIFIED BY 123456 DEFAULT TABLESPACE sam ;

4、grant connect,dba to [sam] ;

 導入資料

[impdp版本]

同樣,使用impdp之前,需要現在Oracle裡面建directory,如果有directory不需要在建立

1、create directory dump as '/u01/dump';

2、grant read,write on directory  dump to [sam];

授予使用者dba權限

grant dba to [sam] ;

impdp user/password dumpfile=temp.dmp directory=dump remap_tablespace=[old_table_space]:[new_table_space]  ; old是指server1機器上的tablespace_name,new是指server2上的

impdp sam/123456  dumpfile=wyb-15032501.dmp directory=dump1 remap_tablespace=wyb:sam remap_schema=wyb:sam logfile=wyb-15032501.log

//導入資料後取消DBA權限

revoke dba from [sam];

//List directories

SELECT * FROM dba_directories;

如果出現tablespace存在,則先删除表空間

DROP TABLESPACE  xxb0001  INCLUDING CONTENTS AND DATAFILES;

      本文轉自crazy_charles 51CTO部落格,原文連結:<b>http://blog.51cto.com/douya/1624239</b>,如需轉載請自行聯系原作者