開門見山
在上篇文章,筆者介紹了ORACLE DG的數據庫角色,針對不同的DG應用場景與對數據丟失的容忍程度,可以配置DG數據庫的保護模式。ORACLE支持三種數據保護模式:最大可用性Maximum Availability、最大性能Maximum Performance、最大保護Maximum Protection。下文將詳細敘述此三種保護模式的區別與使用場景。
最大可用性Maximum Availability
此模式強調數據的可用性而又不失數據保護功能。此模式採用同步方式SYNC傳輸主庫的重做日誌,同步即意味着主庫知道收到(至少一個)備庫的redo確認後才提交事務;若主庫不能將起重做數據流寫入至少一個同步的備庫,則此模式自動轉化爲最大性能模式以保護主庫。其數據處理流程如下:
最大性能Maximum Performance
此模式是默認的DG數據保護模式,其強調主庫最大的性能而又不失數據保護功能。此模式通過感知主庫的redo日誌已寫入即可允許主庫的事務提交,後續備庫的重做數據確認以異步方式傳輸至主庫。
由於不需要等待備庫的重做確認,此模式可以最大限度的保護主庫的性能。但當主庫崩潰時,可能會造成少量的數據丟失,因爲備庫可能尚未收到主庫的重做日誌。其數據處理流程如下:
最大保護Maximum Protection
最大保護模式可以確保主庫故障後的零數據丟失。爲提供此數據層級保護,事務的重做信息必須同時已寫入主庫和至少一個備庫的重做日誌纔會提交。爲確保不會發送數據丟失,當上述條件不滿足時,主庫直接shutdown不再對外提供服務。
注意最大保護與最大可用的區別:最大可用模式下,若主庫與所有備庫斷開聯結,主庫會繼續單獨運行(類似於最大性能模式),此時相當於主庫一個人闖江湖,若後面主庫又崩了,則其一個人闖出來的“經驗”可能就都丟了;最大保護模式下,若主庫與所有備庫斷開聯結,此時主庫也不幹了,直接shutdown,這樣至少可以保證shutdown之前的數據不會有丟失。
總結
針對不同的應用場景可能需要配置不同的保護模式或混合配置多種不同保護模式的備庫,其中最大保護模式往往不會單獨使用,因爲若備庫崩了,主庫會shutdown停止服務,影響業務的連續性。
金融核心信息和國防機密信息保護,可以配置一主+多個最大可用性備庫+一最大保護備。主故障時自動切換至最大可用性備繼續對外服務,只有所有最大可用性備都掛了時服務纔會停止。