運用incremental backup(增量備份)恢復歸檔GAP的DG
經常有DBA因為對DATAGUARD監控不到位,導致歸檔日誌和主庫沒有同步(如本人),更悲劇的是主庫通常都設定了RMAN備份,
而全庫備份結束後通常會刪除歸檔日誌。遇到這種情況,發現很多DBA都會著手重新從主庫全庫備份恢復到從庫,
遇到小的資料庫還好,對於動輒上百G或T的庫往往會很悲劇,因為資料複製時間都相當的漫長。
而事實上對於從庫SCN和主庫差距並不大,也可以理解為歸檔差距並不多的DG,
根本沒必要全庫回覆,這種情況下增量恢復能快速解決問題,但對於資料量較小的資料庫,直接重新配置duplicate更為方便:
採用incremental recover(增量備份恢復)的方法實現主庫和從庫同步,
先確定備庫的current scn,以此在主庫上執行incremental backup,將備份傳至備庫,使用recover noredo方式恢復備庫。
select to_char(current_scn) from v$database;
在主庫執行incremental備份
run
{
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
backup as compressed backupset incremental from SCN 16856357 database format '/home/oraclerac/rman_bak/forsryxrdb/standby_%d_%T_%U.bak'
include current controlfile for standby filesperset=5 tag 'FOR STANDBY';
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
將備份集傳輸到備庫的指定目錄中
還原控制檔案,並覆蓋原來控制問及那
restore standby controlfile to '/home/oracle/app/oradata/sryxrdb/control01.ctl';
重啟只mount狀態rman
catalog start with '/home/oracle/rman_bak/forsryxrdb';
重新指定資料檔案的位置
select 'set newname for datafile ' || df.FILE_ID || ' to ''/home/oracle/app/oradata/oravs' ||
substr(file_name,INSTR(file_name,'/',1,3),50) || ''';'
from dba_data_files df order by df.file_id;
rman:
run{
set newname for datafile 1 to '/home/oracle/app/oradata/sryxrdb/system.256.866220891';
set newname for datafile 2 to '/home/oracle/app/oradata/sryxrdb/sysaux.257.866220891';
set newname for datafile 3 to '/home/oracle/app/oradata/sryxrdb/undotbs1.258.866220893';
set newname for datafile 4 to '/home/oracle/app/oradata/sryxrdb/users.259.866220893';
set newname for datafile 5 to '/home/oracle/app/oradata/sryxrdb/undotbs2.264.866221147';
set newname for datafile 6 to '/home/oracle/app/oradata/sryxrdb/vs_base.420.866561467';
set newname for datafile 7 to '/home/oracle/app/oradata/sryxrdb/vs_base.421.866561531';
set newname for datafile 8 to '/home/oracle/app/oradata/sryxrdb/tbs_index.422.866561581';
switch datafile all;
}
recover database noredo;
啟動備庫,實施應用即可。
參考:http://yunlongzheng.blog.51cto.com/788996/717249
而全庫備份結束後通常會刪除歸檔日誌。遇到這種情況,發現很多DBA都會著手重新從主庫全庫備份恢復到從庫,
遇到小的資料庫還好,對於動輒上百G或T的庫往往會很悲劇,因為資料複製時間都相當的漫長。
而事實上對於從庫SCN和主庫差距並不大,也可以理解為歸檔差距並不多的DG,
根本沒必要全庫回覆,這種情況下增量恢復能快速解決問題,但對於資料量較小的資料庫,直接重新配置duplicate更為方便:
採用incremental recover(增量備份恢復)的方法實現主庫和從庫同步,
先確定備庫的current scn,以此在主庫上執行incremental backup,將備份傳至備庫,使用recover noredo方式恢復備庫。
select to_char(current_scn) from v$database;
在主庫執行incremental備份
run
{
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
backup as compressed backupset incremental from SCN 16856357 database format '/home/oraclerac/rman_bak/forsryxrdb/standby_%d_%T_%U.bak'
include current controlfile for standby filesperset=5 tag 'FOR STANDBY';
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
將備份集傳輸到備庫的指定目錄中
還原控制檔案,並覆蓋原來控制問及那
restore standby controlfile to '/home/oracle/app/oradata/sryxrdb/control01.ctl';
重啟只mount狀態rman
catalog start with '/home/oracle/rman_bak/forsryxrdb';
重新指定資料檔案的位置
select 'set newname for datafile ' || df.FILE_ID || ' to ''/home/oracle/app/oradata/oravs' ||
substr(file_name,INSTR(file_name,'/',1,3),50) || ''';'
from dba_data_files df order by df.file_id;
rman:
run{
set newname for datafile 1 to '/home/oracle/app/oradata/sryxrdb/system.256.866220891';
set newname for datafile 2 to '/home/oracle/app/oradata/sryxrdb/sysaux.257.866220891';
set newname for datafile 3 to '/home/oracle/app/oradata/sryxrdb/undotbs1.258.866220893';
set newname for datafile 4 to '/home/oracle/app/oradata/sryxrdb/users.259.866220893';
set newname for datafile 5 to '/home/oracle/app/oradata/sryxrdb/undotbs2.264.866221147';
set newname for datafile 6 to '/home/oracle/app/oradata/sryxrdb/vs_base.420.866561467';
set newname for datafile 7 to '/home/oracle/app/oradata/sryxrdb/vs_base.421.866561531';
set newname for datafile 8 to '/home/oracle/app/oradata/sryxrdb/tbs_index.422.866561581';
switch datafile all;
}
recover database noredo;
啟動備庫,實施應用即可。
參考:http://yunlongzheng.blog.51cto.com/788996/717249
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28258625/viewspace-1383695/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用增量備份恢復gap歸檔丟失DG
- 利用增量備份恢復因歸檔丟失造成的DG gap
- dg丟失歸檔,使用rman增量備份恢復
- 無備份恢復(歸檔模式)模式
- 備份&恢復之四:非歸檔模式下的備份與恢復模式
- 使用RMAN增量備份處理Dataguard因歸檔丟失造成的gap
- mysql innobackupex增量備份恢復MySql
- 備份與恢復--從備份的歸檔日誌中恢復資料
- 基於歸檔的冷備份恢復
- 冷備份+歸檔日誌的恢復
- oracle 增量備份恢復驗證Oracle
- 【MySql】innobackupex增量備份和恢復MySql
- 【MySql】innobackupex 增量備份和恢復MySql
- 基於非歸檔的冷備份恢復
- 基於歸檔的熱備份完全恢復
- 【備份恢復】noarchive模式下使用增量備份恢復資料庫Hive模式資料庫
- DG歸檔日誌缺失恢復
- mysql之 Innobackupex(全備+增量)備份恢復MySql
- 無檔案備份、擁有所有歸檔的恢復
- 【備份恢復】恢復 丟失已歸檔重做日誌檔案
- 如何從Active Backup for Business備份中恢復檔案
- rman恢復--歸檔模式有備份,丟失資料檔案的恢復模式
- rman恢復--歸檔模式無備份,丟失資料檔案的恢復模式
- 用restore archivelog從備份集中恢復歸檔日誌RESTHive
- mysql 利用binlog增量備份、恢復MySql
- MySQL增量備份與恢復例項MySql
- 如何恢復Hyper Backup備份的資料
- Rman Crosscheck刪除失效歸檔-備份恢復ROS
- RMAN備份、恢復實驗室 之 備份篇 【歸檔模式】模式
- 備份與恢復--利用備份的控制檔案恢復
- 利用incremental backup恢復丟失日誌的standbyREM
- 【Xtrabackup】Xtrabackup全備、增量備份及恢復示例
- ORACLE DG從庫 Rman備份恢復Oracle
- 歸檔模式,恢復沒有備份的資料檔案模式
- db2備份恢復(backup restore)DB2REST
- oracle基於歸檔的增量異地恢復Oracle
- Oracle使用備份檔案集恢復歸檔日誌Oracle
- Backup And Recovery User's Guide-備份和恢復概覽-備份和恢復介紹-備份和恢復的目的GUIIDE