本文作者:
junsansi????
轉(zhuǎn)載網(wǎng)址:
http://www.5ienet.com/index.shtml
?
?
第四部分Standby之Log應(yīng)用服務(wù)? 2008.02.26
??? 前面我們已經(jīng)接觸了很多相關(guān)的概念,我們都知道DataGuard 通過應(yīng)用redo 維持primary 與各standby 之間的一致性,在后臺默默無聞支撐著的就是傳說中的Log 應(yīng)用服務(wù)。Log 應(yīng)用服務(wù)呢,又分兩種方式,一種是redo應(yīng)用(物理standby 使用,即介質(zhì)恢復(fù)的形式),另一種是sql 應(yīng)用(邏輯standby 使用,通過LogMiner 分析出sql語句在standby 端執(zhí)行)。
?
?
一、Log應(yīng)用服務(wù)配置選項
?
1、REDO數(shù)據(jù)實時應(yīng)用
?
??? 默認(rèn)情況下,log 應(yīng)用服務(wù)會等待單個歸檔文件全部接收之后再啟動應(yīng)用(在前面redo 傳輸服務(wù)中我們介紹了不同形式的傳輸方式),如果standby 端使用了standby redologs,就可以打開實時應(yīng)用(real-time apply),這樣dg 就不需要再等待接收完歸檔文件,只要rfs 將redo 數(shù)據(jù)寫入standby redologs,即可通過MRP/LSP 實時寫向standby。
?
??? 物理standby 啟用實時應(yīng)用通過下列語句:
??? SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE ;
?
??? 邏輯standby 啟用實時應(yīng)用通過下列語句:
??? SQL> ALTER DATABASE START LOGICAL STANDBYAPPLY IMMEDIATE;
?
2、REDO數(shù)據(jù)延遲應(yīng)用
?
??? 有實時就有延遲,某些情況下你可能不希望standby 與primary 太過同步:),那就可以在log_archive_dest_n參數(shù)中指定delay 屬性(單位為分鐘,如果指定了delay 屬性,但沒有指定值,則默認(rèn)是30 分鐘)。注意,該屬性并不是說延遲發(fā)送redo 數(shù)據(jù)到standby,而是指明歸檔到standby 后,開始應(yīng)用的時候。
?
??? 不過,即使在log_archive_dest_n 中指定了delay 屬性,但如果你應(yīng)用數(shù)據(jù)時指定了實時應(yīng)用,則standby會忽略delay 屬性。另外,standby 端還可以通過下列的語句取消延遲應(yīng)用。
?
??? 物理standby 取消延遲應(yīng)用可以通過下列語句:
??? SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY;
?
??? 邏輯standby 取消延遲應(yīng)用可以通過下列語句:
??? SQL> ALTER DATABASE START LOGICAL STANDBYAPPLY NODELAY;
?
??? 提示:flashback database 也可視為延遲應(yīng)用的一種方式。
?
?
二、應(yīng)用redo數(shù)據(jù)到物理standby
?
??? 注意:啟動redo 應(yīng)用,物理standby 需要首先啟動到mount 狀態(tài),然后再執(zhí)行下列語句啟動,或者停止redo應(yīng)用。
?
1、啟動redo應(yīng)用
?
??? ※ 前臺應(yīng)用
??? SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;
?
??? ※ 后臺應(yīng)用
??? SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
?
??? ※ 啟動實時應(yīng)用,附加USING CURRENT LOGFILE 子句即可
??? SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;
?
2、停止redredo應(yīng)用
?
??? SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
?
?
三、應(yīng)用redo數(shù)據(jù)到邏輯standby
?
??? 注意:啟用sql 應(yīng)用,邏輯standby 需要啟動至open 狀態(tài)。
?
1、啟動sql應(yīng)用
?
??? SQL> ALTER DATABASE START LOGICAL STANDBYAPPLY;
?
??? 如果要啟動實時應(yīng)用,附加immediate 子句即可:
??? SQL> ALTER DATABASE START LOGICAL STANDBYAPPLY IMMEDIATE;
?
2、停止sql應(yīng)用
?
??? SQL> ALTER DATABASE STOP LOGICAL STANDBYAPPLY;
?
?
?