Help us understand the problem. What is going on with this article?

DGBrokerで楽々運用管理

こんにちは、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状況を管理・確認できます。

イメージはこんな感じ。
image.png

新たに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
1. [プライマリ、ターゲット] listener.oraへ静的リスナーの追加
2. [プライマリ、ターゲット] DB初期化パラメータの変更(3つ)
3. [片方] Broker構成ファイル作成
4. [片方] Broker構成ファイル有効化

早速ですが、コマンドベースで見ていきましょう。

  1. [プライマリ、ターゲット] 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以外でも投稿していこうと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした