oracle實驗記錄 (expdp/impdp使用)
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle實驗記錄 (transport tablespace(EXPDP/IMPDP))Oracle
- Oracle expdp/impdp 使用示例Oracle
- oracle expdp和impdp使用例子Oracle
- oracle expdp and impdpOracle
- oracle expdp/impdp用法Oracle
- Oracle使用資料泵 (expdp/impdp)實施遷移Oracle
- ORACLE expdp/impdp詳解Oracle
- oracle 10.2.0.4 expdp全庫匯出 和分使用者impdp匯入的記錄Oracle
- 【EXPDP/IMPDP】使用 EXPDP/IMPDP工具“模糊”匯出和匯入
- oracle實驗記錄 (使用exp/imp)Oracle
- EXPDP/IMPDP工具的使用
- Expdp,impdp工具的使用
- expdp/impdp 使用總結
- ORACLE 10G expdp/impdpOracle 10g
- Oracle10g expdp & impdpOracle
- exp/expdp imp/impdp的使用【實戰實用】
- oracle實驗記錄 (使用outlines)Oracle
- expdp impdp 使用命令解析
- oracle資料庫的impdp,expdpOracle資料庫
- oracle EXPDP/IMPDP 常用命令Oracle
- Oracle 邏輯備份 expdp/impdpOracle
- expdp&impdp For Oracle 10GOracle 10g
- Oracle 10g expdp/impdp的CONTENT選項體驗Oracle 10g
- 23.EXPDP 和 IMPDP(筆記)筆記
- oracle實驗記錄 (flashback)Oracle
- oracle實驗記錄 (OMF)Oracle
- oracle實驗記錄 (NET)Oracle
- oracle實驗記錄 (audit)Oracle
- oracle實驗記錄 (dbms_rowid使用)Oracle
- impdp/expdp 示例
- expdp/impdp的原理及使用(轉)
- oracle匯入匯出之expdp/impdpOracle
- Oracle expdp impdp dump引數介紹Oracle
- Oracle 傳輸表空間-EXPDP/IMPDPOracle
- ORACLE EXPDP IMPDP 中停止和啟動Oracle
- oracle 10g imp/exp IMPDP/EXPDPOracle 10g
- oracle實驗記錄 (oracle reset parameter)Oracle
- expdp 和impdp的筆記[轉帖]筆記