ROSE HA切換節點導致DG失敗、恢復

like052629發表於2014-12-16

ROSE HA切換節點導致DG失敗、恢復:

由於ROSE HA每個節點單獨使用spfile引數檔案,節點切換後,導致DG失效,因此重新恢復DG,操作如下:

理論上直接修改新節點的引數檔案,然後將歸檔日誌copy至備庫,應用即可,但是當發現切換後,手動執行rman整庫備份,且備份歸檔日誌後,清理了歸檔日誌:

#!/bin/sh

dat=`date +%Y%m%d`

su - oracle <

export ORACLE_SID=XX

mkdir -p /home/oracle/rman_bak/$dat/archivelog

find /home/oracle/rman_bak/201* -mtime +7 -exec rm -fr {} \;

rman target / log '/home/oracle/rman_bak/rmanbak.log'

crosscheck backup;

delete expired backup;

yes

backup as compressed backupset database format "/home/oracle/rman_bak/$dat/data_%d_%U" INCLUDE CURRENT CONTROLFILE;

#backup as compressed backupset format "/home/oracle/rman_bak/$dat/archivelog/log_%U" archivelog all;

backup as compressed backupset format "/home/oracle/rman_bak/$dat/archivelog/log_%U" archivelog all delete all input;

#echo "/home/oracle/rmanbak/archivelog/${dat}/";

exit;

EOF

echo $dat >>/home/oracle/rman_bak/rmanbak.log

最後實際操作如下:

建立備庫控制檔案(是不是不需要此步的,備庫使用現有控制檔案,難道不會出問題??使用後未發現問題,但有疑問)

#alter database create standby controlfile as /home/oracle/rman_bak/standbycontrol.ctl;

rman中的歸檔日誌備份檔案與控制檔案copy至備庫相應目錄下(或在主庫位置還原歸檔日誌,將還原的歸檔日誌copy至備庫,然後重新註冊:alter database register logfile 路徑;);

# shutdown immediate備庫,將現使用的控制檔案替換為copy過來的控制檔案;

檢視備庫最後的歸檔檔案大小;

還原歸檔日誌檔案;

# rman target /

run{

set archivelog destination to '/home/oracle/app/arch/dgXX';

restore archivelog from logseq 1630;--也可指定恢復的歸檔日誌檔案的範圍 from logseq 1630 until logseq 1730;

}

重啟備庫至mount狀態,應用日誌,發現正常。

以下內容轉:

RMAN> restore archivelog all from '/u01/oracle/oradata/backup/AA_ARC_20060509_5_1.bak';

Starting restore at 09-MAY-06

using channel ORA_DISK_1

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of restore command at 05/09/2006 14:06:22

RMAN-06509: only SPFILE or controlfile can be restored from autobackup 

#百度的結果是,restore archivelog from這種語法,from backuppiece會報如上錯,from tag沒問題,但實測均不成功。

.備份所有歸檔日誌檔案

   RMAN> backup archivelog all delete input;

: restore archivelog 的各種選項

   1.恢復全部歸檔日誌檔案

     RMAN> restore archivelog all;

   2.只恢復58這四個歸檔日誌檔案

     RMAN> restore archivelog from logseq 5 until logseq 8;

   3.恢復從第5個歸檔日誌起

     RMAN> restore archivelog from logseq 5;

   4.恢復7天內的歸檔日誌

     RMAN> restore archivelog from time 'sysdate-7';

   5. sequence between 寫法

     RMAN> restore archivelog sequence between 1 and 3;

   6.恢復到哪個日誌檔案為止

     RMAN> restore archivelog until logseq 3;

   7.從第五個日誌開始恢復

     RMAN> restore archivelog low logseq 5;

   8.到第5個日誌為止

     RMAN> restore archivelog high logseq 5; 
            9.Rac下還原指定執行緒的日誌
                        restore archivelog from logseq 1 until logseq 5 thread 1;

:如果想改變恢復到另外路徑下 則可用下面語句

   set archivelog destination to 'd:\backup';

   RMAN> run

   2> {allocate channel ci type disk;

   3> set archivelog destination to 'd:\backup';

   4> restore archivelog all;

   5> release channel ci;

   6> }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28258625/viewspace-1369605/,如需轉載,請註明出處,否則將追究法律責任。

相關文章