忘れかけのIT備忘録

今まで学んできた知識や小技、なるほど!と思ったことをメモするブログです。

Data Guardのスイッチオーバー/スイッチバック検証

Data Guardのスイッチオーバー/スイッチバックについて、机上の知識はあるものの、実務経験が無いため、実際の動きを検証しました。

スイッチオーバーは、プライマリDBとスタンバイDBでロールを入れ替えます。
プライマリ側のシステムメンテナンスなど、プライマリ側のデータベースが使用できなくなる状況が発生する場合、事前にスイッチオーバーすることでユーザはシステムメンテナンスに影響されることなくデータベースへアクセスできます。
スイッチオーバーはロールの切り替え、スイッチバックはロールの切り戻しです。

■検証環境、前提
前回(Data Guardのスナップショット・スタンバイ検証 - 忘れかけのIT備忘録)と同じです

■設定情報

現プライマリDB
#OCRのロール、開始モード
[oracle@node1 ~]$ srvctl config database -db orcl
一意のデータベース名: orcl
データベース名: orcl
Oracleホーム: /u01/app/oracle/product/12.1.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/ORCL/PARAMETERFILE/spfileORCL.ora
パスワード・ファイル: +DATA/ORCL/PASSWORD/orapwORCL
ドメイン
開始オプション: open
停止オプション: immediate
データベース・ロール: PRIMARY
管理ポリシー: AUTOMATIC
サーバー・プール: 
ディスク・グループ: DATA
マウント・ポイントのパス: 
サービス: 
タイプ: RAC
開始の同時実行性: 
停止の同時実行性: 
OSDBAグループ: dba
OSOPERグループ: oper
データベース・インスタンス: orcl1,orcl2
構成されたノード: node1,node2
データベースは管理者によって管理されています

SQL> --制御ファイルのロール
SQL> select db_unique_name, database_role from v$database;

DB_UNIQUE_NAME       DATABASE_ROLE
-------------------- ------------------------------------------------
orcl                 PRIMARY

SQL> --適用モード(リアルタイム適用)
SQL> select dest_name, recovery_mode from v$archive_dest_status where type = 'PHYSICAL';

DEST_NAME                      RECOVERY_MODE
------------------------------ ------------------------------
LOG_ARCHIVE_DEST_3             MANAGED REAL TIME APPLY

SQL> --スイッチオーバー可能かどうか
SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
------------------------------------------------------------
TO STANDBY

SQL> --保護モード(最大パフォーマンスモード)
SQL> select protection_mode, protection_level from v$database;

PROTECTION_MODE                PROTECTION_LEVEL
------------------------------ ------------------------------
MAXIMUM PERFORMANCE            MAXIMUM PERFORMANCE

現スタンバイDB
#OCRのロール、開始モード
[oracle@dr-node1 ~]$ srvctl config database -db orcldr
一意のデータベース名: ORCLDR
データベース名: ORCLDR
Oracleホーム: /u01/app/oracle/product/12.1.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/ORCLDR/PARAMETERFILE/spfileORCLDR.ora
パスワード・ファイル: +DATA/ORCLDR/PASSWORD/orapwORCLDR
ドメイン
開始オプション: mount
停止オプション: immediate
データベース・ロール: PHYSICAL_STANDBY
管理ポリシー: AUTOMATIC
サーバー・プール: 
ディスク・グループ: DATA
マウント・ポイントのパス: 
サービス: 
タイプ: RAC
開始の同時実行性: 
停止の同時実行性: 
OSDBAグループ: dba
OSOPERグループ: oper
データベース・インスタンス: orcldr1,orcldr2
構成されたノード: dr-node1,dr-node2
データベースは管理者によって管理されています

SQL> --制御ファイルのロール
SQL> select db_unique_name, database_role from v$database;

DB_UNIQUE_NAME       DATABASE_ROLE
-------------------- ------------------------------------------------
orcldr               PHYSICAL STANDBY

SQL> --管理リカバリモードかどうか
SQL> select client_process,process,thread#,sequence#,status from v$managed_standby where process like 'MRP%';

CLIENT_PROCESS       PROCESS                 THREAD#  SEQUENCE# STATUS
-------------------- -------------------- ---------- ---------- --------------------
N/A                  MRP0                          1         74 APPLYING_LOG

