Oracle數據泵詳解

轉自:http://blog.csdn.net/jojo52013145/article/details/7966047

一、EXPDP和IMPDP使用說明

Oracle Database 10g引入了最新的數據泵(Data Dump)技術,數據泵導出導入(EXPDP和IMPDP)的作用

1)實現邏輯備份和邏輯恢復.

2)在數據庫用戶之間移動對象.

3)在數據庫之間移動對象

4)實現表空間搬移.

 

二、數據泵導出導入與傳統導出導入的區別

在10g之前,傳統的導出和導入分別使用EXP工具和IMP工具,從10g開始,不僅保留了原有的EXP和IMP工具,還提供了數據泵導出導入工具EXPDP和IMPDP.使用EXPDP和IMPDP時應該注意的事項:

1)EXP和IMP是客戶端工具程序,它們既可以在可以客戶端使用,也可以在服務端使用。

2)EXPDP和IMPDP是服務端的工具程序,他們只能在ORACLE服務端使用,不能在客戶端使用。

3)IMP只適用於EXP導出文件,不適用於EXPDP導出文件;IMPDP只適用於EXPDP導出文件,而不適用於EXP導出文件。

數據泵導出包括導出表,導出方案,導出表空間,導出數據庫4種方式.

 

三、Expdp參數

EXPDP命令行選項,可通過expdp help=y查看:

E:\emp>expdp help=y

Export: Release 10.2.0.1.0- Production on 星期日, 03 5月, 2009 17:54:49

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

數據泵導出實用程序提供了一種用於在 Oracle 數據庫之間傳輸

數據對象的機制。該實用程序可以使用以下命令進行調用:

   示例: expdp scott/tigerDIRECTORY=dmpdir DUMPFILE=scott.dmp

您可以控制導出的運行方式。具體方法是: 在 'expdp' 命令後輸入

各種參數。要指定各參數, 請使用關鍵字:

   格式: expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

   示例: expdp scott/tigerDUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott

               或 TABLES=(T1:P1,T1:P2), 如果 T1 是分區表

USERID 必須是命令行中的第一個參數。

關鍵字               說明 (默認)

------------------------------------------------------------------------------

ATTACH                連接到現有作業, 例如 ATTACH [=作業名]。

COMPRESSION           減小有效的轉儲文件內容的大小

                      關鍵字值爲: (METADATA_ONLY) 和 NONE。

CONTENT               指定要卸載的數據, 其中有效關鍵字爲:

                      (ALL), DATA_ONLY 和 METADATA_ONLY。

DIRECTORY             供轉儲文件和日誌文件使用的目錄對象。

DUMPFILE              目標轉儲文件 (expdat.dmp) 的列表,

                      例如 DUMPFILE=scott1.dmp, scott2.dmp,dmpdir:scott3.dmp。

ENCRYPTION_PASSWORD   用於創建加密列數據的口令關鍵字。

ESTIMATE              計算作業估計值, 其中有效關鍵字爲:

                     (BLOCKS) 和 STATISTICS。

ESTIMATE_ONLY         在不執行導出的情況下計算作業估計值。

EXCLUDE               排除特定的對象類型, 例如EXCLUDE=TABLE:EMP。

FILESIZE              以字節爲單位指定每個轉儲文件的大小。

FLASHBACK_SCN         用於將會話快照設置回以前狀態的 SCN。

FLASHBACK_TIME        用於獲取最接近指定時間的 SCN 的時間。

FULL                  導出整個數據庫 (N)。

HELP                  顯示幫助消息 (N)。

INCLUDE               包括特定的對象類型, 例如INCLUDE=TABLE_DATA。

JOB_NAME              要創建的導出作業的名稱。

LOGFILE               日誌文件名 (export.log)。

NETWORK_LINK          鏈接到源系統的遠程數據庫的名稱。

NOLOGFILE             不寫入日誌文件 (N)。

PARALLEL              更改當前作業的活動 worker 的數目。

PARFILE               指定參數文件。

QUERY                 用於導出表的子集的謂詞子句。

SAMPLE                要導出的數據的百分比;

SCHEMAS               要導出的方案的列表 (登錄方案)。

STATUS                在默認值 (0) 將顯示可用時的新狀態的情況下,

                      要監視的頻率 (以秒計) 作業狀態。

TABLES                標識要導出的表的列表 - 只有一個方案。

TABLESPACES           標識要導出的表空間的列表。

TRANSPORT_FULL_CHECK  驗證所有表的存儲段 (N)。

TRANSPORT_TABLESPACES 要從中卸載元數據的表空間的列表。

