轉載《Data Guard Broker基礎》

Data Guard broker是建立在Data Guard基礎上的一個對Data Guard配置,集中管理操作的一個平臺,因此在學習Data Guard broker之前必須對Data Guard要有充分的瞭解。

Data Guard爲我們提供了一套高可用的解決方案,但是在實際的使用方面確實顯得有一些過於複雜,特別是在需要配置的standby機器多的時候更是如此,一個個機器去登陸配置顯得特別的麻煩;在需要做switchover或者是failover的時候情況也是一樣,需要操作一系列的命令才能完成一次 switchover/failover的操作。Data Guard broker的推出就是爲了簡化DG複雜的管理過程的,它最大的作用就是集中化的統一管理,下面列出來一些Data Guard broker優勢所在:

 


    * 更詳細的對比參看《Oracle Data Guard broker》。

broker的組成主要分成兩大部分,分別是:

客戶端組件
    客戶端組件是一個管理員與broker服務器端組件的接口,用戶通過客戶端來發出命令對服務器端的行爲進行控制。客戶端組件由OEM和DGMGRL兩個組成

    * OEM(Oracle Enterprise Manager):圖形化的Oracle管理工具,提供了多個嚮導功能方便DG的管理工作。
    * DGMGRL(Data Guard command-line interface): 命令行管理界面,可以通過命令很方便的操作以及監控數據庫,命令列表見文檔。

服務器端組件
    在每個配置了broker的數據庫上面都存在一個服務器進程進行 broker的管理操作,這個服務器進程就是Data Guard broker monitor(DMON),而這個DMON所用到的所有配置信息都會保留在一個配置文件中。這個DMON進程和配置文件就構成了每個數據庫上 broker的服務器端組件。

    * Data guard broker monitor process(DMON):DMON是一個用來管理broker的後臺進程,這個進程負責與本地數據庫以及遠程數據庫的DMON進程進行通訊(與遠端數據庫的DMON進程進行通訊的時候使用的是一個 動態註冊 的service name “db_unique_name_DGB.db_domain”)。這個進程負責維護配置文件的正確性以及不同數據庫之間配置文件的一致性。在第一次創建一個broker配置文件或者是將一個數據庫加入一個現存的broker配置中的時候DMON會先收集現有數據庫的DG配置信息並保存到配置文件中。
    * 配置文件:配置文件有DMON進行操作,它保存了broker管理的所有的數據庫的狀態信息,以及數據庫相關屬性(即數據庫的初始化參數信息)的信息。同一個broker配置管理下的每個數據庫上面都有一份相同的配置文件。

broker的配置管理

broker通過將DG環境劃分成數據庫配置和數據庫這兩種對象來簡化DG的管理工作。

    * 數據庫配置對象:數據庫配置是一個包含多個數據庫信息的集合,這些數據庫信息包括數據庫對象當前的形態、狀態、及屬性設置。同時這個集合可以同時混合了物理standby和邏輯standby。
    * 數據庫對象:數據庫對象指的是Primary和standby數據庫。一般情況下一個數據庫對象只包含一個實例,但是在RAC系統中一個數據庫對象會包含多個實例。

broker通過將一個DG中的Primary數據庫及所有的standby數據庫邏輯的組成一個邏輯組來進行集中管理,因此每個broker配置就是一個數據庫的邏輯集合,它包含了組成數據庫的日誌傳輸服務、日誌應用服務等邏輯的對象。DBA可以broker來控制這個邏輯集合的配置,改變它的配置,同時還能監控這個組的整體健康狀態。

DMON進程負責設置和維護broker配置,有了DMON的維護之後在實際管理中我們只需要把一個broker配置當初單個的單元管理就行了,剩下的工作由DMON去做,因此當執行一個影響到多個數據庫的命令的時候,DMON實際上會進行下面的操作:

   1. 在Primary數據庫上處理請求。
   2. 協調其他相關數據庫上的DMON進程處理相應的請求。
   3. 更新本地系統中的配置文件。
   4. 與其他數據庫上的DMON進程通訊以更新各自的配置文件。

每組配置文件中可以包含多個broker配置,但是每個數據庫只會維護一組配置文件,因此在RAC環境中,配置文件是由組成這個RAC的各個instance共享的。DMON進程負責各個數據庫之間配置文件的同步工作。

DMON進程通過配置文件中設定的數據庫的參數來控制數據庫的行爲,這些屬性通常都和數據庫的某個DG相關的初始化參數相關聯,在通過OEM或 DGMGRL修改這些屬性的時候,這些屬性記錄會先保存在配置文件中,然後DMON進程同時也會對相關數據庫的參數進行修改,這就要求我們在配置數據庫的時候必須使用SPFILE,保證DMON修改之後的參數能保留下來。
使用broker的準備清單

在使用Data Guard broker之前需要確定下面這些條件都已存在:

    * 必須使用spfile,這樣再通過DGMGRL/OEM修改數據庫參數之後能夠保存下來。
    * 設置數據庫初始化參數DG_BROKER_START爲true,這樣保證每次數據庫起來的時候DMON進程也會自動起來。
    * 當使用RAC環境的時候要確保參數DG_BROKER_CONFIG_FILEn都指向一個所有實例都能訪問的共享位置。
    * 當不適用Oracle默認端口啓動數據庫時必須設置LOCAL_LISTENER參數以保證service name <db_unique_name>_DGB.<db_domain>能被正確的註冊。
    * 在listener.ora中靜態的添加service name db_unique_name_DGMGRL.db_domain的註冊,這個service name會在DGMGRL重啓數據庫的時候用到,通過DGMGRL重啓數據庫時DMON進程會先將數據庫關閉,然後DGMGRL再用service name _DGMGRL.db_domain通過listener連接到數據庫,再發出啓動的命令,添加方法如下:

LISTENER = (DESCRIPTION =
   (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=host_name)
   (PORT=port_num))))
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=sid_name)
   (GLOBAL_DBNAME=db_unique_name_DGMGRL.db_domain)
   (ORACLE_HOME=oracle_home)))

    * 所有數據庫都必須是在mount狀態下才能被broker管理,RAC環境中選項START_OPTIONS必須設置爲MOUNT,設置命令如下:

srvctl add database -d db_unique_name -o $oracle_home -s mount
or
srvctl modify database -d db_unique_name -o $oracle_home -s mount

    * 主數據庫必須運行在ARCHIVELOG模式下。
    * COMPATIBLE參數必須設置爲9.2.0.1.0或更高,同時要保證所有的數據庫包括Primary和standby設置是一致的,不一致的話會導致redo transport services無法正確的傳輸日誌。

本文轉載至:http://hi.baidu.com/javenzhen/blog/item/5943cf38e83844f93a87ceb0.html,感謝作者分享!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章