oracle 數據庫備份與恢復
包含四個部分:
1、數據泵備份與恢復
2、rman備份與恢復
3、CSV增量備份恢復
4、截庫操作
1、數據泵備份與恢復
expdp/ / impdp 時的 CONTENT 選項 使用 :
CONTENT用於指定要導入/出的內容.默認值為ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
1) 當設置CONTENT為ALL 時,將導出對象定義及其所有數據.
2) 為DATA_ONLY時,只導出對象數據,
3) 為METADATA_ONLY時,只導出對象定義
impdp 導入時若表已經存在有四種的處理方式 table_exists_action
1) skip:默認操作
2) replace:先drop表,然后創建表,最后插入數據
3) append:在原來數據的基礎上增加數據
4) truncate:先truncate,然后再插入數據
前提設置 dumpdir:
create or replace directory dumpdir as '/u01/dumpdp';
select * from dba_directories;
表的備份:
expdp system/oracle@asp directory=dumpdir tables=sync.t_superuser
logfile=expdp_sync.log dumpfile=sync.superuser.dmp
表的恢復:
impdp system/oracle@asp directory=dumpdir dumpfile=sync.superuser.dmp
tables=sync.t_superuser logfile=impdp_sync.log table_exists_action=replace
表空間備份:
expdp system/oracle@asp directory=dumpdir dumpfile=fbt.dmp
tablespaces=tbs_fbtransfer logfile=expdp_fbt.log
表空間恢復:
impdp system/oracle@asp directory=dumpdir dumpfile=fbt.dmp
tablespaces=tbs_fbtransfer logfile=impdp_fbt.Log table_exists_action=replace
全備:
expdp system/oracle@asp directory=dumpdir dumpfile=asp.dmp logfile=full.log full=y
指定 Schemas 方式:
expdp system/oracle@asp directory=dumpdir dumpfile=20180xx.dmp
schemas=ngessync,sync,operation,settlement,historysettlement,recovery,risk,fbtransfer,fbtransferhistory,fbexchange,fbexchangehistory,report logfile=2018xx.log
注意: 恢復全庫備份前應該先drop掉用戶和對應的數據
drop user fbtransfer cascade; ;
CTP 增量備份:
expdp system/oracle@asp directory=dumpdir
dumpfile=expdp_fbt_inc_201808xxinc.dmp
schemas= fbtransfer content=data_only
LOGFILE= expdp_fbt_inc_201808xxinc.log
恢復 :
impdp system/oracle@asp directory=dumpdir dumpfile=inc.dmp content=data_only
schemas=fbtransfer table_exists_action=truncate logfile=impdp_inc.log
2、rman備份與恢復
前提 條件:
Shutdown immediate
Startup mount
Alter database archivelog
Alter database open
Alter system set log_archive_dest_1='location=/u02/arch';
簡單備份指令:
rman target sys/syscode #進入rman
run{ #備份數據庫
CROSSCHECK ARCHIVELOG ALL;
BACKUP incremental level 0 DATABASE plus archivelog delete input;
BACKUP incremental level 1 DATABASE plus archivelog delete input;
RELEASE CHANNEL CH1;
RELEASE CHANNEL CH2;
}
list backupset;
恢復:
rman target sys/syscode #進入
run {
startup mount force;
set until scn 1365958;
restore database;
recover database;
sql 'alter database open resetlogs';
}
3、CSV增量備份恢復
CSV 增量備份用途 :
當系統切換至啟動狀態后,后台自動掃描settlement.t_systemstatus表的backupstatus字
段,發現該字段為0(未生成備份數據)時,則開始數據備份並將該字段置為1(備份數據生
成中)。備份完成后該字段為2(已生成備份數據),如果失敗,該字段為3。生成的備份用
於:一旦點了結算初始化后發現系統數據有問題,可以利用增量數據回到“啟動+結算初始
化數據未完成”狀態,可以近一步回退到上一交易日的結算狀態進行數據處理
步驟 :
1.關閉tomcat
2.使用Oracle用戶把csv備份從web機的back_sett_data/backup下copy到任意連庫機器上
3.unzip解壓,並賦予導入腳本import.sh可執行權限
4.運行./import.sh tradingday
之后會有提示選項:
請輸入數據庫連接字符串: system/oracle@asp
請輸入需要更新的災備中心標識號。如無需更新,請直接回車:
5.檢查日志是否有報錯
6.開啟tomcat,登錄櫃台檢查系統狀態為啟動
4、截庫操作
目的:
數據庫截庫是在數據庫數據過大的情況下,丟棄某一時間點之前的數據,使數據庫容量恢復
到健康狀態。
前提條件:
1. 關閉閃回:shutdown immediate ->startup mount ->alter database flashback
off->alter database on;
查看是否關閉:select flashback_on from v$database;
2 .關閉歸檔:archive log list 查看歸檔狀態
shutdown->startup mount ->alter databae noarchivelog ->alter database
open
步驟:
1.關閉tomcat
2.工具位置asptools/datapumpTools/cleanOutDB_month/,修改sh.cfg
3.運行./backup
4.recover.sh yyyymmdd (sh.cfg配置的stats_date日期)
5./verifyData.sh
6.開啟tomcat,檢查數據日期,能查詢到的最早日期