こんにちは、kurouuuronです。
このエントリは Oracle Database or GoldenGate Advent Calendar 2019 の Day 9 の記事です。(日をまたぎました、すみません...)
JPOUG Advent Calendar 2019
https://adventar.org/calendars/4154
今回はOracle Data Guard(以降DG)構成において、ワンコマンドでS/O(Switch Over)やF/O(Fail Over)できる、DGの付随管理ツールである、Data Guard Broker(以降Broker)についてご紹介しようと思います。(全然新しい機能ではないけど)
Data Guard Brokerとは?
ひとことで言えば、
DGのプライマリDBとスタンバイDBをまとめて1つの論理ユニットとし、管理を簡素化する DG の補助機能。
本来なら物理的に離れているプライマリDBとスタンバイDBを各々操作するには、各サーバにアクセスする必要があります。しかし、本機能を用いればこれらを1つのかたまりとしてみなし、任意の片サーバから両サーバのDG状況を管理・確認できます。
新たにDMONというバックグラウンドプロセスを起動し、本プロセスで両DBの状況(インスタンスの状態やREDO転送状況 ..etc)をやり取りします。DGB管理者はsqlplusではなく、DGMGRLというユーティリティでDMONにアクセスして操作をします。
Data Guard Brokerのメリットは?
- DG構成のメンテナンスや監視を自動化・集中化
- 両ノードにアクセスする必要なし!
- S/O, F/O の手順簡素化
- ほぼone commandで実行可能!定期的にS/Oするようなシステムはだいぶ楽になります。
- DG構成の作成やスタンバイDBの追加の簡素化
おまけですが、EM(Enterprise Manager)を利用している場合、EMからもDGB情報が参照できるようになります。さらにS/OやF/Oも画面から操作できるようになります。
なので、EMからDG間のタイムラグや適当パフォーマンスなどが確認および監視できるんですね。
※DGBを構成するとEMのページが自動で追加されます。
どうやったらData Guard Brokerを構築できる?
DG環境構築済を前提として進めます。全体でたったの4STEP!
- [プライマリ、ターゲット] listener.oraへ静的リスナーの追加
- [プライマリ、ターゲット] DB初期化パラメータの変更(3つ)
- [片方] Broker構成ファイル作成
- [片方] Broker構成ファイル有効化
早速ですが、コマンドベースで見ていきましょう。
- [プライマリ、ターゲット] listener.oraへ静的リスナーの追加
以下を追記。S/O,F/Oでshutdown中にDBに接続するための静的サービス登録をします。
# -- add for DGBroker
SID_LIST_LISTENER =
(SID_DESC =
(GLOBAL_DBNAME = ●DB_UNIQUE_NAME●_DGMGRL)
(ORACLE_HOME = /opt/oracle/app/oracle/product/11.2.0)
(SID_NAME = ●ORACLE_SID●)
)
)
# -- add end for DGBroker
2. [プライマリ、ターゲット] DB初期化パラメータの変更(3つ)
DGB構成に必要なBroker構成ファイルのパスとファイル名を指定します。
「dg_broker_config_file1」と「dg_broker_config_file2」には、同じ内容のものが作成されます。バックアップ的な立ち位置。
続いて「DG_BROKER_START」をTRUEにすると、DGB用プロセスであるDMONが起動します。
alter system set dg_broker_config_file1='【出力パス】/dr1●DB_UNIQUE_NAME●.dat' scope=both sid='*';
alter system set dg_broker_config_file2='【出力パス】/dr2●DB_UNIQUE_NAME● .dat' scope=both sid='*';
ALTER SYSTEM SET DG_BROKER_START=TRUE SCOPE=BOTH SID= '*';
3. [片方] Broker構成ファイル作成
ここからはDMONが起動しているので、DGMGRLユーティリティを使用し、DGBに設定を施します。DGBに設定するので、作業するのはどちらのノードからでも構いません。
下記はプライマリDBがporcl、スタンバイDBがsorclという構成のもと、DGConfigという構成ファイルを作成している例です。
create configuration 'DGConfig' as primary database is porcl connect identifier is porcl_dg;
add database sorcl as connect identifier is sorcl_dg;
4. [片方] Broker構成ファイル有効化
作成した構成ファイルを有効化します。
enable configuration
下記コマンドで状態の確認ができます。
DGMGRL> enable configuration
Configuration - DGConfig
Protection Mode: MaxPerformance
Databases:
porcl - Primary Database
sorcl - Physical Standby Database
Fast-Start Failover: ENABLED
Configuration Status:
SUCCESS
以上です。
この状態で下記コマンドを実行すると、switchoverが出来ます。
DGMGRL> switchver to sorcl
まとめ
DGのS/OやF/Oは手動では結構めんどくさいですよね。
DGBを取り入れて運用管理の簡素化を!
あと、心を入れ替えてAdvent Calendar以外でも投稿していこうと思います。