oracle資料泵備份(Expdp命令)
Oracle備份方式主要分為資料泵匯出備份、熱備份與冷備份三種,今天首先來實踐一下資料泵備份與還原。資料泵匯出/匯入屬於邏輯備份,熱備份與冷備份都屬於物理備份。oracle10g開始推出了資料泵(expdp/impdp),可以使用並行引數選項,因此,相對於傳統的exp命令來說,執行效率更高。
一、知曉expdp命令
C:\>expdp -help
Export: Release 11.1.0.7.0 - Production on 星期六, 28 9月, 2013 10:21:52
Copyright (c) 2003, 2007, 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=scot
或 TABLES=(T1:P1,T1:P2), 如果 T1 是分割槽表
USERID 必須是命令列中的第一個引數。
關鍵字 說明 (預設)
---------------------------------------------------------------------------
ATTACH 連線到現有作業, 例如 ATTACH [=作業名]。
COMPRESSION 減小轉儲檔案內容的大小, 其中有效關鍵字 值為: ALL, (METADATA_ONLY), DATA_ONLY 和 NONE。
CONTENT 指定要解除安裝的資料, 其中有效關鍵字 值為: (ALL), DATA_ONLY 和 METADATA_ONLY。 --預設值為ALL
DATA_OPTIONS 資料層標記, 其中唯一有效的值為: 使用CLOB格式的 XML_CLOBS-write XML 資料型別
DIRECTORY 供轉儲檔案和日誌檔案使用的目錄物件。
DUMPFILE 目標轉儲檔案 (expdat.dmp) 的列表,例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.d
ENCRYPTION 加密部分或全部轉儲檔案, 其中有效關鍵字值為: ALL, DATA_ONLY, METADATA_ONLY,ENCRYPTED_COLUMNS_ONLY 或 NONE。
ENCRYPTION_ALGORITHM 指定應如何完成加密, 其中有效關鍵字值為: (AES128), AES192 和 AES256。
ENCRYPTION_MODE 生成加密金鑰的方法, 其中有效關鍵字值為: DUAL, PASSWORD 和 (TRANSPARENT)。
ENCRYPTION_PASSWORD 用於建立加密列資料的口令關鍵字。
ESTIMATE 計算作業估計值, 其中有效關鍵字值為: (BLOCKS) 和 STATISTICS。
ESTIMATE_ONLY 在不執行匯出的情況下計算作業估計值。
EXCLUDE 排除特定的物件型別, 例如 EXCLUDE=TABLE:EMP。--EXCLUDE=[object_type]:[name_clause],[object_type]:[name_clause]
FILESIZE 以位元組為單位指定每個轉儲檔案的大小。
FLASHBACK_SCN 用於將會話快照設定回以前狀態的 SCN。 --指定匯出特定SCN時刻的表資料
FLASHBACK_TIME 用於獲取最接近指定時間的 SCN 的時間。--指定匯出特定時間點的表資料,注意FLASHBACK_SCN和FLASHBACK_TIME不能同時使用 FULL 匯出整個資料庫 (N)。
HELP 顯示幫助訊息 (N)。
INCLUDE 包括特定的物件型別, 例如 INCLUDE=TABLE_DATA。
JOB_NAME 要建立的匯出作業的名稱。
LOGFILE 日誌檔名 (export.log)。
NETWORK_LINK 連結到源系統的遠端資料庫的名稱。
NOLOGFILE 不寫入日誌檔案 (N)。
PARALLEL 更改當前作業的活動 worker 的數目。
PARFILE 指定引數檔案。
QUERY 用於匯出表的子集的謂詞子句。--QUERY = [schema.][table_name:] query_clause
REMAP_DATA 指定資料轉換函式,例如 REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。
REUSE_DUMPFILES 覆蓋目標轉儲檔案 (如果檔案存在) (N)。
SAMPLE 要匯出的資料的百分比;
SCHEMAS 要匯出的方案的列表 (登入方案)。
STATUS 在預設值 (0) 將顯示可用時的新狀態的情況下,要監視的頻率 (以秒計) 作業狀態。
TABLES 標識要匯出的表的列表 - 只有一個方案。--[schema_name.]table_name[:partition_name][,…]
TABLESPACES 標識要匯出的表空間的列表。
TRANSPORTABLE 指定是否可以使用可傳輸方法, 其中有效關鍵字值為: ALWAYS, (NEVER)。
TRANSPORT_FULL_CHECK 驗證所有表的儲存段 (N)。
TRANSPORT_TABLESPACES 要從中解除安裝後設資料的表空間的列表。
VERSION 要匯出的物件的版本, 其中有效關鍵字為:(COMPATIBLE), LATEST 或任何有效的資料庫版本。
下列命令在互動模式下有效。
注: 允許使用縮寫
命令 說明
---------------------------------------------------------------------------
ADD_FILE 向轉儲檔案集中新增轉儲檔案。
CONTINUE_CLIENT 返回到記錄模式。如果處於空閒狀態, 將重新啟動作業。
EXIT_CLIENT 退出客戶機會話並使作業處於執行狀態。
FILESIZE 後續 ADD_FILE 命令的預設檔案大小 (位元組)。
HELP 總結互動命令。
KILL_JOB 分離和刪除作業。
PARALLEL 更改當前作業的活動 worker 的數目。PARALLEL=
REUSE_DUMPFILES 覆蓋目標轉儲檔案 (如果檔案存在) (N)。
START_JOB 啟動/恢復當前作業。
STATUS 在預設值 (0) 將顯示可用時的新狀態的情況下,要監視的頻率 (以秒計) 作業狀態。STATUS[=interval]
STOP_JOB 順序關閉執行的作業並退出客戶機。STOP_JOB=IMMEDIATE 將立即關閉資料泵作業。
備註:紅顏色標記的字型,表示是expdp命令常用的命令選項,這個需要大家掌握理解並能靈活運用。()括號括起來的代表是expdp命令的預設選項 |
二、準備工作
1、查詢路徑資訊
檢視已經建立的路徑資訊:
SELECT * FROM dba_directories;
2、建立路徑
建立路徑需要sys許可權,需要有create any directory許可權才可以建立路徑。
選項:DIRECTORY=directory_object
Directory_object用於指定目錄物件名稱。需要注意,目錄物件是使用CREATE DIRECTORY語句建立的物件,而不是OS目錄。
eg: CREATE OR REPLACE directory backup_path AS 'D:\APP\ORADATA\db_backup'; --建立路徑名為dackup_path的路徑,並指向硬碟的指定位置
對新建立的路徑進行授權操作:
eg:grant read,write on directory backup_path to orcldev; --將對路徑的讀寫許可權分配各orcldev使用者。
三、操作例項
執行expdp和impdp命令需要擁有exp_full_database和imp_full_database許可權,授權語句如下:
eg:grant exp_full_database,imp_full_database to orcldev;
1、匯出orcldev這個schema的所用物件[schemas or full]
eg:expdp orcldev/oracle@orcldev directory=backup_path dumpfile=orcldev_schema.dmp logfile=orcldev_schema_2013.log schemas=orcldev
2、匯出orcldev這個使用者下的某些表[tables]
eg:C:\>expdp orcldev/oracle directory=dackup_path dumpfile=orcldev_table.dmp logfile=orcldev_table_2013.log tables=('TAB_TEST','TAB_A')
3、只匯出orcldev這個使用者的後設資料[content]
eg:C:\>expdp orcldev/oracle directory=dackup_path dumpfile=orcldev_meta.dmp logfile=orcldev_meta_2013.log
SCHEMAS=orcldev CONTENT=METADATA_ONLY
4、只匯出orcldev這個使用者50%的抽樣資料[sample]
eg:C:\>expdp orcldev/oracle directory=dackup_path dumpfile=orcldev_samp.dmp logfile=orcldev_samp_2013.log schemas=orcldev sample=50
5、採用並行方式備份整庫[parallel]
parallel引數只有在oracle10g之後的版本(包含10g)有效。
oracle_online:you can use the DUMPFILE parameter during export operations to specify multiple dump files, by using a substitution variable (%U) in the filename. This is called a dump file template. The new dump files are created as they are needed, beginning with 01 for %U, then using 02,03,and so on.
eg:C:\>expdp orcldev/oracle directory=dackup_path dumpfile=orcldev_parallel_%U.dmp logfile=orcldev_parallel_2013.log parallel=4
"%U"表示自動生成遞增的序列號。
6、匯出orcldev這個方案物件,但不包含索引[exclude]
eg: --可以剔除的物件有:VIEW,PACKAGE,FUNCTION,index,constraints,table,schema,user等等
1) C:\>expdp orcldev/oracle directory=dackup_path dumpfile=orcldev_exclude.dmp logfile=orcldev_exclude.log SCHEMAS=orcldev EXCLUDE=index
2) C:\>expdp orcldev/oracle directory=dackup_path dumpfile=orcldev_exclude.dmp logfile=orcldev_exclude.log SCHEMAS=orcldev EXCLUDE=INDEX:"LIKE 'TEST%'" --匯出這個orcldev方案,剔除以TEST開頭的索引
3) C:\>expdp orcldev/oracle directory=dackup_path dumpfile=orcldev_exclude.dmp logfile=orcldev_exclude.log EXCLUDE=SCHEMA:"='SCOTT'"
C:\>expdp orcldev/oracle directory=dackup_path dumpfile=orcldev_exclude.dmp logfile=orcldev_exclude.log EXCLUDE=USER:"='SCOTT'"
--備份整庫但剔除SCOTT這個使用者的物件。
注意:include與exclude不能同時使用。
7、PARFILE選項
expdp命令可以呼叫parfile檔案,在parfile裡可以寫備份指令碼,可以使用query選項。
Oracle highly recommends that you place QUERY specifications in a parameter file; otherwise, you might have to use operating system-specific escape characters on the command line before each quotation mark.
如expdp.txt 內容如下:
USERID=orcldev/oracle directory=dackup_path dumpfile=orcldev_parfile.dmp logfile=orcldev_parfile.log TABLES='TAB_TEST' QUERY="WHERE TRAN_DATE=TO_DATE('2013-08-31','YYYY-MM-DD')"
執行方法:expdp parfile=expdp.txt 即可執行備份
使用parfile好處是使用query選項是不用使用跳脫字元,如果將query引數放到外邊的話,需要將""進行轉義。
eg:
UNIX寫法:
expdp orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile =2013.log schemas=orcldev INCLUDE=TABLE:\"IN \(\'TEST_A\',\'TEST_B\'\)\" --在Unix系統執行是需要將單引號進行轉義操作,否則會報錯。
WINDOWS寫法:
expdp orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile =2013.log schemas=orcldev INCLUDE=TABLE:"IN \('TEST_A','TEST_B')"
8、TABLESPACE匯出表空間
eg:expdp orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile =2013.log tablespaces=user,orcldev
9、Version選項
VERSION選項預設值是COMPATIBLE,即相容模式。在我們備份的時候,可以指定版本號。
eg:expdp orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile =2013.log full=Y VERSION=10.2.0.4
10、FLASHBACK_TIME選項
指定匯出特定時間點的表資料,可以聯絡一下FLASHBACK功能。
eg:C:\>expdp orcldev/oracle directory=dackup_path dumpfile=orcldev_flash.dmp logfile=orcldev_flash.log SCHEMAS=orcldev FLASHBACK_TIME="TO_TIMESTAMP('2013-09-28 14:30:00','DD-MM-YYYY HH24:MI:SS')"
四、參考
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28841119/viewspace-1471896/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫的邏輯備份工具-expdp資料泵Oracle資料庫
- Linux 平臺下 Oracle 資料泵備份(expdp) SHELL 指令碼LinuxOracle指令碼
- oracle邏輯備份之--資料泵Oracle
- Oracle備份恢復五(資料泵)Oracle
- Oracle expdp/impdp匯出匯入命令及資料庫備份Oracle資料庫
- Oracle資料泵的備份與恢復Oracle
- 【Datapump】Oracle資料泵遷移資料命令參考(expdp/impdp說明)Oracle
- Oracle10g 資料泵匯出命令 expdp 使用總結Oracle
- Oracle expdp資料泵遠端匯出Oracle
- Java程式呼叫expdp資料泵實現自動邏輯備份Oracle資料庫的方案設計JavaOracle資料庫
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- 【Toad】使用Toad呼叫expdp資料泵備份資料步驟及注意事項
- windowns系統,oracle資料庫expdp自動備份Oracle資料庫
- [EXPDP]使用11g的資料泵實現對邏輯備份資料進行加密加密
- 【EXPDP】使用11g的資料泵實現對邏輯備份資料進行加密加密
- Oracle使用資料泵 (expdp/impdp)實施遷移Oracle
- 【DATAPUMP】Oracle資料泵定時備份刪除指令碼Oracle指令碼
- 【EXPDP】不使用DIRECTORY引數完成expdp資料備份
- 資料泵基礎(impdp/expdp)
- EXPDP資料泵使用方法
- 揭祕ORACLE備份之--邏輯備份(EXPDP)Oracle
- Oracle 邏輯備份 expdp/impdpOracle
- Oracle expdp/impdp匯入匯出備份資料庫指令碼Oracle資料庫指令碼
- 【expdp】資料泵備份遭遇ORA-00600: internal error code, arguments: [17020]錯誤Error
- Oracle使用資料泵expdp,impdp進行資料匯出匯入Oracle
- 【EXPDP】使用EXPDP備份資料時預估大小——ESTIMATE引數
- Oracle使用資料泵定時備份多個schema的指令碼Oracle指令碼
- 使用資料泵工具expdp工具匯出資料
- 刪除資料泵備份失敗的表
- 【EXPDP】使用expdp的QUERY引數限定備份資料的範圍
- oracle資料備份Oracle
- expdp impdp Data Pump(資料泵)使用解析
- EXPDP 和 IMPDP 資料泵的使用_1
- EXPDP 和 IMPDP 資料泵的使用_2
- 資料泵 EXPDP 匯出工具的使用
- 資料庫的定時備份(小庫、資料泵工具)資料庫
- Linux或UNIX系統下oracle資料庫expdp自動備份LinuxOracle資料庫
- Oracle 邏輯備份之EXPDP精講Oracle