SQL> --スタンバイREDO状態
SQL> select group#, thread#, sequence#, archived, status from v$standby_log order by group#, thread#;

    GROUP#    THREAD#  SEQUENCE# ARCHIVED  STATUS
---------- ---------- ---------- --------- --------------------
         5          1          0 NO        UNASSIGNED
         6          1         74 YES       ACTIVE
         7          1          0 NO        UNASSIGNED
         8          2         63 YES       ACTIVE
         9          2          0 NO        UNASSIGNED
        10          2          0 NO        UNASSIGNED

 

■検証パターン
①スイッチオーバー
スイッチバック

■検証
①スイッチオーバー
スイッチオーバーでプライマリDBとスタンバイDBのロールが入れ替えられるか検証します

【検証手順】
1. [現プライマリDB]スイッチオーバー事前検証
2. [現プライマリDB]スイッチオーバー
3. [新スタンバイDB]OCRのロール、開始オプション変更
4. [新プライマリDB]OCRのロール、開始オプション変更
5. [新プライマリDB]DB再起動
6. [新スタンバイDB]DB起動
7. [新スタンバイDB]MRP起動

【想定】
スイッチオーバーでプライマリDBとスタンバイDBのロールが入れ替えられること
・現プライマリDB(orcl)がスタンバイロールになること
・現スタンバイDB(orcldr)がプライマリロールになること

【検証結果】
スイッチオーバーでプライマリDBとスタンバイDBのロールが入れ替えられた
・現プライマリDB(orcl)がスタンバイロールになった
・現スタンバイDB(orcldr)がプライマリロールになった

【作業ログ】

1. [現プライマリDB]スイッチオーバー事前検証
SQL> alter database switchover to orcldr verify;

データベースが変更されました。

2. [現プライマリDB]スイッチオーバー
[oracle@node1 ~]$ srvctl config database -db orcl
一意のデータベース名: orcl
データベース名: orcl
Oracleホーム: /u01/app/oracle/product/12.1.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/ORCL/PARAMETERFILE/spfileORCL.ora
パスワード・ファイル: +DATA/ORCL/PASSWORD/orapwORCL
ドメイン
開始オプション: open
停止オプション: immediate
データベース・ロール: PRIMARY
管理ポリシー: AUTOMATIC
サーバー・プール: 
ディスク・グループ: DATA
マウント・ポイントのパス: 
サービス: 
タイプ: RAC
開始の同時実行性: 
停止の同時実行性: 
OSDBAグループ: dba
OSOPERグループ: oper
データベース・インスタンス: orcl1,orcl2
構成されたノード: node1,node2
データベースは管理者によって管理されています

[oracle@node1 ~]$ srvctl status database -db orcl
インスタンスorcl1はノードnode1で実行中です。
インスタンスorcl2はノードnode2で実行中です。

SQL> select db_unique_name, database_role, open_mode from v$database;

DB_UNIQUE_NAME       DATABASE_ROLE                                    OPEN_MODE
-------------------- ------------------------------------------------ ------------------------------------------------------------
orcl                 PRIMARY                                          READ WRITE

SQL> alter database switchover to orcldr;

データベースが変更されました。

SQL> select db_unique_name, database_role, open_mode from v$database;
select db_unique_name, database_role, open_mode from v$database
*
行1でエラーが発生しました。:
ORA-01034: ORACLE not available
プロセスID: 15175
セッションID: 128、シリアル番号: 20203
★スイッチオーバー後、自動的にプライマリDB停止した

[oracle@node1 ~]$ srvctl status database -db orcl
インスタンスorcl1はノードnode1で実行されていません。
インスタンスorcl2はノードnode2で実行されていません。

3. [新スタンバイDB]OCRのロール、開始オプション変更
OCRに登録されている開始オプションとロールはプライマリ時の状態のため、手動でスタンバイ用に変更します

[oracle@node1 ~]$ srvctl config database -db orcl
一意のデータベース名: orcl
データベース名: orcl
Oracleホーム: /u01/app/oracle/product/12.1.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/ORCL/PARAMETERFILE/spfileORCL.ora
パスワード・ファイル: +DATA/ORCL/PASSWORD/orapwORCL
ドメイン
開始オプション: open
停止オプション: immediate
データベース・ロール: PRIMARY
管理ポリシー: AUTOMATIC
サーバー・プール: 
ディスク・グループ: DATA
マウント・ポイントのパス: 
サービス: 
タイプ: RAC
開始の同時実行性: 
停止の同時実行性: 
OSDBAグループ: dba
OSOPERグループ: oper
データベース・インスタンス: orcl1,orcl2
構成されたノード: node1,node2
データベースは管理者によって管理されています

