0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Data Guard プロセス状態を確認する(Oracle Database 19c)

Last updated at Posted at 2024-02-27

Data Guard プロセスの確認

Oracle Data Guard が正常に実行されているかを確認する方法として、以前はスタンバイ・インスタンスで V$MANAGED_STANDBY ビューを検索していました。プロセス名 MRP0 の状況を確認し、APPLYING_LOG 状態であれば Data Guard リアルタイム適用が有効に動作していることになります。

以前の Data Guard 稼働確認
SQL> SELECT status FROM v$managed_standby WHERE process LIKE 'MRP%';

STATUS
------------
APPLYING_LOG

しかし Oracle Database 12c (12.2) 以降、このビューを確認する方法は非推奨となっています。本記事では Oracle Database 19c で使用が推奨されている V$DATAGUARD_PROCESS ビューの内容を確認します。このビューはプライマリ・データベース、スタンバイ・データベースどちらのインスタンスにも出力があります(内容は異なります)。
 本記事ではプライマリ・データベースの名前(db_unique_name)を O19P、スタンバイ・データベースの名前を O19S としています。フィジカル・スタンバイ環境で、保護モードは最大パフォーマンス、Data Guard Broker は使用していません。

Data Guard 構成確認
SQL> SELECT * FROM V$DATAGUARD_CONFIG;

DB_UNIQUE_NAME                 PARENT_DBUN                    DEST_ROLE         CURRENT_SCN     CON_ID
------------------------------ ------------------------------ ----------------- ----------- ----------
O19S                           O19P                           PHYSICAL STANDBY   3.8160E+13          0
O19P                           NONE                           PRIMARY DATABASE            0          0

このビューをスタンバイ・データベースで検索するとプライマリ・データベースの CURRENT_SCN 列が 0 になる以外はプライマリ・データベースとスタンバイ・データベースは同じ内容になります。

Data Guard 正常時

 管理スタンバイ(MANAGED STANDBY)が正常に動作している場合の、V$DATAGUARD_PROCESS ビューの内容を確認します。

プライマリ・データベース

 以下はプライマリ・データベースで V$DATAGUARD_PROCESS を検索した結果です。CLIENT_PID 列はすべて 0 になっています。

管理スタンバイ実行時のプライマリ
SQL> SELECT pid,name,action,client_pid,client_role FROM v$dataguard_process ORDER BY 2;

PID                      NAME  ACTION       CLIENT_PID CLIENT_ROLE
------------------------ ----- ------------ ---------- ----------------
4751                     ARC0  IDLE                  0 none
4755                     ARC1  IDLE                  0 none
4757                     ARC2  IDLE                  0 none
4759                     ARC3  IDLE                  0 none
4687                     LGWR  IDLE                  0 none
4729                     TMON  IDLE                  0 none
4749                     TT00  IDLE                  0 none
4753                     TT01  IDLE                  0 none
4761                     TT02  OPENING               0 none
4763                     TT03  IDLE                  0 none
4778                     TT04  WRITING               0 none

11行が選択されました。

スタンバイ・データベース

 以下はスタンバイ・データベースで V$DATAGUARD_PROCESS を検索した結果です。プロセスID 5283 の rfs プロセスの起動は一時的で常時起動しているわけではありません。

SQL: 管理スタンバイ実行時のスタンバイ
SQL> SELECT pid,name,action,client_pid,client_role FROM v$dataguard_process ORDER BY 2;

PID                      NAME  ACTION       CLIENT_PID CLIENT_ROLE
------------------------ ----- ------------ ---------- ----------------
5245                     ARC0  IDLE                  0 none
5252                     ARC1  IDLE                  0 none
5254                     ARC2  IDLE                  0 none
5257                     ARC3  IDLE                  0 none
5188                     LGWR  IDLE                  0 none
19278                    MRP0  IDLE                  0 none
19284                    PR00  APPLYING_LOG          0 none
19286                    PR01  IDLE                  0 none
19288                    PR02  IDLE                  0 none
19290                    PR03  IDLE                  0 none
19292                    PR04  IDLE                  0 none
5230                     TMON  IDLE                  0 none
5247                     TT00  IDLE                  0 none
5249                     TT01  IDLE                  0 none
5277                     rfs   IDLE               4778 async ORL single
5283                     rfs   IDLE               4755 archive gap
5279                     rfs   IDLE               4749 gap manager

17行が選択されました。

プライマリ・データベースとスタンバイ・データベースのプロセス間通信の状況を以下のように確認できます。

プライマリ・プロセス(PID) スタンバイ・プロセス(PID) 備考
TT04 (4778) rfs (5277) acync ORL single
ARC1 (4755) rfs (5283) archive gap
TT00 (4749) rfs (5279) gap manager

従来の V$MANAGED_STANDBY ビューで確認していた内容を取得するにはスタンバイ・インスタンスで以下の SQL 文を実行します。

リアルタイム適用の確認(V$DATAGUARD_PROCESS)
SQL> SELECT status FROM v$managed_standby WHERE process LIKE 'MRP%';

