使用資料泵技術實作邏輯備份
資料泵概述
資料泵(DATA PUMP)是一種在資料庫之間、資料庫與作業系統之間,高速傳輸資料的技術(10g推出),
邏輯備份概述
邏輯備份是對資料庫物件(如用戶、表、存盤程序等)利用EXPORT等工具進行匯出
物理備份對比
物理備份是轉儲ORACLE物理檔案(如資料檔案、控制檔案、歸檔日志檔案等)
物理備份旨在完全恢復整個資料庫,要求完全相同的備份環境和恢復環境
邏輯備份旨在備份資料本身,可移植性強,但是備份和恢復速度低下,大型業務系統一般不用
操作步驟
1.創建目錄物件(在哪匯入,匯出到哪)
CREATE DIRECTORY 目錄名(dump_dir) as '絕對路徑';
2.dump_dir目錄授予
GRANT read,write on directory 目錄名 to 匯入匯出用戶;
SELECT * FROM DBA_DIRECTORIES; 查詢所有已創建的目錄
DROP directory 目錄名; 洗掉目錄
3.expdq匯出(EXPDP和IMPDP是Oracle服務端的工具,退出sqlplus)
第一種:全量匯出資料庫:
expdp 用戶名/密碼@orcl dumpfile=匯出檔案名.dmp directory=目錄名 full=y logfile=日志名.log;(與dmp一個目錄)
第二種:按用戶匯出:
expdp 用戶名/密碼@orcl schemas=用戶 dumpfile=匯出檔案名.dmp directory=目錄名 logfile=日志名.log;
第三種:按表空間匯出:
expdp 用戶名/密碼@orcl tablespace=表空間名 dumpfile=匯出檔案名.dmp directory=目錄名 logfile=日志名.log;
第四種:按表匯出:
expdp 用戶名/密碼@orcl tables=表名 dumpfile=匯出檔案名.dmp directory=目錄名 logfile=日志名.log;
匯出表結構
expdp 用戶名/密碼@orcl directory=目錄名 dumpfile=匯出檔案名.dmp content=metadata_only tables=(a,b)
metadata_only代表只匯出表結構
第五種:按查詢條件導:
expdp 用戶名/密碼@orcl tables=表名='where 條件=值' dumpfile=匯出檔案名.dmp directory=目錄名 logfile=日志名.log;
4.impdq(退出sqlplus)
第一種:全量匯入資料庫;
impdp 用戶名/密碼 directory=data_dir dumpfile=expdp.dmp full=y;
第二種:按名用戶匯入,從源用戶名1匯入到目標用戶名2;
impdp 用戶名/密碼 REMAP_SCHEMA=[源用戶名1]:[目標用戶名2] directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;
第三種:
a.從A用戶中把表table1和table2匯入到B用戶中;
impdp 用戶名/密碼 tables=A.table1,A.table2 REMAP_SCHEMA=A:B directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;
b.將表空間TBS01、TBS02、TBS03匯入到表空間A_TBS,將用戶B的資料匯入到A,并生成新的oid防止沖突;
impdp 用戶名/密碼 remap_tablespace=TBS01:A_TBS,TBS02:A_TBS,TBS03:A_TBS REMAP_SCHEMA=B:A FULL=Y transform=oid:n directory=data_dir dumpfile=expdp.dmp logfile=impdp.log
c.匯入表結構
第四種:匯入表空間;
impdp 用戶名/密碼 tablespaces=tbs1 directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;
第五種:追加資料;
impdp 用戶名/密碼 directory=data_dir dumpfile=expdp.dmp schemas=system table_exists_action=replace logfile=impdp.log;
--table_exists_action:匯入物件已存在時執行的操作,有效關鍵字:SKIP,APPEND,REPLACE和TRUNCATE
5.引數
1.expdb
ATTACH 連接到現有作業, 例如 ATTACH [=作業名],
COMPRESSION 減小轉儲檔案內容的大小, 其中有效關鍵字 值為: ALL, (METADATA_ONLY), DATA_ONLY 和 NONE,
CONTENT 指定要卸載的資料, 其中有效關鍵字 值為: (ALL), DATA_ONLY 和 METADATA_ONLY,
DATA_OPTIONS 資料層標記, 其中唯一有效的值為: 使用CLOB格式的 XML_CLOBS-write XML 資料型別,
DIRECTORY 供轉儲檔案和日志檔案使用的目錄物件,即邏輯目錄,
DUMPFILE 目標轉儲檔案 (expdp.dmp) 的串列,例如 DUMPFILE=expdp1.dmp, expdp2.dmp,
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=https://www.cnblogs.com/gm1995/p/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=<worker 的數目>,
_DUMPFILES 覆寫目標轉儲檔案 (如果檔案存在) (N),
START_JOB 啟動/恢復當前作業,
STATUS 在默認值 (0) 將顯示可用時的新狀態的情況下,要監視的頻率 (以秒計) 作業狀態,STATUS[=interval],
STOP_JOB 順序關閉執行的作業并退出客戶機,STOP_JOB=IMMEDIATE 將立即關閉資料泵作業,
2.impdq
ATTACH 連接到現有作業, 例如 ATTACH [=作業名],
CONTENT 指定要卸載的資料, 其中有效關鍵字 值為: (ALL), DATA_ONLY 和 METADATA_ONLY,
DATA_OPTIONS 資料層標記,其中唯一有效的值為:SKIP_CONSTRAINT_ERRORS-約束條件錯誤不嚴重,
DIRECTORY 供轉儲檔案,日志檔案和sql檔案使用的目錄物件,即邏輯目錄,
DUMPFILE 要從(expdp.dmp)中匯入的轉儲檔案的串列,例如 DUMPFILE=expdp1.dmp, expdp2.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 指定引數檔案,
PARTITION_OPTIONS 指定應如何轉換磁區,其中有效關鍵字為:DEPARTITION,MERGE和(NONE),
QUERY 用于匯入表的子集的謂詞子句,
REMAP_DATA 指定資料轉換函式,例如REMAP_DATA=https://www.cnblogs.com/gm1995/p/EMP.EMPNO:REMAPPKG.EMPNO,
REMAP_DATAFILE 在所有DDL陳述句中重新定義資料檔案參考,
REMAP_SCHEMA 將一個方案中的物件加載到另一個方案,
REMAP_TABLE 表名重新映射到另一個表,例如 REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO,
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,
TRANSPORTABLE 用于選擇可傳輸資料移動的選項,有效關鍵字為: ALWAYS 和 (NEVER),僅在 NETWORK_LINK 模式匯入操作中有效,
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=<worker 的數目>,
START_JOB 啟動/恢復當前作業,START_JOB=SKIP_CURRENT 在開始作業之前將跳過作業停止時執行的任意操作,
STATUS 在默認值 (0) 將顯示可用時的新狀態的情況下,要監視的頻率 (以秒計) 作業狀態,STATUS[=interval],
STOP_JOB 順序關閉執行的作業并退出客戶機,STOP_JOB=IMMEDIATE 將立即關閉資料泵作業,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/21737.html
標籤:Oracle