[oracle@node1 ~]$ srvctl modify database -db orcl -role PHYSICAL_STANDBY -startoption mount
[oracle@node1 ~]$ srvctl config database -db orcl
一意のデータベース名: orcl
データベース名: orcl
Oracleホーム: /u01/app/oracle/product/12.1.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/ORCL/PARAMETERFILE/spfileORCL.ora
パスワード・ファイル: +DATA/ORCL/PASSWORD/orapwORCL
ドメイン
開始オプション: mount
停止オプション: immediate
データベース・ロール: PHYSICAL_STANDBY
管理ポリシー: AUTOMATIC
サーバー・プール: 
ディスク・グループ: DATA
マウント・ポイントのパス: 
サービス: 
タイプ: RAC
開始の同時実行性: 
停止の同時実行性: 
OSDBAグループ: dba
OSOPERグループ: oper
データベース・インスタンス: orcl1,orcl2
構成されたノード: node1,node2
データベースは管理者によって管理されています

4. [新プライマリDB]OCRのロール、開始オプション変更
OCRに登録されている開始オプションとロールはスタンバイ時の状態のため、手動でプライマリ用に変更します

[oracle@dr-node1 ~]$ srvctl config database -db orcldr
一意のデータベース名: ORCLDR
データベース名: ORCLDR
Oracleホーム: /u01/app/oracle/product/12.1.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/ORCLDR/PARAMETERFILE/spfileORCLDR.ora
パスワード・ファイル: +DATA/ORCLDR/PASSWORD/orapwORCLDR
ドメイン
開始オプション: mount
停止オプション: immediate
データベース・ロール: PHYSICAL_STANDBY
管理ポリシー: AUTOMATIC
サーバー・プール: 
ディスク・グループ: DATA
マウント・ポイントのパス: 
サービス: 
タイプ: RAC
開始の同時実行性: 
停止の同時実行性: 
OSDBAグループ: dba
OSOPERグループ: oper
データベース・インスタンス: orcldr1,orcldr2
構成されたノード: dr-node1,dr-node2
データベースは管理者によって管理されています

[oracle@dr-node1 ~]$ srvctl modify database -db orcldr -role PRIMARY -startoption open
[oracle@dr-node1 ~]$ srvctl config database -db orcldr
一意のデータベース名: ORCLDR
データベース名: ORCLDR
Oracleホーム: /u01/app/oracle/product/12.1.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/ORCLDR/PARAMETERFILE/spfileORCLDR.ora
パスワード・ファイル: +DATA/ORCLDR/PASSWORD/orapwORCLDR
ドメイン
開始オプション: open
停止オプション: immediate
データベース・ロール: PRIMARY
管理ポリシー: AUTOMATIC
サーバー・プール: 
ディスク・グループ: DATA
マウント・ポイントのパス: 
サービス: 
タイプ: RAC
開始の同時実行性: 
停止の同時実行性: 
OSDBAグループ: dba
OSOPERグループ: oper
データベース・インスタンス: orcldr1,orcldr2
構成されたノード: dr-node1,dr-node2
データベースは管理者によって管理されています

5. [新プライマリDB]DB再起動
MOUNT状態のため、DB再起動します

SQL> select instance_name,status from v$instance;

INSTANCE_NAME                                    STATUS
------------------------------------------------ ------------------------------------
orcldr1                                          MOUNTED

SQL> select db_unique_name, database_role, open_mode from v$database;

DB_UNIQUE_NAME       DATABASE_ROLE                                    OPEN_MODE
-------------------- ------------------------------------------------ ------------------------------------------------------------
orcldr               PRIMARY                                          MOUNTED

[oracle@dr-node1 ~]$ srvctl status database -db orcldr
インスタンスorcldr1はノードdr-node1で実行中です。
インスタンスorcldr2はノードdr-node2で実行中です。