STATUS
------------
APPLYING_LOG

SQL> SELECT action FROM v$dataguard_process WHERE name='PR00';

ACTION
------------
APPLYING_LOG

プロセスを管理スタンバイ・リカバリ・プロセス(MRP0)ではなく、パラレル・リカバリ・コーディネータ(PR00)で検索します。

スタンバイ・インスタンス停止時

スタンバイ・インスタンスが停止した場合、プライマリ・インスタンスの V$DATAGUARD_PROCESS ビューの内容には変化がありません。

スタンバイ・インスタンス停止時のプライマリ
SQL> SELECT pid,name,action,client_pid,client_role FROM v$dataguard_process ORDER BY 2;

PID                      NAME  ACTION       CLIENT_PID CLIENT_ROLE
------------------------ ----- ------------ ---------- ----------------
4751                     ARC0  IDLE                  0 none
4755                     ARC1  IDLE                  0 none
4757                     ARC2  IDLE                  0 none
4759                     ARC3  IDLE                  0 none
4687                     LGWR  IDLE                  0 none
4729                     TMON  IDLE                  0 none
4749                     TT00  IDLE                  0 none
4753                     TT01  IDLE                  0 none
4761                     TT02  OPENING               0 none
4763                     TT03  IDLE                  0 none
4778                     TT04  WRITING               0 none

11行が選択されました。

スタンバイ・インスタンスMOUNT時

管理スタンバイ(MANAGED STANDBY)は実行せず、スタンバイ・インスタンスが MOUNT 状態の場合の V$DATAGUARD_PROCESS ビューの状態を確認します。

プライマリ・データベース

スタンバイ・インスタンス起動直後にプライマリ・インスタンスで V$DATAGUARD_PROCESS ビューを検索するとアーカイブ・ギャップを確認する FAL 要求に関するプロセスが起動していることが確認できます。

スタンバイ・インスタンス起動直後
SQL> SELECT pid,name,action,client_pid,client_role FROM v$dataguard_process ORDER BY 2;

PID                      NAME  ACTION       CLIENT_PID CLIENT_ROLE
------------------------ ----- ------------ ---------- ----------------
4751                     ARC0  IDLE                  0 none
4755                     ARC1  IDLE                  0 none
4757                     ARC2  IDLE                  0 none
4759                     ARC3  IDLE                  0 none
4687                     LGWR  IDLE                  0 none
4729                     TMON  IDLE                  0 none
4749                     TT00  IDLE                  0 none
4753                     TT01  IDLE                  0 none
4761                     TT02  OPENING               0 none
4763                     TT03  IDLE                  0 none
4778                     TT04  WRITING               0 none
20714                    fal   IDLE                  0 none
20714                    fal   IDLE                  0 none

13行が選択されました。

アーカイブ・ギャップが無いことが確認できると fal プロセスは停止し、V$DATAGUARD_PROCESS ビューから情報が消えます。

スタンバイ・インスタンス起動後
SQL> SELECT pid,name,action,client_pid,client_role FROM v$dataguard_process ORDER BY 2;

PID                      NAME  ACTION       CLIENT_PID CLIENT_ROLE
------------------------ ----- ------------ ---------- ----------------
4751                     ARC0  IDLE                  0 none
4755                     ARC1  IDLE                  0 none
4757                     ARC2  IDLE                  0 none
4759                     ARC3  IDLE                  0 none
4687                     LGWR  IDLE                  0 none
4729                     TMON  IDLE                  0 none
4749                     TT00  IDLE                  0 none
4753                     TT01  IDLE                  0 none
4761                     TT02  OPENING               0 none
4763                     TT03  IDLE                  0 none
4778                     TT04  WRITING               0 none

スタンバイ・データベース

 管理スタンバイを実行していない場合、V$DATAGUARD_PROCESS ビューには複数のプロセス情報が消えています。

SQL> SELECT pid,name,action,client_pid,client_role FROM v$dataguard_process ORDER BY 2;

PID                      NAME  ACTION       CLIENT_PID CLIENT_ROLE
------------------------ ----- ------------ ---------- ----------------
20695                    ARC0  IDLE                  0 none
20701                    ARC1  IDLE                  0 none
20703                    ARC2  IDLE                  0 none
20705                    ARC3  IDLE                  0 none
20632                    LGWR  IDLE                  0 none
20674                    TMON  IDLE                  0 none
20697                    TT00  IDLE                  0 none
20699                    TT01  IDLE                  0 none
20721                    rfs   IDLE               4778 async ORL single
20719                    rfs   IDLE               4749 gap manager

10行が選択されました。

管理スタンバイが停止している場合、以下のプロセス情報が V$DATAGUARD_PROCESS ビューから消えます。

プロセス名 プロセス説明 備考
MRP0 管理スタンバイ・リカバリ・プロセス
PR00 パラレル・リカバリ・コーディネータ
PRnn パラレル・リカバリ・ワーカー 個数は可変

Author: Noriyoshi Shinoda / Date: February 27, 2024

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?