遠程同步實例(far sync instance)介紹
本文主要介紹Oracle 12C Data Guard推出的一個特性Far Sync Instance.先看兩張結構梗概圖:

圖一:Typical Oracle Data Guard Configuration

圖二:Oracle Data Guard far sync instance Configuration
圖一,典型傳統的dataguard,為了保證primary數據庫的性能通常采用異步傳輸的方式進行數據同步,而異步這種方式的弊端就是主數據庫出現故障有可能就會造成數據的丟失,而數據丟失對于有些行業是萬萬不能發生的。如果采用sync方式,選擇的保護模式有兩種:
1.Z大保護模式(Z大保護模式中,如果備庫出現問題那么主庫會被關閉,直接影響正常業務,即使采用雙備庫模式,網絡效率瓶頸也是必須考慮的問題)。
2.Z高可用模式(代價是備庫接收redo寫入磁盤I/O和對主庫響應所致的性能影響)
這兩種模式的日志傳輸方式都會對主庫有性能影響。在oracle 12c dataguard中允許sync/noaffirm日志傳輸方式,也稱FastSync,主服務器執行寫操作,僅等待確認已在備用數據庫上接收到數據,而不是等待已寫入磁盤。采用這種方式雖然減少了備庫寫的時間,但是一旦備庫crash,內存中的redo數據還沒有寫入磁盤,那么也會造成數據丟失。
圖二,我們可以發現中間多了一部分,這就是far sync instance,Oracle 12c Dataguard Far Sync Instance(遠程同步實例),它的特點如下:
Far Sync Instance(遠程同步實例)與主數據庫之間是采用同步傳輸方式,并且作為一個”中轉”,它采用Z高可用模式,只負責接收然后傳遞,不進行apply,而且可以放置在與主庫距離較近的位置(比如主數據庫在天津,備數據庫在北京,可以在天津武清配置Far sync instance,甚至就與主庫放在同一個機房?。?,保證了網絡傳輸的高效性。
另外遠程同步實例的優勢就是可以確保零數據丟失,在主庫出現故障后,同步到far sync instance中的重做日志可繼續為備庫提供redo傳遞。而且主庫到Far sync instance可以采用SYNC/NOAFFIRM傳輸方式,根據圖中的DEST_3在主庫配置了備用目的(alternate destination)如果遠程同步實例出現故障,主庫將啟用備用目錄傳遞redo日志,即使Far sync instance意外斷電,主庫依然和備庫保持通信。
看到far sync instance,應該會想到cascading dataguard(級聯dataguard),級聯dataguard這種方式在中間的備庫是需要有數據存在和需要apply日志的過程,然后遠處的級聯接收備庫傳來的redo日志再一次進行apply。配置far sync instance只占用非常少的磁盤和處理資源,不需要數據文件,不需要apply日志,如果數據量級別非常大,可以節省了存儲資源開銷和應用日志的時間。
遠程同步實例是Oracle Active Data Guard遠程同步功能的一部分,該功能需要Oracle Active Data Guard許可證
遠程同步實例沒有用戶數據文件,無法打開訪問權限,無法運行重做應用程序,也無法在主要角色中運行或轉換為任何類型的備用數據庫。