[oracle@dr-node1 ~]$ srvctl stop database -db orcldr
[oracle@dr-node1 ~]$ srvctl status database -db orcldr
インスタンスorcldr1はノードdr-node1で実行されていません。
インスタンスorcldr2はノードdr-node2で実行されていません。

[oracle@dr-node1 ~]$ srvctl start database -db orcldr
[oracle@dr-node1 ~]$ srvctl status database -db orcldr
インスタンスorcldr1はノードdr-node1で実行中です。
インスタンスorcldr2はノードdr-node2で実行中です。

SQL> select instance_name,status from v$instance;

INSTANCE_NAME                                    STATUS
------------------------------------------------ ------------------------------------
orcldr1                                          OPEN

SQL> select db_unique_name, database_role, open_mode from v$database;

DB_UNIQUE_NAME       DATABASE_ROLE                                    OPEN_MODE
-------------------- ------------------------------------------------ ------------------------------------------------------------
orcldr               PRIMARY                                          READ WRITE

6. [新スタンバイDB]DB起動
DB停止しているため、DB起動します

[oracle@node1 ~]$ sqlplus / as sysdba

アイドル・インスタンスに接続しました。

SQL> select instance_name,status from v$instance;
select instance_name,status from v$instance
*
行1でエラーが発生しました。:
ORA-01034: ORACLE not available
プロセスID: 0
セッションID: 0、シリアル番号: 0

[oracle@node1 ~]$ srvctl status database -db orcl
インスタンスorcl1はノードnode1で実行されていません。
インスタンスorcl2はノードnode2で実行されていません。

[oracle@node1 ~]$ srvctl start database -db orcl
[oracle@node1 ~]$ srvctl status database -db orcl
インスタンスorcl1はノードnode1で実行中です。
インスタンスorcl2はノードnode2で実行中です。

SQL> select instance_name,status from v$instance;

INSTANCE_NAME                                    STATUS
------------------------------------------------ ------------------------------------
orcl1                                            MOUNTED

SQL> select db_unique_name, database_role, open_mode from v$database;

DB_UNIQUE_NAME       DATABASE_ROLE                                    OPEN_MODE
-------------------- ------------------------------------------------ ------------------------------------------------------------
orcl                 PHYSICAL STANDBY                                 MOUNTED

7. [新スタンバイDB]MRP起動
SQL> select client_process,process,thread#,sequence#,status from v$managed_standby where process = 'MRP0';

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

SQL> alter database recover managed standby database disconnect;

データベースが変更されました。

SQL> select client_process,process,thread#,sequence#,status from v$managed_standby where process = 'MRP0';

CLIENT_PROCESS       PROCESS                 THREAD#  SEQUENCE# STATUS
-------------------- -------------------- ---------- ---------- --------------------
N/A                  MRP0                          2         66 APPLYING_LOG

 

スイッチバック
スイッチバックでプライマリDBとスタンバイDBのロールが入れ替えられるか検証します

【検証手順】
1. [現プライマリDB]スイッチバック事前検証
2. [現プライマリDB]スイッチバック
3. [新スタンバイDB]OCRのロール、開始オプション変更
4. [新プライマリDB]OCRのロール、開始オプション変更
5. [新プライマリDB]DB再起動
6. [新スタンバイDB]DB起動
7. [新スタンバイDB]MRP起動

【想定】
スイッチバックでプライマリDBとスタンバイDBのロールが入れ替えられること
・現プライマリDB(orcldr)がスタンバイロールになること
・現スタンバイDB(orcl)がプライマリロールになること

【検証結果】
スイッチバックでプライマリDBとスタンバイDBのロールが入れ替えられた
・現プライマリDB(orcldr)がスタンバイロールになった
・現スタンバイDB(orcl)がプライマリロールになった

【作業ログ】

1. [現プライマリDB]スイッチバック事前検証
SQL> alter database switchover to orcl verify;

データベースが変更されました。

2. [現プライマリDB]スイッチバック
[oracle@dr-node1 ~]$ srvctl status database -db orcldr
インスタンスorcldr1はノードdr-node1で実行中です。
インスタンスorcldr2はノードdr-node2で実行中です。

SQL> select db_unique_name, database_role, open_mode from v$database;

DB_UNIQUE_NAME       DATABASE_ROLE                                    OPEN_MODE
-------------------- ------------------------------------------------ ------------------------------------------------------------
orcldr               PRIMARY                                          READ WRITE