VERSION               要導出的對象的版本, 其中有效關鍵字爲:

                      (COMPATIBLE), LATEST 或任何有效的數據庫版本。

 

下列命令在交互模式下有效。

注: 允許使用縮寫

 

命令               說明

------------------------------------------------------------------------------

ADD_FILE              向轉儲文件集中添加轉儲文件。

CONTINUE_CLIENT       返回到記錄模式。如果處於空閒狀態, 將重新啓動作業。

EXIT_CLIENT           退出客戶機會話並使作業處於運行狀態。

FILESIZE              後續 ADD_FILE 命令的默認文件大小 (字節)。

HELP                  總結交互命令。

KILL_JOB              分離和刪除作業。

PARALLEL              更改當前作業的活動 worker 的數目。

                      PARALLEL=<worker 的數目>。

START_JOB             啓動/恢復當前作業。

STATUS                在默認值 (0) 將顯示可用時的新狀態的情況下,

                      要監視的頻率 (以秒計) 作業狀態。

                      STATUS[=interval]

STOP_JOB              順序關閉執行的作業並退出客戶機。

                      STOP_JOB=IMMEDIATE 將立即關閉

                      數據泵作業。

1)ATTACH

該選項用於在客戶會話與已存在導出作用之間建立關聯.語法如下

ATTACH=[schema_name.]job_name

Schema_name用於指定方案名,job_name用於指定導出作業名.注意,如果使用ATTACH選項在命令行除了連接字符串和ATTACH選項外,不能指定任何其他選項,示例如下:

Expdp scott/tiger ATTACH=scott.export_job

2) CONTENT

該選項用於指定要導出的內容.默認值爲ALL

CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

當設置CONTENT爲ALL 時,將導出對象定義及其所有數據.爲DATA_ONLY時,只導出對象數據,爲METADATA_ONLY時,只導出對象定義

Expdp scott/tiger DIRECTORY=dumpDUMPFILE=a.dump

CONTENT=METADATA_ONLY

3) DIRECTORY

指定轉儲文件和日誌文件所在的目錄

DIRECTORY=directory_object

Directory_object用於指定目錄對象名稱.需要注意,目錄對象是使用CREATE DIRECTORY語句建立的對象,而不是OS 目錄

Expdp scott/tiger DIRECTORY=dumpDUMPFILE=a.dump

建立目錄:

SQL> createdirectory dump_dir as 'd:\dump';

目錄已創建。

SQL> grantread,write on directory dump_dir to scott;

授權成功。

查詢創建了那些子目錄:

SELECT * FROM dba_directories;

4) DUMPFILE

用於指定轉儲文件的名稱,默認名稱爲expdat.dmp

DUMPFILE=[directory_object:]file_name [,….]

Directory_object用於指定目錄對象名,file_name用於指定轉儲文件名.需要注意,如果不指定directory_object,導出工具會自動使用DIRECTORY選項指定的目錄對象

Expdp scott/tiger DIRECTORY=dump1DUMPFILE=dump2:a.dmp

5.)ESTIMATE

指定估算被導出表所佔用磁盤空間分方法.默認值是BLOCKS

EXTIMATE={BLOCKS | STATISTICS}

設置爲BLOCKS時,oracle會按照目標對象所佔用的數據塊個數乘以數據塊尺寸估算對象佔用的空間,設置爲STATISTICS時,根據最近統計值估算對象佔用空間

Expdp scott/tiger TABLES=empESTIMATE=STATISTICS

DIRECTORY=dump DUMPFILE=a.dump

6.)EXTIMATE_ONLY

指定是否只估算導出作業所佔用的磁盤空間,默認值爲N

EXTIMATE_ONLY={Y | N}

設置爲Y時,導出作用只估算對象所佔用的磁盤空間,而不會執行導出作業,爲N時,不僅估算對象所佔用的磁盤空間,還會執行導出操作.

Expdp scott/tiger ESTIMATE_ONLY=yNOLOGFILE=y

7.)EXCLUDE

該選項用於指定執行操作時釋放要排除對象類型或相關對象

EXCLUDE=object_type[:name_clause] [,….]

Object_type用於指定要排除的對象類型,name_clause用於指定要排除的具體對象.EXCLUDE和INCLUDE不能同時使用

Expdp scott/tiger DIRECTORY=dumpDUMPFILE=a.dup EXCLUDE=VIEW

8)FILESIZE

指定導出文件的最大尺寸,默認爲0,(表示文件尺寸沒有限制)

9. FLASHBACK_SCN

指定導出特定SCN時刻的表數據

FLASHBACK_SCN=scn_value

Scn_value用於標識SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同時使用

