LoginSignup
1
0

More than 3 years have passed since last update.

Data Guardでプライマリ停止時の状態を確認する(Oracle Database 19c)

Last updated at Posted at 2020-12-11

Oracle Data Guard環境ではV\$ARCHIVE_DEST_STATEビューやV\$MANAGED_STANDBYビューで状態を確認します。本記事ではプライマリ・インスタンス停止が発生したときと、MANAGED STANDBYがキャンセルされたときにこれらのビューの内容がどのように変化するかを確認します。環境は昨日の記事と同じです。

プライマリ停止

プライマリ・インスタンスを異常終了させて、スタンバイ・インスタンスの状態を確認します。

ALERTファイルの状態

alertファイルには接続が切れたことが直ちに出力されます。

2020-12-10T10:24:09.586896+09:00
 rfs (PID:42589): Possible network disconnect with primary database
2020-12-10T10:24:09.598992+09:00
 rfs (PID:42587): Possible network disconnect with primary database

V$ARCHIVE_DEST_STATUSの状態

V\$ARCHIVE_DEST_STATUSビューは変化がありません。STATUS列はVALIDで、RECOVERY_MODE列はMANAGED REAL TIME APPLYのままです。V\$MANAGED_STANDBYビューにも変化はありません。

SQL> SELECT dest_name, status, recovery_mode FROM v$archive_dest_status WHERE dest_id IN (1, 2) ORDER BY 1;

DEST_NAME                      STATUS    RECOVERY_MODE
------------------------------ --------- ----------------------------------
LOG_ARCHIVE_DEST_1             VALID     MANAGED REAL TIME APPLY
LOG_ARCHIVE_DEST_2             VALID     IDLE

SQL> SELECT status FROM v$managed_standby WHERE process LIKE 'MRP%';

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

プライマリ・インスタンスの起動

プライマリ・インスタンスを起動します。スタンバイ・インスタンスのalertログには接続が復活したことを示すメッセージが出力されます。

2020-12-10T10:27:06.331100+09:00
 rfs (PID:44277): Primary database is in MAXIMUM PERFORMANCE mode
2020-12-10T10:27:06.365077+09:00
 rfs (PID:44277): Selected LNO:11 for T-1.S-78 dbid 2941070004 branch 1055164276
2020-12-10T10:27:06.380011+09:00
 rfs (PID:44275): Selected LNO:12 for T-1.S-77 dbid 2941070004 branch 1055164276
2020-12-10T10:27:06.533684+09:00
PR00 (PID:42840): Media Recovery Waiting for T-1.S-78 (in transit)
2020-12-10T10:27:06.541579+09:00
Recovery of Online Redo Log: Thread 1 Group 11 Seq 78 Reading mem 0
  Mem# 0: /u01/app/oracle/oradata/O19S/slog11.dbf
2020-12-10T10:27:06.577222+09:00
ARC0 (PID:42564): Archived Log entry 70 added for T-1.S-77 ID 0xaf4d09b4 LAD:1

スタンバイ・インスタンスのV\$ARCHIVE_DEST_STATEビューやV\$MANAGED_STANDBYビューには何の変化もありません。

MANAGED STANDBYのキャンセルと復帰

MANAGED STANDBYのキャンセル

スタンバイ・インスタンスでALTER DATABASE RECOVER MANAGED STANDBY CANCEL文を実行します。スタンバイ・インスタンスのalertログには処理の完了メッセージが出力されます。

2020-12-10T10:37:10.267347+09:00
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL
2020-12-10T10:37:10.270076+09:00
PR00 (PID:42840): MRP0: Background Media Recovery cancelled with status 16037
2020-12-10T10:37:10.275652+09:00
Errors in file /u01/app/oracle/diag/rdbms/o19s/O19S/trace/O19S_pr00_42840.trc:
ORA-16037: user requested cancel of managed recovery operation
PR00 (PID:42840): Managed Standby Recovery not using Real Time Apply
Recovery interrupted!
Recovered data files to a consistent state at change 7685343
stopping change tracking
2020-12-10T10:37:10.351243+09:00
Errors in file /u01/app/oracle/diag/rdbms/o19s/O19S/trace/O19S_pr00_42840.trc:
ORA-16037: user requested cancel of managed recovery operation
2020-12-10T10:37:10.464808+09:00
Background Media Recovery process shutdown (O19S)
2020-12-10T10:37:11.269815+09:00
Managed Standby Recovery Canceled (O19S)
Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL

V\$ARCHIVE_DEST_STATUSビューのlog_archive_dest_1のRECOVERY_MODE列はIDLEに戻ります。MRPプロセスは停止するためV\$MANAGED_STANDBYビューからはエントリーが消えます。

SQL> SELECT dest_name, status, recovery_mode FROM v$archive_dest_status WHERE dest_id IN (1, 2) ORDER BY 1;

DEST_NAME                      STATUS    RECOVERY_MODE
------------------------------ --------- ----------------------------------
LOG_ARCHIVE_DEST_1             VALID     IDLE
LOG_ARCHIVE_DEST_2             VALID     IDLE

SQL> SELECT status FROM v$managed_standby WHERE process LIKE 'MRP%';

レコードが選択されませんでした。

プライマリ・インスタンスのV\$ARCHIVE_DEST_STATUSのRECOVERY_MODE列もIDLEになります。

SQL> SELECT dest_name, status, recovery_mode FROM v$archive_dest_status WHERE dest_id IN (1, 2) ORDER BY 1;

DEST_NAME                      STATUS    RECOVERY_MODE
------------------------------ --------- ----------------------------------
LOG_ARCHIVE_DEST_1             VALID     IDLE
LOG_ARCHIVE_DEST_2             VALID     IDLE

MANAGED STANDBYの復帰

スタンバイ・インスタンスでALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT文を実行します。スタンバイ・インスタンスのalertログには処理完了のメッセージが出力されます。

2020-12-10T10:42:33.150775+09:00
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT
2020-12-10T10:42:33.151156+09:00
Attempt to start background Managed Standby Recovery process (O19S)
Starting background process MRP0
2020-12-10T10:42:33.159680+09:00
MRP0 started with pid=8, OS id=45250
2020-12-10T10:42:33.160435+09:00
Background Managed Standby Recovery process started (O19S)
2020-12-10T10:42:38.175418+09:00
 Started logmerger process
2020-12-10T10:42:38.182064+09:00
PR00 (PID:45256): Managed Standby Recovery starting Real Time Apply
2020-12-10T10:42:38.220576+09:00
Parallel Media Recovery started with 4 slaves
2020-12-10T10:42:38.336731+09:00
stopping change tracking
PR00 (PID:45256): Media Recovery Waiting for T-1.S-78 (in transit)
2020-12-10T10:42:38.485182+09:00
Recovery of Online Redo Log: Thread 1 Group 11 Seq 78 Reading mem 0
  Mem# 0: /u01/app/oracle/oradata/O19S/slog11.dbf
2020-12-10T10:42:39.167813+09:00
Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT

プライマリ・インスタンスのalertログには何も出力されませんが、V\$ARCHIVE_DEST_STATUSビューは変化します。

SQL> SELECT dest_name, status, recovery_mode FROM v$archive_dest_status WHERE dest_id IN (1, 2) ORDER BY 1;

DEST_NAME                      STATUS    RECOVERY_MODE
------------------------------ --------- ----------------------------------
LOG_ARCHIVE_DEST_1             VALID     IDLE
LOG_ARCHIVE_DEST_2             VALID     MANAGED REAL TIME APPLY
1
0
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
1
0