SQL> alter database switchover to orcl;

データベースが変更されました。

SQL> select db_unique_name, database_role, open_mode from v$database;
select db_unique_name, database_role, open_mode from v$database
*
行1でエラーが発生しました。:
ORA-01034: ORACLE not available
プロセスID: 18338
セッションID: 254、シリアル番号: 1411
スイッチバック後、自動的にプライマリDB停止した

3. [新スタンバイDB]OCRのロール、開始オプション変更
OCRに登録されている開始オプションとロールはプライマリ時の状態のため、手動でスタンバイ用に変更します

[oracle@dr-node1 ~]$ srvctl config database -db orcldr
一意のデータベース名: ORCLDR
データベース名: ORCLDR
Oracleホーム: /u01/app/oracle/product/12.1.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/ORCLDR/PARAMETERFILE/spfileORCLDR.ora
パスワード・ファイル: +DATA/ORCLDR/PASSWORD/orapwORCLDR
ドメイン
開始オプション: open
停止オプション: immediate
データベース・ロール: PRIMARY
管理ポリシー: AUTOMATIC
サーバー・プール: 
ディスク・グループ: DATA
マウント・ポイントのパス: 
サービス: 
タイプ: RAC
開始の同時実行性: 
停止の同時実行性: 
OSDBAグループ: dba
OSOPERグループ: oper
データベース・インスタンス: orcldr1,orcldr2
構成されたノード: dr-node1,dr-node2
データベースは管理者によって管理されています

[oracle@dr-node1 ~]$ srvctl modify database -db orcldr -role PHYSICAL_STANDBY -startoption mount
[oracle@dr-node1 ~]$ srvctl config database -db orcldr
一意のデータベース名: ORCLDR
データベース名: ORCLDR
Oracleホーム: /u01/app/oracle/product/12.1.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/ORCLDR/PARAMETERFILE/spfileORCLDR.ora
パスワード・ファイル: +DATA/ORCLDR/PASSWORD/orapwORCLDR
ドメイン
開始オプション: mount
停止オプション: immediate
データベース・ロール: PHYSICAL_STANDBY
管理ポリシー: AUTOMATIC
サーバー・プール: 
ディスク・グループ: DATA
マウント・ポイントのパス: 
サービス: 
タイプ: RAC
開始の同時実行性: 
停止の同時実行性: 
OSDBAグループ: dba
OSOPERグループ: oper
データベース・インスタンス: orcldr1,orcldr2
構成されたノード: dr-node1,dr-node2
データベースは管理者によって管理されています

4. [新プライマリDB]OCRのロール、開始オプション変更
OCRに登録されている開始オプションとロールはスタンバイ時の状態のため、手動でプライマリ用に変更します

[oracle@node1 ~]$ srvctl config database -db orcl
一意のデータベース名: orcl
データベース名: orcl
Oracleホーム: /u01/app/oracle/product/12.1.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/ORCL/PARAMETERFILE/spfileORCL.ora
パスワード・ファイル: +DATA/ORCL/PASSWORD/orapwORCL
ドメイン
開始オプション: mount
停止オプション: immediate
データベース・ロール: PHYSICAL_STANDBY
管理ポリシー: AUTOMATIC
サーバー・プール: 
ディスク・グループ: DATA
マウント・ポイントのパス: 
サービス: 
タイプ: RAC
開始の同時実行性: 
停止の同時実行性: 
OSDBAグループ: dba
OSOPERグループ: oper
データベース・インスタンス: orcl1,orcl2
構成されたノード: node1,node2
データベースは管理者によって管理されています

[oracle@node1 ~]$ srvctl modify database -db orcl -role PRIMARY -startoption open
[oracle@node1 ~]$ srvctl config database -db orcl
一意のデータベース名: orcl
データベース名: orcl
Oracleホーム: /u01/app/oracle/product/12.1.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/ORCL/PARAMETERFILE/spfileORCL.ora
パスワード・ファイル: +DATA/ORCL/PASSWORD/orapwORCL
ドメイン
開始オプション: open
停止オプション: immediate
データベース・ロール: PRIMARY
管理ポリシー: AUTOMATIC
サーバー・プール: 
ディスク・グループ: DATA
マウント・ポイントのパス: 
サービス: 
タイプ: RAC
開始の同時実行性: 
停止の同時実行性: 
OSDBAグループ: dba
OSOPERグループ: oper
データベース・インスタンス: orcl1,orcl2
構成されたノード: node1,node2
データベースは管理者によって管理されています