Expdp scott/tiger DIRECTORY=dumpDUMPFILE=a.dmp

FLASHBACK_SCN=358523

10)FLASHBACK_TIME

指定導出特定時間點的表數據

FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”

Expdp scott/tiger DIRECTORY=dumpDUMPFILE=a.dmp FLASHBACK_TIME=

“TO_TIMESTAMP(’25-08-200414:35:00’,’DD-MM-YYYYHH24:MI:SS’)”

11)FULL

指定數據庫模式導出,默認爲N

FULL={Y | N}

爲Y時,標識執行數據庫導出.

12)HELP

指定是否顯示EXPDP命令行選項的幫助信息,默認爲N

當設置爲Y時,會顯示導出選項的幫助信息.

Expdp help=y

13)INCLUDE

指定導出時要包含的對象類型及相關對象

INCLUDE = object_type[:name_clause] [,… ]

14)JOB_NAME

指定要導出作用的名稱,默認爲SYS_XXX

JOB_NAME=jobname_string

15)LOGFILE

指定導出日誌文件文件的名稱,默認名稱爲export.log

LOGFILE=[directory_object:]file_name

Directory_object用於指定目錄對象名稱,file_name用於指定導出日誌文件名.如果不指定directory_object.導出作用會自動使用DIRECTORY的相應選項值.

Expdp scott/tiger DIRECTORY=dumpDUMPFILE=a.dmp logfile=a.log

16)NETWORK_LINK

指定數據庫鏈名,如果要將遠程數據庫對象導出到本地例程的轉儲文件中,必須設置該選項.

17)NOLOGFILE

該選項用於指定禁止生成導出日誌文件,默認值爲N.

18)PARALLEL

指定執行導出操作的並行進程個數,默認值爲1

19)PARFILE

指定導出參數文件的名稱

PARFILE=[directory_path] file_name

20)QUERY

用於指定過濾導出數據的where條件

QUERY=[schema.] [table_name:] query_clause

Schema用於指定方案名,table_name用於指定表名,query_clause用於指定條件限制子句.QUERY選項不能與CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等選項同時使用.

Expdp scott/tiger directory=dumpdumpfiel=a.dmp

Tables=emp query=’WHERE deptno=20’

21)SCHEMAS

該方案用於指定執行方案模式導出,默認爲當前用戶方案.

22)STATUS

指定顯示導出作用進程的詳細狀態,默認值爲0

23)TABLES

指定表模式導出

TABLES=[schema_name.]table_name[:partition_name][,…]

Schema_name用於指定方案名,table_name用於指定導出的表名,partition_name用於指定要導出的分區名.

24)TABLESPACES

指定要導出表空間列表

25)TRANSPORT_FULL_CHECK

該選項用於指定被搬移表空間和未搬移表空間關聯關係的檢查方式,默認爲N.

當設置爲Y時,導出作用會檢查表空間直接的完整關聯關係,如果表空間所在表空間或其索引所在的表空間只有一個表空間被搬移,將顯示錯誤信息.當設置爲N時,導出作用只檢查單端依賴,如果搬移索引所在表空間,但未搬移表所在表空間,將顯示出錯信息,如果搬移表所在表空間,未搬移索引所在表空間,則不會顯示錯誤信息.

26)TRANSPORT_TABLESPACES

指定執行表空間模式導出

27)VERSION

指定被導出對象的數據庫版本,默認值爲COMPATIBLE.

VERSION={COMPATIBLE | LATEST |version_string}

爲COMPATIBLE時,會根據初始化參數COMPATIBLE生成對象元數據;爲LATEST時,會根據數據庫的實際版本生成對象元數據.version_string用於指定數據庫版本字符串.

 

四、EXPDP用法

使用EXPDP工具時,其轉儲文件只能被存放在DIRECTORY對象對應的OS目錄中,而不能直接指定轉儲文件所在的OS目錄.因此,使用EXPDP工具時,必須首先建立DIRECTORY對象.並且需要爲數據庫用戶授予使用DIRECTORY對象權限.

CREATE DIRECTORY dump_dir AS ‘c:\emp’;

GRANT READ, WRITE ON DIRECTORY dump_dir TO scott;

 


1、導出表

Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=dept.dmpTABLES=dept

 


注:在unix下要注意directory目錄的讀寫權限問題,如:

 

查看dump_dir所在的目錄:用sys用戶查看數據字典dba_directories 

更該該文件夾的權限:chown–R oracle:dba /exp,問題解決

 

2、導出方案

expdp scott/tiger directory=dump_dirdumpfile=schema.dmp logfile=schema.log schemas=system

 


