Oracle資料庫同平臺與異構平臺下的表空間傳輸

leixue0906發表於2015-01-15

1.     使用expdp要先在資料庫中建立directory,並給相應的使用者read,write許可權.

SQL>create directory dmpdir as '/u01/dmdir';
SQL>grant read,write on directory dumpdir to test;

2.     最常用匯出方法

$expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=test 
$expdp scott/tiger DUMPFILE=tmp_dump.dmp DIRECTORY=dmpdir TABLES=(tmp_test:p1,tmp_test:p2) JOB_NAME=tmp_dump LOGFILE=tmp_dump.log
$expdp scott/tiger DUMPFILE=full.dmp DIRECTORY=dmpdir FULL=Y JOB_NAME=full 
$expdp scott/timer DUMPFILE=tmp_200703.dmp DIRECTORY=dmpdir TABLES=tmp QUERY=\"where to_char\(create_time,\'yyyy-mm-dd\'\)\

3.相關檢視

DBA_DATAPUMP_JOBSDBA_DATAPUMP_SESSIONS

4.查詢DMP檔案的SQL語句,此引數並不匯入資料

impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=expprocs.dmp SQLFILE=aa.sql

5、互動模式

Control-C進入互動模式

ATTACH=JOB_NAME】重連JOB,並進入互動模式:expdp user/pwd attach=J1

相關命令:KILL_JOBPARALLELSTOP_JOB,START_JOBSTATUSCONTINUE_CLIENT

6IMPDP匯入不同SCHEMATABLESPACEDATAFILE

impdp user/pwd directory=dump_dir dumpfile=dump_file remap_schema=user1:user2

7、效能最佳化

expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES_%U.dmp parallel=4 job_name=Cases_Export

nologging:noarchivelog模式,force logging=no

parallel ,匯入與匯出可以不一致,IMPDP匯入INDEX佔總匯入時間較長

具體數值與CPU、IO的關係還需研究

8 、表空間遷移,同平臺,不同使用者,不同表空間

SQL> alter tablespace trans read only;

expdp system/oracle directory=dump_dir dumpfile=test1.dmp transport_tablespaces=test1 transport_full_check=y

impdp system/oracle directory=dump_dir dumpfile=test1.dmp remap_schema=test1:test3 remap_tablespace=test1:test3 transport_datafiles='/u02/oradata/test03.dbf''

以資料庫連結方式

impdp system/oracle directory=dump_dir network_link=rdb transport_tablespaces=test1 transport_datafiles='/u02/test01.dbf'

9、傳輸表空間,異構平臺

支援平臺:Select * from v$transportable_platform;

expdp system/oracle umpfile=trans.dmp directory=dump_dir  transport_tablespaces=trans;

RMAN> convert tablespace trans to platform. 'Microsoft Windows IA (32-bit)' Format '/tmp/trans01.dbf;

impdp system/oracle dumpfile=trans.dmp directory=dump_dir transport_datafiles='E:\trans01.dbf'

10、remap_datafile 引數:目前的理解是一定是用在全庫匯出和全庫匯入這個操作上,因為只有全庫匯出才匯出create tablespace的語法,而匯入時需要重新建立表空間,這樣的就需要透過remap_datafile來重新map表空間的datafile的位置。


11、匯入JOB目前(10.0.2.4)有bug,需用如下任一方法匯入

a)GRANT IMP_FULL_DATABASE TO A;然後用A使用者做匯入可匯入A使用者job

b)使用dblink匯入:impdp a/a directory=dump_dir remap_schema=b:a network_link=db2

create  public database link dblink_to_myself

connect to system

identified by xxx

using 'xxx';

impdp system/xxx network_link=dblink_to_myself schemas=test remap_schema=test:test2 

exclude=statistics,table:\"like \'VT%\'\" CONTENT=METADATA_ONLY

12、刪除失敗任務

select * from dba_datapump_jobs;

drop table xxx purge;

ps:轉自網路

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26845409/viewspace-1402313/,如需轉載,請註明出處,否則將追究法律責任。

相關文章