5. [新プライマリDB]DB再起動
MOUNT状態のため、DB再起動します

SQL> select instance_name,status from v$instance;

INSTANCE_NAME                                    STATUS
------------------------------------------------ ------------------------------------
orcl1                                            MOUNTED

SQL> select db_unique_name, database_role, open_mode from v$database;

DB_UNIQUE_NAME       DATABASE_ROLE                                    OPEN_MODE
-------------------- ------------------------------------------------ ------------------------------------------------------------
orcl                 PRIMARY                                          MOUNTED

[oracle@node1 ~]$ srvctl status database -db orcl
インスタンスorcl1はノードnode1で実行中です。
インスタンスorcl2はノードnode2で実行中です。

[oracle@node1 ~]$ srvctl stop database -db orcl
[oracle@node1 ~]$ srvctl status database -db orcl
インスタンスorcl1はノードnode1で実行されていません。
インスタンスorcl2はノードnode2で実行されていません。

[oracle@node1 ~]$ srvctl start database -db orcl
[oracle@node1 ~]$ srvctl status database -db orcl
インスタンスorcl1はノードnode1で実行中です。
インスタンスorcl2はノードnode2で実行中です。

SQL> select instance_name,status from v$instance;

INSTANCE_NAME                                    STATUS
------------------------------------------------ ------------------------------------
orcl1                                            OPEN

SQL> select db_unique_name, database_role, open_mode from v$database;

DB_UNIQUE_NAME       DATABASE_ROLE                                    OPEN_MODE
-------------------- ------------------------------------------------ ------------------------------------------------------------
orcl                 PRIMARY                                          READ WRITE

6. [新スタンバイDB]DB起動
DB停止しているため、DB起動します

[oracle@dr-node1 ~]$ sqlplus / as sysdba

アイドル・インスタンスに接続しました。

SQL> select instance_name,status from v$instance;
select instance_name,status from v$instance
*
行1でエラーが発生しました。:
ORA-01034: ORACLE not available
プロセスID: 0
セッションID: 0、シリアル番号: 0

[oracle@dr-node1 ~]$ srvctl status database -db orcldr
インスタンスorcldr1はノードdr-node1で実行されていません。
インスタンスorcldr2はノードdr-node2で実行されていません。

[oracle@dr-node1 ~]$ srvctl start database -db orcldr
[oracle@dr-node1 ~]$ srvctl status database -db orcldr
インスタンスorcldr1はノードdr-node1で実行中です。
インスタンスorcldr2はノードdr-node2で実行中です。

SQL> select instance_name,status from v$instance;

INSTANCE_NAME                                    STATUS
------------------------------------------------ ------------------------------------
orcldr1                                          MOUNTED

SQL> select db_unique_name, database_role, open_mode from v$database;

DB_UNIQUE_NAME       DATABASE_ROLE                                    OPEN_MODE
-------------------- ------------------------------------------------ ------------------------------------------------------------
orcldr               PHYSICAL STANDBY                                 MOUNTED

7. [新スタンバイDB]MRP起動
SQL> select client_process,process,thread#,sequence#,status from v$managed_standby where process = 'MRP0';

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

SQL> alter database recover managed standby database disconnect;

データベースが変更されました。

SQL> select client_process,process,thread#,sequence#,status from v$managed_standby where process = 'MRP0';

CLIENT_PROCESS       PROCESS                 THREAD#  SEQUENCE# STATUS
-------------------- -------------------- ---------- ---------- --------------------
N/A                  MRP0                          2         69 APPLYING_LOG

 

■参考資料
ロールの推移

■おわりに
スイッチオーバー後、制御ファイル上はロールが変更されました(入れ替わりました)が、OCR上のロールはスイッチオーバー前の状態でした。

前回のスナップショット・スタンバイ検証も制御ファイル上は「SNAPSHOT STANDBY」でしたが、OCR上は「PHYSICAL STANDBY」の状態だったかもしれません。
検証した製品バージョンによるかもしれませんが、クラスタ構成の場合は注意が必要です。