您好,登錄后才能下訂單哦!
起因:源端數據庫應用程序邏輯錯誤,導致重大量重試回滾,日產生歸檔300GB,異地備份在10Mbps的網速下,產生了archive gap;
解決流程:
1 查出備庫當前的scn號
select current_scn from v$database;
1612480746
2 在主庫生成基于備庫scn的增量備份
--primary
show all;
run{
ALLOCATE CHANNEL d1 TYPE disk;
set limit channel d1 kbytes=104857600;
BACKUP INCREMENTAL FROM SCN 1612480746 DATABASE FORMAT 'J:\%U_for_stb.bk' include current controlfile for standby;
}
3 傳送日志到備庫
--standby
catalog start with 'e:\inc';
4 應用control file,增量備份集
restore standby controlfile to 'e:\control01.ctl' ;
shutdown immediate;
copy e:\control01.ctl E:\ORADATA\TCIS\CONTROL01.CTL
copy e:\control01.ctl E:\ORADATA\TCIS\CONTROL02.CTL
copy e:\control01.ctl E:\ORADATA\TCIS\CONTROL03.CTL
recover database noredo;
報錯:
RMAN-03002: recover 命令 (在 07/08/2018 10:49:09 上) 失敗
RMAN-06094: 數據文件5必須重新存儲
啟動原先的備庫,select name from v$datafile
發現文件有重新rename的;有點梗;
5 修改數據文件位置
alter system set standby_file_management=manual;
alter database rename file 'E:\ORADATA\TCIS\UBSS_INDX01.DBF' to 'd:\oradata\tcis\ubss_indx01.dbf';
alter database rename file 'E:\ORADATA\TCIS\UBSS_INDX02.DBF' to 'd:\oradata\tcis\ubss_indx02.dbf';
6 再次recover database noredo
又報錯,第16號文件不存在
RMAN-03002: recover 命令 (在 07/08/2018 10:49:09 上) 失敗
RMAN-06094: 數據文件16必須重新存儲
以老的控制文件啟動,發現第16號文件是之后添加的
7 主庫上備份16號文件backup datafile 16 format 'j:\16.bak';
8 備庫上恢復16文件
--primary
catalog start with 'e:\inc';
restore datafile 16 ;
recover database noredo;
RMAN-03002: recover 命令 (在 07/07/2018 10:44:11 上) 失敗
ORA-19693: 已包括備份片段 E:\INC\CDT7BHIL_1_1_FOR_STB.BK
recover失敗,很名顯,這個16號文件是之后恢復的,其scn大于之前做的備份片集
9 清理無效的備份片,再次重復2之后的步驟,backup ,restore controlfile,rename datafile,recover database ;
10 恢復完成后檢查
復原參數alter system set standby_file_management=auto;
啟動recoveralter database recover managed standby database disconnect;
檢查日志應用情況
SQL> select status,blocks,process,sequence# from v$managed_standby;
STATUS BLOCKS PROCESS SEQUENCE#
------------ ---------- --------- ----------
CONNECTED 0 ARCH 0
CONNECTED 0 ARCH 0
CONNECTED 0 ARCH 0
CONNECTED 0 ARCH 0
IDLE 20480 RFS 45261
IDLE 20480 RFS 45262
IDLE 0 RFS 0
APPLYING_LOG 81560 MRP0 45248
檢查歸檔,刪除已應用的歸檔
select a.thread#, a.sequence#, a.applied,a.name
from v$archived_log a, v$database d
where a.activation# = d.activation#
and a.applied='YES' order by 2;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。