oracle實驗記錄 (expdp/impdp使用)

fufuh2o發表於2009-09-23

10G新加
只能在server端使用,client端不能使用


expdp命令的使用時候有很多引數~可以滿足不同需求,可以用HELP檢視 引數及其使用說明
C:\>expdp system/a831115 help=y  使用help檢視可使用的引數


Export: Release 10.2.0.1.0 - Production on 星期一, 21 9月, 2009 16:13:51

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


資料泵匯出實用程式提供了一種用於在 Oracle 資料庫之間傳輸
資料物件的機制。該實用程式可以使用以下命令進行呼叫:

   示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

您可以控制匯出的執行方式。具體方法是: 在 'expdp' 命令後輸入
各種引數。要指定各引數, 請使用關鍵字:

   格式:  expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
   示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
               或 TABLES=(T1:P1,T1:P2), 如果 T1 是分割槽表

USERID 必須是命令列中的第一個引數。

關鍵字               說明 (預設)
------------------------------------------------------------------------------
ATTACH                連線到現有作業, 例如 ATTACH [=作業名]。
COMPRESSION           減小有效的轉儲檔案內容的大小
                      關鍵字值為: (METADATA_ONLY) 和 NONE。
CONTENT               指定要解除安裝的資料, 其中有效關鍵字為:~~ (DATA_ONLY只匯出數

據,metadata_only只匯出物件定義)
                      (ALL), DATA_ONLY 和 METADATA_ONLY。
DIRECTORY             供轉儲檔案和日誌檔案使用的目錄物件。
DUMPFILE              目標轉儲檔案 (expdat.dmp) 的列表,
                      例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD   用於建立加密列資料的口令關鍵字。
ESTIMATE              計算作業估計值, 其中有效關鍵字為:(當使用BLOCKS時oracle用匯出物件

blocks*塊尺寸算估計佔用匯出空間,statistics時用統計資訊估算)
                      (BLOCKS) 和 STATISTICS。
ESTIMATE_ONLY         在不執行匯出的情況下計算作業估計值。(N|Y 預設N ,Y時候是估匯出作業佔

用空間而不實際匯出)
EXCLUDE               排除特定的物件型別, 例如 EXCLUDE=TABLE:EMP。
FILESIZE              以位元組為單位指定每個轉儲檔案的大小。(DEFAULT O 表示無限制)
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=
START_JOB             啟動/恢復當前作業。
STATUS                在預設值 (0) 將顯示可用時的新狀態的情況下,
                      要監視的頻率 (以秒計) 作業狀態。
                      STATUS[=interval]
STOP_JOB              順序關閉執行的作業並退出客戶機。
                      STOP_JOB=IMMEDIATE 將立即關閉


                      資料泵作業。

 

簡單使用下幾個引數


C:\>expdp system/a831115@xh  estimate_only=y (評估匯出SYSTEM SCHEMA)


使用 BLOCKS 方法的總估計: 1.687 MB
作業 "SYSTEM"."SYS_EXPORT_SCHEMA_02" 已於 17:44:17 成功完成

 

C:\>expdp system/a831115@xh  tables=xh.t1 estimate_only=y

