Oracle 11g資料泵詳解

來源:互聯網
上載者:User

Oracle 11g資料泵詳解

Oracle Database 10g引入了最新的資料泵(DataDump)技術,資料泵匯出匯入(EXPDP和IMPDP)的作用

1,實現邏輯備份和邏輯恢複

2,在資料庫使用者之間移動對象

3,在資料庫之間移動對象

4,實現資料表空間搬移

資料泵使用EXPDP和IMPDP時應該注意的事項:

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

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

IMP只適用於EXP匯出的檔案,不適用於EXPDP匯出檔案;IMPDP只適用於EXPDP匯出的檔案,而不適用於EXP匯出檔案。

一:可以通過dblink來使用資料泵,這樣省掉了匯出的步驟,操作簡單了。如下所示的例子:

impdp  system/manager123 network_link=dblink_to_myself  remap_tablespace=DIC_DATA:DICTEST remap_schema=DICTEST_ZH_CN:DICTEST_ZH_CN  tables=td_pay_bank, td_common_content  TABLE_EXISTS_ACTION=replace;

二:匯出的內容

1)按使用者導

expdpscott/tiger@orclschemas=scott dumpfile=expdp.dmp DIRECTORY=dir logfile=expdp.log

2)並行進程parallel

expdpscott/tiger@orcldirectory=dir dumpfile=scott3.dmp parallel=40  job_name=scott3

3)按表名導

expdpscott/tiger@orclTABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dir;

4)按查詢條件導

expdpscott/tiger@orcldirectory=dir dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';

5)按資料表空間導

expdp system/manager DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=temp,example;

6)導整個資料庫

expdp system/manager  DIRECTORY=dir  DUMPFILE=full.dmp  FULL=y;

三:匯出內容:

CONTENT該選項用於指定要匯出的內容.預設值為ALL
 CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
當設定CONTENT為ALL時,將匯出對象定義及其所有資料.為DATA_ONLY時,只匯出對象資料,為METADATA_ONLY時,只匯出對象定義
例子:只匯出表結構

expdp  system/"manager(*)0202"  directory=bak  dumpfile=TEST_NAV_ZH_CN20150506.dmp  schemas=test_nav_zh_tw,  test_nav_zh_cn test_nav_en_us, test_nav_ar_sa  CONTENT=METADATA_ONLY 

四:directory: 

 查看已經建好的目錄;如果沒有使用directory參數那麼會使用目錄DATA_PUMP_DIR

SQL> select * from dba_directories;

OWNER DIRECTORY_NAME DIRECTORY_PATH
 ----- ---------------------- ----------------------------------------------------------

SYS SUBDIR /u01/app/oracle/product/11.2.0/db/demo/schema/order_entry//2002/Sep
SYS SS_OE_XMLDIR /u01/app/oracle/product/11.2.0/db/demo/schema/order_entry/
SYS LOG_FILE_DIR /u01/app/oracle/product/11.2.0/db/demo/schema/log/
SYS MEDIA_DIR /u01/app/oracle/product/11.2.0/db/demo/schema/product_media/
SYS XMLDIR /u01/app/oracle/product/11.2.0/db/rdbms/xml
SYS DATA_FILE_DIR /u01/app/oracle/product/11.2.0/db/demo/schema/sales_history/
SYS DATA_PUMP_DIR /u01/app/oracle/admin/tj01/dpdump/
SYS ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0/db/ccr/state
 

注意:通過查詢我們看到,所有的目錄都屬於SYS使用者,而不管是哪個使用者建立的,在資料庫裡已經提前建好了這個目錄對象DATA_PUMP_DIR。如果在使用expdp匯出時,不指定目錄對象參數,Oracle會使用資料庫預設的目錄DATA_PUMP_DIR,不過如果想使用這個目錄的話,使用者需要具有exp_full_database的許可權才行
 

五:不常用的一些參數;
1.EXTIMATE_ONLY

指定是否只估算匯出作業所佔用的磁碟空間,預設值為N

2.EXTIMATE_ONLY={Y | N}

設定為Y時,匯出作用只估算對象所佔用的磁碟空間,而不會執行匯出作業,為N時,不僅估算對象所佔用的磁碟空間,還會執行匯出操作.

Expdp scott/tiger ESTIMATE_ONLY=yNOLOGFILE=y

3.EXCLUDE

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

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

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

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

4.FILESIZE

指定匯出檔案的最大尺寸,預設為0,(表示檔案尺寸沒有限制)

5. 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’)”
 
六:當用一個schema去覆蓋另一個schemas時,如下:

[oracle@rac1 ~]$ impdp system/manager123 network_link=dblink_to_myself remap_tablespace=users:users remap_schema=liuwenhe:liuhe schemas=liuwenhe;

如果liuhe這使用者存在,那麼該操作完成之後,liuhe這個使用者權限,密碼什麼的不會變化。

如果liuhe這個使用者不存在,那麼該操作完成之後,就會建立一個liuhe的使用者,並且沒有任何許可權,值得注意的是密碼和liuwenhe的密碼相同。

七:當匯入schemas的時候,會把屬於這個使用者的所有對象,包括SEQUENCE,FUNCTION,PROCEDURE,主鍵,索引,都一併過去。

[oracle@rac1 ~]$ impdp system/manager123  network_link=dblink_to_myself remap_tablespace=users:users remap_schema=liuwenhe:liuhe  tables=liuwenhe.liuwenhe table_exists_action=replace; 

liuwenhe.liuwenhe這個表的主鍵和索引,也會過去。並且名字和liuwenhe.liuwenhe的對應名字一樣。

八:該選項用於指定當表已經存在時匯入作業要執行的操作,預設為SKIP
TABBLE_EXISTS_ACTION={SKIP | APPEND |TRUNCATE | FRPLACE }

當設定該選項為SKIP時,匯入作業會跳過已存在表處理下一個對象;當設定為APPEND時,會追加資料,為TRUNCATE時,匯入作業會截斷表,然後為其追加新資料;當設定為REPLACE時,匯入作業會刪除已存在表,重建表並追加資料,注意,TRUNCATE選項不適用與簇表和NETWORK_LINK選項
 
九:注意:普通使用者做全庫匯出,需要有這個許可權:
SQL> grant exp_full_database to scott;

十:REMAP_TABLE參數 

 將源表資料對應到不同的目標表中
 eg:impdp orcldev/oracle DIRECTORY=backup_path dumpfile=oracldev.dmp remap_table=TAB_TEST:TEST_TB
  資料匯入到TEST_TB表中,但是該表的索引等資訊並沒有相應的建立,需要手工初始化
 
十一:REMAP_DATAFILE參數

  文法:REMAP_DATAFILE=source_datafile:target_datafile
   Oracle_Online:
  Remapping datafiles is useful when you move databases between platforms that have different file naming conventions. The source_datafile and target_datafile names should be exactly as you want them to appear in the SQL statements where they are referenced. Oracle recommends that you enclose datafile names in quotation marks to eliminate ambiguity on platforms for which a colon is a valid file specification character

十三:下面看一個實驗 ,驗證的是只匯出資料後,可以恢複,就算是表結構已經變化了,他也能把相應的列恢複,

1)SQL> desc liuwenhe.liuwenhe;

 Name                                      Null?    Type

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

 X                                        NOT NULL NUMBER(38)

 Y                                                  NUMBER(38)

2)SQL> select * from liuwenhe.liuwenhe;

        X          Y

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

        1          3

        3          3

        2          4

        4          5

        5          8

        6          9

6 rows selected.

3)[oracle@rac1 expdp]$ expdp system/manager123 directory=bak dumpfile=hhhf.dmp tables=liuwenhe.liuwenhe;

 Export: Release 11.2.0.3.0 - Production on Mon Jul 6 11:52:56 2015

 Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
 With the Partitioning, Real Application Clusters, OLAP, Data Mining
 and Real Application Testing options
 Starting "SYSTEM"."SYS_EXPORT_TABLE_03":  system/******** directory=bak dumpfile=hhhf.dmp tables=liuwenhe.liuwenhe
 Estimate in progress using BLOCKS method...
 Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
 Total estimation using BLOCKS method: 64 KB
 Processing object type TABLE_EXPORT/TABLE/TABLE
 Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
 Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
 Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
 Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
 . . exported "LIUWENHE"."LIUWENHE"                      5.492 KB      6 rows
 Master table "SYSTEM"."SYS_EXPORT_TABLE_03" successfully loaded/unloaded
 ******************************************************************************
 Dump file set for SYSTEM.SYS_EXPORT_TABLE_03 is:
  /backup/expdp/hhhf.dmp
 Job "SYSTEM"."SYS_EXPORT_TABLE_03" successfully completed at 11:53:10

4)SQL> alter table liuwenhe.liuwenhe  drop column y;

Table altered.

5)SQL> truncate table liuwenhe.liuwenhe;

Table truncated.

6)[oracle@rac1 expdp]$ impdp system/manager123 directory=bak dumpfile=hhhf.dmp tables=liuwenhe.liuwenhe  content=data_only;

Import: Release 11.2.0.3.0 - Production on Mon Jul 6 11:55:07 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Real Application Clusters, OLAP, Data Mining

and Real Application Testing options

Master table "SYSTEM"."SYS_IMPORT_TABLE_04" successfully loaded/unloaded

Starting "SYSTEM"."SYS_IMPORT_TABLE_04":  system/******** directory=bak dumpfile=hhhf.dmp tables=liuwenhe.liuwenhe content=data_only 

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

. . imported "LIUWENHE"."LIUWENHE"                      5.492 KB      6 rows

Job "SYSTEM"."SYS_IMPORT_TABLE_04" successfully completed at 11:55:13
7)SQL> select * from liuwenhe.liuwenhe;

        X

----------

        1

        2

        3

        4

        5

        6

6 rows selected.

總結:Oracle資料泵,邏輯備份和恢複工具,他直接在邏輯從面操作,不能想象成單純的insert , 而且只匯出資料,然後恢複資料時候,可以不用寫remap_tablespace這個參數 。 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.