3、導出表空間

expdp scott/tiger directory=dump_dirdumpfile=tb.dmp logfile=tb.log tablespaces=users

 


4、導出數據庫

Expdp system/manager DIRECTORY=dump_dirDUMPFILE=full.dmp FULL=Y

Expdp scott/tiger DIRECTORY=dump_dirDUMPFILE=full.dmp FULL=Y

 

注:提示scott用戶沒有相應的權限,給scott相應的權限或使用system來做全庫導出 。

SQL> grant exp_full_database to scott;

Grant succeeded.

然後在做全庫的導出:

 

五、IMPDP參數

IMPDP與EXPDP的不同參數:

1、REMAP_DATAFILE

該選項用於將源數據文件名轉變爲目標數據文件名,在不同平臺之間搬移表空間時可能需要該選項.

REMAP_DATAFIEL=source_datafie:target_datafile

2、REMAP_SCHEMA

該選項用於將源方案的所有對象裝載到目標方案中.

REMAP_SCHEMA=source_schema:target_schema

3、REMAP_TABLESPACE

將源表空間的所有對象導入到目標表空間中

REMAP_TABLESPACE=source_tablespace:target:tablespace

4、REUSE_DATAFILES

該選項指定建立表空間時是否覆蓋已存在的數據文件.默認爲N

REUSE_DATAFIELS={Y | N}

5、SKIP_UNUSABLE_INDEXES

指定導入是是否跳過不可使用的索引,默認爲N

6、SQLFILE

指定將導入要指定的索引DDL操作寫入到SQL腳本中

SQLFILE=[directory_object:]file_name

Impdp scott/tiger DIRECTORY=dumpDUMPFILE=tab.dmp SQLFILE=a.sql

7、STREAMS_CONFIGURATION

指定是否導入流元數據(StreamMatadata),默認值爲Y.

8、TABLE_EXISTS_ACTION

該選項用於指定當表已經存在時導入作業要執行的操作,默認爲SKIP

TABBLE_EXISTS_ACTION={SKIP | APPEND |TRUNCATE | FRPLACE }

當設置該選項爲SKIP時,導入作業會跳過已存在表處理下一個對象;當設置爲APPEND時,會追加數據,爲TRUNCATE時,導入作業會截斷表,然後爲其追加新數據;當設置爲REPLACE時,導入作業會刪除已存在表,重建表並追加數據,注意,TRUNCATE選項不適用與簇表和NETWORK_LINK選項

9、TRANSFORM

該選項用於指定是否修改建立對象的DDL語句

TRANSFORM=transform_name:value[:object_type]

Transform_name用於指定轉換名,其中SEGMENT_ATTRIBUTES用於標識段屬性(物理屬性,存儲屬性,表空間,日誌等信息),STORAGE用於標識段存儲性,VALUE用於指定是否包含段屬性或段存儲屬性,object_type用於指定對象類型.

Impdp scott/tiger directory=dumpdumpfile=tab.dmp

Transform=segment_attributes:n:table

10、TRANSPORT_DATAFILES

該選項用於指定搬移空間時要被導入到目標數據庫的數據文件

TRANSPORT_DATAFILE=datafile_name

Datafile_name用於指定被複制到目標數據庫的數據文件

Impdp system/manager DIRECTORY=dumpDUMPFILE=tts.dmp

TRANSPORT_DATAFILES=’/user01/data/tbs1.f’

 

六、IMPDP用法

 

1、導入表

impdp hsiufo/hsiufo directory=dump_dirdumpfile=full.dmp tables=scott.emp remap_schema=scott:scott

注:上圖爲爲有一個全庫的邏輯備份 full.dmp,然後刪除用戶scott的emp表,在full.dmp中導入emp到用戶scott

impdp hsiufo/hsiufo directory=dump_dirdumpfile=full.dmp tables=scott.test remap_schema=scott:system

第一種方法表示將EMP表導入到SCOTT方案中,第二種方法表示將test表導入的SYSTEM方案中.

注意,如果要將表導入到其他方案中,必須指定REMAP SCHEMA選項.

2、導入方案

impdp hsiufo/hsiufodirectory=dump_dir dumpfile=full.dmp schemas=scott

Impdp system/manager DIRECTORY=dump_dirDUMPFILE=schema.dmp

SCHEMAS=scott REMAP_SCHEMA=scott:system

3、導入表空間

Impdp system/manager DIRECTORY=dump_dirDUMPFILE=tablespace.dmp

TABLESPACES=user01

4、導入數據庫

Impdp system/manager DIRECTORY=dump_dirDUMPFILE=full.dmp FULL=y


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章