Export: Release 10.2.0.1.0 - Production on 星期一, 21 9月, 2009 17:47:09

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "SYSTEM"."SYS_EXPORT_TABLE_02":  system/********@xh tables=xh.t1 estimate_only
=y
正在使用 BLOCKS 方法進行估計...
處理物件型別 TABLE_EXPORT/TABLE/TABLE_DATA
.  預計為 "XH"."T1"                                      64 KB
使用 BLOCKS 方法的總估計: 64 KB
作業 "SYSTEM"."SYS_EXPORT_TABLE_02" 已於 17:47:20 成功完成

 

 

C:\>expdp system/a831115@xh directory=expdpt dumpfile=test.dmp tables=xh.t1 estimat
e_only=y

Export: Release 10.2.0.1.0 - Production on 星期一, 21 9月, 2009 17:43:20

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-39002: 操作無效
ORA-39201: 僅用於評估的作業不支援轉儲檔案。
不能寫上DUMPFILE

 

C:\>expdp xh/a123@xh directory=expdpt dumpfile=D.dbf full=y job_name=test
JOB_NAME DEFAULT SYS_XXX 例如 作業 "XH"."SYS_EXPORT_TABLE_01"

 

USER_DATAPUMP_JOBS
DBA_DATAPUMP_JOBS
SQL> DESC DBA_DATAPUMP_JOBS;
 名稱                                      是否為空? 型別
 ----------------------------------------- -------- ----------------------------
 OWNER_NAME                                         VARCHAR2(30)
 JOB_NAME                                           VARCHAR2(30)
 OPERATION                                          VARCHAR2(30)
 JOB_MODE                                           VARCHAR2(30)
 STATE                                              VARCHAR2(30)
 DEGREE                                             NUMBER
 ATTACHED_SESSIONS                                  NUMBER
 DATAPUMP_SESSIONS                                  NUMBER

SQL> select owner_name,operation,job_mode,degree from dba_datapump_jobs where job_n
ame='TEST';

OWNER_NAME
------------------------------
OPERATION
------------------------------------------------------------
JOB_MODE                                                         DEGREE
------------------------------------------------------------ ----------
XH
EXPORT
FULL                                                                  1

 

 

SQL> select count(*) from t1;

  COUNT(*)
----------
         1

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
     797675

SQL> insert into t1 values(2);

已建立 1 行。

SQL> commit;

提交完成。

SQL> select count(*) from t1;

  COUNT(*)
----------
         2

C:\>expdp xh/a123@xh directory=expdpt dumpfile=a1.dbf tables=t1 flashback_scn=79767
5

Export: Release 10.2.0.1.0 - Production on 星期二, 22 9月, 2009 9:34:55

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "XH"."SYS_EXPORT_TABLE_01":  xh/********@xh directory=expdpt dumpfile=a1.dbf t
ables=t1 flashback_scn=797675
正在使用 BLOCKS 方法進行估計...
處理物件型別 TABLE_EXPORT/TABLE/TABLE_DATA

. . 匯出了 "XH"."T1"                                   4.921 KB       1 行~~~~~~~~~~可以看

到只匯出了1行

 

 

 

 

 


C:\>expdp xh/a123@xh directory=expdpt dumpfile=a4.dbf full=y  parallel=2 job_name=t
est
並行執行
Export: Release 10.2.0.1.0 - Production on 星期二, 22 9月, 2009 10:19:23

SQL> select program,sid from v$session where username='XH';

PROGRAM                                                                 SID
---------------------------------------------------------------- ----------
expdp.exe                                                               125
ORACLE.EXE (DW02)                                                       131
ORACLE.EXE (DM00)                                                       132
ORACLE.EXE (DW01)                                                       138

SQL> col owner_name format a10
SQL> col operation format a10
SQL> col job_mode format a10
SQL> select owner_name,operation,job_mode,degree,attached_sessions,datapump_session
s from dba_datapump_jobs where job_name='TEST';

OWNER_NAME OPERATION  JOB_MODE       DEGREE ATTACHED_SESSIONS DATAPUMP_SESSIONS
---------- ---------- ---------- ---------- ----------------- -----------------
XH         EXPORT     FULL                2                 1                 4

 

ATTACHED_SESSIONS NUMBER   Number of sessions attached to the job
DATAPUMP_SESSIONS NUMBER   Number of Data Pump sessions participating in the job

 

 

SQL> conn xh/a123
已連線。
SQL> select * from t1;

         A
----------
         2
         1


C:\>expdp xh/a123@xh directory=expdpt dumpfile=a.dbf tables=t1 query='where a=2'

Export: Release 10.2.0.1.0 - Production on 星期二, 22 9月, 2009 10:40:43

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "XH"."SYS_EXPORT_TABLE_01":  xh/********@xh directory=expdpt dumpfile=a.dbf t
bles=t1 query='where a=2'
正在使用 BLOCKS 方法進行估計...
處理物件型別 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 64 KB
處理物件型別 TABLE_EXPORT/TABLE/TABLE
. . 匯出了 "XH"."T1"                                   4.921 KB       1 行~~~~~~~~~只匯出了

A=這行
已成功載入/解除安裝了主表 "XH"."SYS_EXPORT_TABLE_01"
******************************************************************************
XH.SYS_EXPORT_TABLE_01 的轉儲檔案集為:
  D:\EXPDP\A.DBF
作業 "XH"."SYS_EXPORT_TABLE_01" 已於 10:40:57 成功完成

 

C:\>expdp xh/a123@xh directory=expdpt dumpfile=c tablespaces=system status=10
每10S 報告下狀態     default 0
Worker 1 狀態:
  狀態: EXECUTING
. . 匯出了 "SYSTEM"."REPCAT$_USER_AUTHORIZATIONS"          0 KB       0 行

作業: SYS_EXPORT_TABLESPACE_01
  操作: EXPORT
  模式: TABLESPACE
  狀態: EXECUTING
  處理的位元組: 200,552
  完成的百分比: 99
  當前並行度: 1
  作業錯誤計數: 0
  轉儲檔案: D:\EXPDP\C.DMP
    寫入的位元組: 471,040

Worker 1 狀態:
  狀態: EXECUTING
. . 匯出了 "SYSTEM"."REPCAT$_USER_PARM_VALUES"             0 KB       0 行

作業: SYS_EXPORT_TABLESPACE_01
  操作: EXPORT
  模式: TABLESPACE
  狀態: EXECUTING
  處理的位元組: 200,552
  完成的百分比: 99
  當前並行度: 1
  作業錯誤計數: 0
  轉儲檔案: D:\EXPDP\C.DMP
    寫入的位元組: 471,040

 

 

 

C:\>expdp xh/a123@xh parfile=d:\test.txt (使用引數檔案)

TEXT.TXT中包含  directory=expdpt dumpfile=e tables=t1
Export: Release 10.2.0.1.0 - Production on 星期二, 22 9月, 2009 11:08:25

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "XH"."SYS_EXPORT_TABLE_01":  xh/********@xh parfile=d:\test.txt
正在使用 BLOCKS 方法進行估計...
處理物件型別 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 64 KB
處理物件型別 TABLE_EXPORT/TABLE/TABLE
. . 匯出了 "XH"."T1"                                   4.929 KB       2 行
已成功載入/解除安裝了主表 "XH"."SYS_EXPORT_TABLE_01"
******************************************************************************
XH.SYS_EXPORT_TABLE_01 的轉儲檔案集為:
  D:\EXPDP\E.DMP
作業 "XH"."SYS_EXPORT_TABLE_01" 已於 11:08:40 成功完成

 

TRANSPORT_FULL_CHECK會檢查要移動的表空間的完成關係

If TRANSPORT_FULL_CHECK=y, then Export verifies that there are no dependencies between

those objects inside the transportable set and those outside the transportable set. The

check addresses two-way dependencies. For example, if a table is inside the transportable

set but its index is not, a failure is returned and the export operation is terminated.

Similarly, a failure is also returned if an index is in the transportable set but the table

is not.

If TRANSPORT_FULL_CHECK=n, then Export verifies only that there are no objects within the

transportable set that are dependent on objects outside the transportable set. This check

addresses a one-way dependency. For example, a table is not dependent on an index, but an

index is dependent on a table, because an index without a table has no meaning. Therefore,

if the transportable set contains a table, but not its index, then this check succeeds.

However, if the transportable set contains an index, but not the table, the export

operation is terminated.

In addition to this check, Export always verifies that all storage segments of all tables

(and their indexes) defined within the tablespace set specified by TRANSPORT_TABLESPACES

are actually contained within the tablespace set.

 

簡單說就是Y時候檢查表空間的完整關係,例如 T表在TABLESPACE A上T表的INDEX 在B上 為Y時
TRANSPORT_TABLESPACE A 將會報錯 TRANSPORT_TABLESPACE B時也會報錯,N時候 TRANSPORT_TABLESPACE

A不會報錯,但 TRANSPORT_TABLESPACE B時將會報錯

SQL> create table t1 (a int ,b int)
  2  ;

表已建立。

SQL> create index t1_ind on t1(a) tablespace testxh;

索引已建立。

SQL> select tablespace_name from user_tables where table_name='T1';

TABLESPACE_NAME
------------------------------
USERS

SQL> select tablespace_name from user_indexes where index_name='T1_IND';

TABLESPACE_NAME
------------------------------
TESTXH
表已建立。
分析可以看見 T1 表與INDEX 在不同的表空間

SQL> alter tablespace users read only;

表空間已更改。
  2  ; 不使用RMAN的話 transport tablespace ,tablespace要readonly
否則報以下錯誤
ORA-39123: 資料泵可傳輸的表空間作業中止
ORA-29335: 表空間 'USERS' 不為只讀

 

C:\>expdp system/a831115@xh directory=expdpt dumpfile=a.dmp  transport_tablespaces=
USERS  transport_full_check=n~~只搬移TABLE表空間

Export: Release 10.2.0.1.0 - Production on 星期二, 22 9月, 2009 12:04:59

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/********@xh directory=expdpt d
umpfile=a.dmp transport_tablespaces=USERS transport_full_check=n
SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 的轉儲檔案集為:
  D:\EXPDP\A.DMP
作業 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" 已經完成, 但是有 1 個錯誤 (於 12:05:36
完成)

SQL> alter tablespace TESTXH read only
  2  ;

表空間已更改。

C:\>expdp system/a831115@xh directory=expdpt dumpfile=a2.dmp  transport_tablespaces
=testxh  transport_full_check=n~~~~~~~~~~~~~~~~~~~~~只搬移INDEX 表空間報錯

Export: Release 10.2.0.1.0 - Production on 星期二, 22 9月, 2009 12:06:10

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/********@xh directory=expdpt d
umpfile=a2.dmp transport_tablespaces=testxh transport_full_check=n
ORA-39123: 資料泵可傳輸的表空間作業中止
ORA-29341: 可傳送集不是自包含的

作業 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" 因致命錯誤於 12:06:16 停止

 

C:\>expdp system/a831115@xh directory=expdpt dumpfile=a2.dmp  transport_tablespaces
=users  transport_full_check=y~~~~~~~~~~~~~~只搬移table表空間

Export: Release 10.2.0.1.0 - Production on 星期二, 22 9月, 2009 12:08:22

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/********@xh directory=expdpt d
umpfile=a2.dmp transport_tablespaces=users transport_full_check=y
ORA-39123: 資料泵可傳輸的表空間作業中止
ORA-29341: 可傳送集不是自包含的

作業 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" 因致命錯誤於 12:08:30 停止

 

 

 


具體實驗下
C:\>mkdir  d:\expdp

SQL> create directory expdpt as 'd:\expdp';

目錄已建立。

匯出表 : 可以匯出執行匯出USER 所擁有的表,如果要匯出其它USER的表 需要exp_full_database role

or dba role,另外多表匯出時只能匯出同一schema中的表

C:\>expdp system/a831115@xh directory=expdpt dumpfile=t11.dmp tables=xh.t1 (匯出xh方案中T1

表)

Export: Release 10.2.0.1.0 - Production on 星期一, 21 9月, 2009 17:06:48

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "SYSTEM"."SYS_EXPORT_TABLE_02":  system/********@xh directory=expdpt dumpfile
t11.dmp tables=xh.t1
正在使用 BLOCKS 方法進行估計...
處理物件型別 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 64 KB
處理物件型別 TABLE_EXPORT/TABLE/TABLE
. . 匯出了 "XH"."T1"                                   4.921 KB       1 行
已成功載入/解除安裝了主表 "SYSTEM"."SYS_EXPORT_TABLE_02"
******************************************************************************
SYSTEM.SYS_EXPORT_TABLE_02 的轉儲檔案集為:
  D:\EXPDP\T11.DMP
作業 "SYSTEM"."SYS_EXPORT_TABLE_02" 已於 17:07:03 成功完成


C:\>expdp system/a831115@xh directory=expdpt dumpfile=t2.dmp tables=t2 (匯出SYS 方案中,T2

表)

Export: Release 10.2.0.1.0 - Production on 星期一, 21 9月, 2009 17:10:17

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "SYSTEM"."SYS_EXPORT_TABLE_02":  system/********@xh directory=expdpt dumpfile
t2.dmp tables=t2
正在使用 BLOCKS 方法進行估計...
處理物件型別 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 64 KB
處理物件型別 TABLE_EXPORT/TABLE/TABLE
. . 匯出了 "SYSTEM"."T2"                               4.921 KB       1 行
已成功載入/解除安裝了主表 "SYSTEM"."SYS_EXPORT_TABLE_02"
******************************************************************************
SYSTEM.SYS_EXPORT_TABLE_02 的轉儲檔案集為:
  D:\EXPDP\T2.DMP
作業 "SYSTEM"."SYS_EXPORT_TABLE_02" 已於 17:10:29 成功完成

C:\>expdp system/a831115@xh directory=expdpt dumpfile=test.dmp tables=xh.t1,sys.t2(來自兩個

不同的SCHEMA不行 )

Export: Release 10.2.0.1.0 - Production on 星期一, 21 9月, 2009 17:12:11

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
UDE-00012: 表模式匯出僅適用於一個方案中的物件

 

匯出schema:
USER 可以匯出自身schema,導其它SCHEMA要EXp_FULL_DATABASE ROLE OR DBA ROLE

C:\>expdp system/a831115@xh directory=expdpt dumpfile=test.dmp schemas=xh,sys

Export: Release 10.2.0.1.0 - Production on 星期一, 21 9月, 2009 17:19:17

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "SYSTEM"."SYS_EXPORT_SCHEMA_02":  system/********@xh directory=expdpt dumpfile
=test.dmp schemas=xh,sys
正在使用 BLOCKS 方法進行估計...
處理物件型別 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 64 KB
處理物件型別 SCHEMA_EXPORT/USER
處理物件型別 SCHEMA_EXPORT/SYSTEM_GRANT
處理物件型別 SCHEMA_EXPORT/ROLE_GRANT
處理物件型別 SCHEMA_EXPORT/DEFAULT_ROLE
......................................
. . 匯出了 "XH"."T1"                                   4.921 KB       1 行
已成功載入/解除安裝了主表 "SYSTEM"."SYS_EXPORT_SCHEMA_02"
******************************************************************************
SYSTEM.SYS_EXPORT_SCHEMA_02 的轉儲檔案集為:
  D:\EXPDP\TEST.DMP
作業 "SYSTEM"."SYS_EXPORT_SCHEMA_02" 已於 17:20:04 成功完成


匯出tablespace
要求exp_full_database or dba role
C:\>expdp system/a831115@xh directory=expdpt dumpfile=test2.dmp tablespaces=users,
ysaux

Export: Release 10.2.0.1.0 - Production on 星期一, 21 9月, 2009 17:21:37

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "SYSTEM"."SYS_EXPORT_TABLESPACE_01":  system/********@xh directory=expdpt dum
file=test2.dmp tablespaces=users,sysaux
正在使用 BLOCKS 方法進行估計...
處理物件型別 TABLE_EXPORT/TABLE/TABLE_DATA
ORA-39139: 資料泵不支援 XMLSchema 物件。將跳過 TABLE_DATA:"OE"."PURCHASEORDER"。
使用 BLOCKS 方法的總估計: 17.25 MB
處理物件型別 TABLE_EXPORT/TABLE/TABLE
處理物件型別 TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
處理物件型別 TABLE_EXPORT/TABLE/INDEX/INDEX
.................
 . 匯出了 "SYSMAN"."MGMT_CREDENTIAL_TYPES"            6.789 KB       4 行
 . 匯出了 "SYSMAN"."MGMT_CREDENTIAL_TYPE_COLUMNS"     8.132 KB       8 行
 . 匯出了 "SYSMAN"."MGMT_CREDENTIAL_TYPE_REF"         7.179 KB       1 行
..................
已成功載入/解除安裝了主表 "SYSTEM"."SYS_EXPORT_TABLESPACE_01"
******************************************************************************
SYSTEM.SYS_EXPORT_TABLESPACE_01 的轉儲檔案集為:
  D:\EXPDP\TEST2.DMP
作業 "SYSTEM"."SYS_EXPORT_TABLESPACE_01" 已經完成, 但是有 1 個錯誤 (於 17:23:45 完
成)

 

匯出DB 要exp_full_database or dba role
*********************SYS方案 不會匯出
C:\>expdp system/a831115@xh directory=expdpt dumpfile=test3.dmp full=y;
已成功載入/解除安裝了主表 "SYSTEM"."SYS_EXPORT_FULL_01"
******************************************************************************

 

IMPDP 匯入


C:\>impdp xh/a123@xh help=y  檢視幫助

Import: Release 10.2.0.1.0 - Production on 星期三, 23 9月, 2009 10:00:19

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


資料泵匯入實用程式提供了一種用於在 Oracle 資料庫之間傳輸
資料物件的機制。該實用程式可以使用以下命令進行呼叫:

     示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

您可以控制匯入的執行方式。具體方法是: 在 'impdp' 命令後輸入
各種引數。要指定各引數, 請使用關鍵字:

     格式:  impdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
     示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

USERID 必須是命令列中的第一個引數。

關鍵字               說明 (預設)
------------------------------------------------------------------------------
ATTACH                連線到現有作業, 例如 ATTACH [=作業名]。
CONTENT               指定要載入的資料, 其中有效關鍵字為:
                      (ALL), DATA_ONLY 和 METADATA_ONLY。
DIRECTORY             供轉儲檔案, 日誌檔案和 sql 檔案使用的目錄物件。
DUMPFILE              要從 (expdat.dmp) 中匯入的轉儲檔案的列表,
                      例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD   用於訪問加密列資料的口令關鍵字。
                      此引數對網路匯入作業無效。
ESTIMATE              計算作業估計值, 其中有效關鍵字為:
                      (BLOCKS) 和 STATISTICS。
EXCLUDE               排除特定的物件型別, 例如 EXCLUDE=TABLE:EMP。
FLASHBACK_SCN         用於將會話快照設定回以前狀態的 SCN。
FLASHBACK_TIME        用於獲取最接近指定時間的 SCN 的時間。
FULL                  從源匯入全部物件 (Y)。
HELP                  顯示幫助訊息 (N)。
INCLUDE               包括特定的物件型別, 例如 INCLUDE=TABLE_DATA。
JOB_NAME              要建立的匯入作業的名稱。
LOGFILE               日誌檔名 (import.log)。
NETWORK_LINK          連結到源系統的遠端資料庫的名稱。
NOLOGFILE             不寫入日誌檔案。
PARALLEL              更改當前作業的活動 worker 的數目。
PARFILE               指定引數檔案。
QUERY                 用於匯入表的子集的謂詞子句。
REMAP_DATAFILE        在所有 DDL 語句中重新定義資料檔案引用。
REMAP_SCHEMA          將一個方案中的物件載入到另一個方案。
REMAP_TABLESPACE      將表空間物件重新對映到另一個表空間。
REUSE_DATAFILES       如果表空間已存在, 則將其初始化 (N)。
SCHEMAS               要匯入的方案的列表。
SKIP_UNUSABLE_INDEXES 跳過設定為無用索引狀態的索引。
SQLFILE               將所有的 SQL DDL 寫入指定的檔案。
STATUS                在預設值 (0) 將顯示可用時的新狀態的情況下,
                      要監視的頻率 (以秒計) 作業狀態。
STREAMS_CONFIGURATION 啟用流後設資料的載入
TABLE_EXISTS_ACTION   匯入物件已存在時執行的操作。
                      有效關鍵字: (SKIP), APPEND, REPLACE 和 TRUNCATE。
TABLES                標識要匯入的表的列表。
TABLESPACES           標識要匯入的表空間的列表。
TRANSFORM             要應用於適用物件的後設資料轉換。
                      有效的轉換關鍵字: SEGMENT_ATTRIBUTES, STORAGE
                      OID 和 PCTSPACE。
TRANSPORT_DATAFILES   按可傳輸模式匯入的資料檔案的列表。
TRANSPORT_FULL_CHECK  驗證所有表的儲存段 (N)。
TRANSPORT_TABLESPACES 要從中載入後設資料的表空間的列表。
                      僅在 NETWORK_LINK 模式匯入操作中有效。
VERSION               要匯出的物件的版本, 其中有效關鍵字為:
                      (COMPATIBLE), LATEST 或任何有效的資料庫版本。
                      僅對 NETWORK_LINK 和 SQLFILE 有效。

下列命令在互動模式下有效。
注: 允許使用縮寫

命令               說明 (預設)
------------------------------------------------------------------------------
CONTINUE_CLIENT       返回到記錄模式。如果處於空閒狀態, 將重新啟動作業。
EXIT_CLIENT           退出客戶機會話並使作業處於執行狀態。
HELP                  總結互動命令。
KILL_JOB              分離和刪除作業。
PARALLEL              更改當前作業的活動 worker 的數目。
                      PARALLEL=
START_JOB             啟動/恢復當前作業。
                      START_JOB=SKIP_CURRENT 在開始作業之前將跳過
                      作業停止時執行的任意操作。
STATUS                在預設值 (0) 將顯示可用時的新狀態的情況下,
                      要監視的頻率 (以秒計) 作業狀態。
                      STATUS[=interval]
STOP_JOB              順序關閉執行的作業並退出客戶機。
                      STOP_JOB=IMMEDIATE 將立即關閉
                      資料泵作業。


簡單使用下幾個引數

 

REMAP_SCHEMA          將一個方案中的物件載入到另一個方案。
SQL> conn xh/a123
已連線。
SQL> select count(*) from t1;

  COUNT(*)
----------
         1

SQL> conn zz/a123
已連線。
SQL> select count(*) from t1;
select count(*) from t1
                     *
第 1 行出現錯誤:
ORA-00942: 表或檢視不存在


C:\>expdp system/a831115@xh directory=expdpt dumpfile=t1.dmp tables=xh.t1

. . 匯出了 "XH"."T1"                                   5.242 KB       1 行
已成功載入/解除安裝了主表 "SYSTEM"."SYS_EXPORT_TABLE_02"


C:\>impdp system/a831115@xh directory=expdpt dumpfile=t1.dmp tables=xh.t1 remap_sch
ema=xh:zz


處理物件型別 TABLE_EXPORT/TABLE/TABLE_DATA
. . 匯入了 "ZZ"."T1"                                   5.242 KB       1 行

SQL> conn xh/a123@xh
已連線。
SQL> select count(*) from t1;

  COUNT(*)
----------
         1

SQL> conn zz/a123
已連線。
SQL> select count(*) from t1;

  COUNT(*)
----------
         1

TABLE_EXISTS_ACTION   匯入物件已存在時執行的操作。
                      有效關鍵字: (SKIP), APPEND, REPLACE 和 TRUNCATE。


SQL> conn zz/a123
已連線。
SQL> select count(*) from t1;

  COUNT(*)
----------
         1

SQL> insert into t1 values(1,2);

已建立 1 行。

SQL> commit;

提交完成。

SQL> select count(*) from t1;

  COUNT(*)
----------
         2
C:\>impdp system/a831115@xh directory=expdpt dumpfile=t1.dmp  remap_schema=xh:zz
APPEND 追加
default skip  當發現存在時候 跳過處理下一個物件
處理物件型別 TABLE_EXPORT/TABLE/TABLE
ORA-39151: 表 "ZZ"."T1" 已存在。由於跳過了 table_exists_action, 將跳過所有相關元數
據和資料。

C:\>impdp system/a831115@xh directory=expdpt dumpfile=t1.dmp  remap_schema=xh:zz ta
ble_exists_action=append

ORA-39152: 表 "ZZ"."T1" 已存在。由於附加了 table_exists_action, 資料將附加到現有表,
 但是將跳過所有相關後設資料。
處理物件型別 TABLE_EXPORT/TABLE/TABLE_DATA
. . 匯入了 "ZZ"."T1"                                   5.242 KB       1 行
處理物件型別 TABLE_EXPORT/TABLE/INDEX/INDEX

SQL> select count(*) from t1;(schema zz)

  COUNT(*)
----------
         3

C:\>impdp system/a831115@xh directory=expdpt dumpfile=t1.dmp  remap_schema=xh:zz ta
ble_exists_action=truncate
truncate已存在表 然後為其追加資料
SQL> select count(*) from t1;(schema zz)

  COUNT(*)
----------
         1

 


TRANSFORM             要應用於適用物件的後設資料轉換。
引數使用都可以在DOC中找到使用方法

來自 ORACLE DOC

http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/dp_import.htm#sthref375
TRANSFORM. = transform_name:value[:object_type]

The transform_name specifies the name of the transform. The possible options are as

follows:

SEGMENT_ATTRIBUTES - If the value is specified as y, then segment attributes (physical

attributes, storage attributes, tablespaces, and logging) are included, with appropriate

DDL. The default is y.

STORAGE - If the value is specified as y, the storage clauses are included, with

appropriate DDL. The default is y. This parameter is ignored if SEGMENT_ATTRIBUTES=n.

OID - If the value is specified as n, the assignment of the exported OID during the

creation of object tables and types is inhibited. Instead, a new OID is assigned. This can

be useful for cloning schemas, but does not affect referenced objects. The default value is

y.

PCTSPACE - The value supplied for this transform. must be a number greater than zero. It

represents the percentage multiplier used to alter extent allocations and the size of data

files.

Note that you can use the PCTSPACE transform. in conjunction with the Data Pump Export

SAMPLE parameter so that the size of storage allocations matches the sampled data subset.


Example

For the following example, assume that you have exported the employees table in the hr

schema. The SQL CREATE TABLE statement that results when you then import the table is

similar to the following:

CREATE TABLE "HR"."EMPLOYEES"
   ( "EMPLOYEE_ID" NUMBER(6,0),
     "FIRST_NAME" VARCHAR2(20),
     "LAST_NAME" VARCHAR2(25) CONSTRAINT "EMP_LAST_NAME_NN" NOT NULL ENABLE,
     "EMAIL" VARCHAR2(25) CONSTRAINT "EMP_EMAIL_NN" NOT NULL ENABLE,
     "PHONE_NUMBER" VARCHAR2(20),
     "HIRE_DATE" DATE CONSTRAINT "EMP_HIRE_DATE_NN" NOT NULL ENABLE,
     "JOB_ID" VARCHAR2(10) CONSTRAINT "EMP_JOB_NN" NOT NULL ENABLE,
     "SALARY" NUMBER(8,2),
     "COMMISSION_PCT" NUMBER(2,2),
     "MANAGER_ID" NUMBER(6,0),
     "DEPARTMENT_ID" NUMBER(4,0)
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 10240 NEXT 16384 MINEXTENTS 1 MAXEXTENTS 121
  PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "SYSTEM" ;

If you do not want to retain the STORAGE clause or TABLESPACE clause, you can remove them

from the CREATE STATEMENT by using the Import TRANSFORM. parameter. Specify the value of

SEGMENT_ATTRIBUTES as n. This results in the exclusion of segment attributes (both storage

and tablespace) from the table.

> impdp hr/hr TABLES=hr.employees \
  DIRECTORY=dpump_dir1 DUMPFILE=hr_emp.dmp \
  TRANSFORM=SEGMENT_ATTRIBUTES:n:table

The resulting CREATE TABLE statement for the employees table would then look similar to the

following. It does not contain a STORAGE or TABLESPACE clause; the attributes for the

default tablespace for the HR schema will be used instead.

CREATE TABLE "HR"."EMPLOYEES"
   ( "EMPLOYEE_ID" NUMBER(6,0),
     "FIRST_NAME" VARCHAR2(20),
     "LAST_NAME" VARCHAR2(25) CONSTRAINT "EMP_LAST_NAME_NN" NOT NULL ENABLE,
     "EMAIL" VARCHAR2(25) CONSTRAINT "EMP_EMAIL_NN" NOT NULL ENABLE,
     "PHONE_NUMBER" VARCHAR2(20),
     "HIRE_DATE" DATE CONSTRAINT "EMP_HIRE_DATE_NN" NOT NULL ENABLE,
     "JOB_ID" VARCHAR2(10) CONSTRAINT "EMP_JOB_NN" NOT NULL ENABLE,
     "SALARY" NUMBER(8,2),
     "COMMISSION_PCT" NUMBER(2,2),
     "MANAGER_ID" NUMBER(6,0),
     "DEPARTMENT_ID" NUMBER(4,0)
   );

As shown in the previous example, the SEGMENT_ATTRIBUTES transform. applies to both storage

and tablespace attributes. To omit only the STORAGE clause and retain the TABLESPACE

clause, you can use the STORAGE transform, as follows:

> impdp hr/hr TABLES=hr.employees \
  DIRECTORY=dpump_dir1 DUMPFILE=hr_emp.dmp \
  TRANSFORM=STORAGE:n:table

The SEGMENT_ATTRIBUTES and STORAGE transforms can be applied to all applicable table and

index objects by not specifying the object type on the TRANSFORM. parameter, as shown in the

following command:

> impdp hr/hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp \
 SCHEMAS=hr TRANSFORM=SEGMENT_ATTRIBUTES:n

 

簡單使用IMPDP

匯入表
SQL> conn xh/a123
已連線。
SQL> select count(*) from t1;

  COUNT(*)
----------
         1

 

SQL> drop table t1;

表已刪除。
C:\>impdp system/a831115@xh directory=expdpt dumpfile=t1.dmp  tables=t1

SQL> select count(*) from t1;

  COUNT(*)
----------
         1


匯入schema
SQL> conn zz/a123
已連線。
SQL> select count(*) from user_tables;

  COUNT(*)
----------
         0

SQL> conn xh/a123
已連線。
SQL> select count(*) from user_tables;

  COUNT(*)
----------
         3

C:\>expdp  system/a831115@xh directory=expdpt dumpfile=b.dmp schemas=xh
. . 匯出了 "XH"."T1"                                   5.242 KB       1 行
. . 匯出了 "XH"."T2"                                       0 KB       0 行
. . 匯出了 "XH"."T3"                                       0 KB       0 行

SQL> drop user xh cascade;

使用者已刪除。


C:\>impdp  system/a831115@xh directory=expdpt dumpfile=b.dmp schemas=xh
. . 匯入了 "XH"."T1"                                   5.242 KB       1 行
. . 匯入了 "XH"."T2"                                       0 KB       0 行
. . 匯入了 "XH"."T3"                                       0 KB       0 行

SQL> conn xh/a123
已連線。
SQL> select count(*) from user_tables;

  COUNT(*)
----------
         3
C:\>impdp  system/a831115@xh directory=expdpt dumpfile=b.dmp schemas=xh  remap_sche
ma=xh:zz
. . 匯入了 "ZZ"."T1"                                   5.242 KB       1 行
. . 匯入了 "ZZ"."T2"                                       0 KB       0 行
. . 匯入了 "ZZ"."T3"                                       0 KB       0 行

SQL> conn zz/a123
已連線。
SQL> select count(*) from user_tables;

  COUNT(*)
----------
         3


匯入tablespace

SQL> create table t4 (a int)tablespace testxh;

表已建立。

C:\>expdp  system/a831115@xh directory=expdpt dumpfile=c.dmp tablespaces=testxh

. . 匯出了 "ZZ"."T4"                                       0 KB       0 行
SQL> drop table t4
  2  ;

表已刪除。

SQL> select * from t4;
select * from t4
              *
第 1 行出現錯誤:
ORA-00942: 表或檢視不存在
C:\>impdp  system/a831115@xh directory=expdpt dumpfile=c.dmp tablespaces=testxh
. . 匯入了 "ZZ"."T4"                                       0 KB       0 行

SQL> select * from t4;

未選定行


SQL> conn zz/a123
已連線。
SQL> select * from t4;

未選定行

SQL> select tablespace_name from user_tables where table_name='T4';

TABLESPACE_NAME
------------------------------
TESTXH

SQL> drop table t4;

表已刪除。

SQL> select tablespace_name from user_tables where table_name='T4';

未選定行
C:\>impdp  system/a831115@xh directory=expdpt dumpfile=c.dmp tablespaces=testxh  re  匯入其

他tablespace
map_tablespace=testxh:users

 

SQL> select tablespace_name from user_tables where table_name='T4';

TABLESPACE_NAME
------------------------------
USERS

 

匯入database

 

C:\>expdp  system/a831115@xh directory=expdpt dumpfile=d.dmp full=y


SQL> drop tablespace testxh including contents;

表空間已刪除。

SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
EXAMPLE
RMAN_TS

已選擇7行。
C:\>impdp  system/a831115@xh directory=expdpt dumpfile=d.dmp full=y  reuse_datafile
s=y
此時如果 datafile還存在那麼執行 create tablespace testxh時候回報錯誤(檔案已經存在)使用

reuse_datafiles=y

SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
EXAMPLE
RMAN_TS
TESTXH

已選擇8行。

 

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

相關文章