標籤:備份 schema 資料庫 metadata
Oracle資料庫泵的備份與恢複
目錄
一、Database Backup和恢複前的準備...1
1、給資料庫使用者授權並建立DIRECTORY對象...1_Toc388455817
二、資料泵的備份和恢複...1
1、 Database Backup...1
2、 資料庫恢複...2
三、進入互動模式...4
一、Database Backup和恢複前的準備1、給資料庫使用者授權並建立DIRECTORY對象
在SQL命令列下執行如下命令(執行sql的使用者要有目錄建立和授權的許可權):
grant create any directory to username;(username---執行備份/恢複的使用者)
create directory res_dir as ‘D:\dbres‘;(res_dir—恢複命令中使用的目錄名---把匯出的檔案放到這個目錄中)
create directory bak_dir as ‘C:\dbback‘;(bak_dir—備份命令中使用的目錄名,刪除目錄的命令drop directory bak_dir;)
二、資料泵的備份和恢複
資料泵包括備份/恢複表、備份/恢複使用者、備份/恢複資料表空間、備份/恢複資料庫4種方式,在作業系統命令列中執行以下的備份/恢複命令完成相關操作
1、 Database Backup
(1)備份表
expdp資料庫使用者名稱/密碼【@資料庫執行個體名】 DIRECTORY=目錄名 TABLES=表1,表2 DUMPFILE=匯出的dmp檔案logfile=導dmp檔案時產生的log檔案;
例:expdp username/[email protected] tables=tablename1,tablename2 DIRECTORY=bak_dir DUMPFILE=bakFile.dmp LOGFILE=bakLog.log;
(2)備份使用者(schema,與使用者對應)
expdp資料庫使用者名稱/密碼【@執行個體名】SCHEMAS=使用者1,使用者2 DIRECTORY=目錄名 DUMPFILE=匯出的dmp檔案 logfile=匯出dmp檔案時產生的log檔案;
例:expdp username/[email protected] SCHEMAS=user01,user02 DIRECTORY=bak_dir DUMPFILE=bakFile.dmp LOGFILE=bakLog.log;
(3)備份資料表空間
expdp資料庫使用者名稱/密碼【@執行個體名】 DIRECTORY=目錄名 TABLESPACES=資料表空間1,資料表空間2 DUMPFILE=匯出的dmp檔案 logfile=匯出dmp檔案時產生的log檔案;
例:expdp username/[email protected] DIRECTORY=dump_dir
TABLESPACES=tablespace01,tablespace02 DUMPFILE=bakFile.dmp logfile=bakLog.log;
(4)備份資料庫
expdp資料庫使用者名稱/密碼【@執行個體名】DIRECTORY=目錄名FULL=Y DUMPFILE=匯出的dmp檔案 logfile=匯出dmp檔案時產生的log檔案;
例:expdp username/password DIRECTORY=dump_dir FULL=Y DUMPFILE=bakFile.dmp logfile=bakLog.log;
(5)Database Backup的檔案過大,會把dmp檔案分成多個小檔案,以備份使用者為例
expdp資料庫使用者名稱/密碼【@執行個體名】 SCHEMAS=使用者1,使用者2 DIRECTORY=目錄名 DUMPFILE=bak _%U.dmp filesize=檔案大小 LOGFILE=匯出dmp檔案時產生的log檔案;
例:expdp username/[email protected] SCHEMAS=user01,user02,user03 DIRECTORY=bak_dir DUMPFILE=bak _%U.dmp filesize=5G LOGFILE= bakLog.log;
2、 資料庫恢複
a、CONTENT包括:ALL, DATA_ONLY和 METADATA_ONLY。ALL為預設
當設定該選項為ALL時,表明匯出的是資料和表結構的所有內容;
當設定該選項為DATA_ONLY時,表明匯出的是資料;
當設定該選項為METADATA_ONLY時,表明匯出的是中繼資料(表結構);
b、該選項用於將源方案的所有對象裝載到目標方案中,原對象和目標對象的映射. SCHEMAS=原對象REMAP_SCHEMA=原對象:目標對象
c、該選項用於指定當表已經存在時匯入作業要執行的操作,預設為SKIP,TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE |REPLACE}
當設定該選項為SKIP時,匯入作業會跳過已存在表處理下一個對象;當設定為APPEND時,會追加資料,為TRUNCATE時,匯入作業會截斷表,然後為其追加新資料;當設定為REPLACE時,匯入作業會刪除已存在表,重建表病追加資料,注意,TRUNCATE選項不適用與簇表和NETWORK_LINK選項
(1)恢複表
impdp資料庫使用者名稱/密碼【@執行個體名】 TABLES=表1,表2【REMAP_SCHEMA=ori:tar CONTENT=DATA_ONLY | ALL | METADATA_ONLY TABLE_EXISTS_ACTION= SKIP | APPEND | TRUNCATE | REPLACE】 DIRECTORY=目錄名 DUMPFILE=匯入的dmp檔案 LOGFILE=匯入dmp檔案時產生的log檔案;
例:impdp username/passwd TABLES= tablename1,tablename2 DIRECTORY=res_dir DUMPFILE= resFile.dmp LGFILE=resLog.log;
(2)恢複使用者
impdp資料庫使用者名稱/密碼【@執行個體名】 SCHEMAS=使用者1,使用者2【REMAP_SCHEMA= ori:tar CONTENT=DATA_ONLY | ALL | METADATA_ONLY TABLE_EXISTS_ACTION=SKIP | APPEND | TRUNCATE | REPLACE】 DIRECTORY=目錄名 DUMPFILE=匯入的dmp檔案 LOGFILE=匯入dmp檔案時產生的log檔案
例:impdp username/[email protected] SCHEMAS=user1,user2 DIRECTORY= res_dir DUMPFILE= resFile.dmp LOGFILE= resLog.log;
(3)恢複資料表空間
impdp資料庫使用者名稱/密碼【@執行個體名】【 REMAP_SCHEMA=ori:tar CONTENT=DATA_ONLY | ALL | METADATA_ONLY TABLE_EXISTS_ACTION= SKIP | APPEND | TRUNCATE | FRPLACE】 DIRECTORY=目錄名TABLESPACES=資料表空間1, 資料表空間2 DUMPFILE=匯入的dmp檔案 LOGFILE=匯入dmp檔案時產生的log檔案;
例:impdp username/password DIRECTORY=res_dir TABLESPACES=tablespace1, tablespace2 DUMPFILE=resFile.dmp logfile=resLog.log; ;
(4)恢複資料庫
impdp資料庫使用者名稱/密碼【@執行個體名】【REMAP_SCHEMA=ori:tar CONTENT=DATA_ONLY | ALL | METADATA_ONLY TABLE_EXISTS_ACTION= SKIP | APPEND | TRUNCATE | FRPLACE】DIRECTORY=目錄名 DUMPFILE=匯入的dmp檔案FULL=y LOGFILE=匯入dmp檔案時產生的log檔案;
例:Impdp username/password DIRECTORY=res_dir FULL=y DUMPFILE=resFile.dmp logfile=resLog.log;
(5)資料庫恢複多個dmp小檔案,以恢複使用者為例
impdp資料庫使用者名稱/密碼【@執行個體名】SCHEMAS=使用者1,使用者2【 CONTENT=DATA_ONLY | ALL | METADATA_ONLYTABLE_EXISTS_ACTION=SKIP | APPEND | TRUNCATE | FRPLACE】DIRECTORY=目錄名 DUMPFILE=res _%U.dmp filesize=檔案大小 LOGFILE=匯入dmp檔案時產生的log檔案;
例:impdp username/[email protected] SCHEMAS=user1,user2,user3,user4 DIRECTORY=res_dir DUMPFILE=res _%U.dmp filesize=5G LOGFILE= resLog.log;
三、進入互動模式
在Linux作業系統命令列中執行以下命令:
ctrl+c退出當前的狀態輸出模式
expdp username/[email protected] attach=expfull(備份或恢複任務的名稱) 進入互動模式
Import>stop_job停止當前的任務
Import>start_job啟動停止的任務
Import> status 查看任務的狀態資訊。
Import>exit_client退出export互動模式
Oracle資料庫泵的備份與恢複