LoginSignup
2
1

More than 5 years have passed since last update.

Oracle Database Physical Data Guard スイッチオーバー手順(12cR1)

Posted at

はじめに

以下の続き

Oracle Database Physical Data Guard 作成手順(12cR1)
https://qiita.com/mon_tu/items/ca5d6b341835d262e3ff

首都オーディンにあるデータベース(odin)の災対環境として、イゼルローン要塞上にフィジカルスタンバイデータベース(iserlohn)が構成されている。
オーディンからイゼルローンへのスイッチオーバー、またスイッチバックを行う。

項目 プライマリ スタンバイ
DB_NAME odin odin
DB_UNIQUE_NAME odin iserlohn
hostname ol121p ol121s
service_names odin.us.oracle.com iserlohn.us.oracle.com

スイッチオーバーの実行

プライマリ(オーディン)で事前検証

構成の確認

SQL> select * from v$dataguard_config;

DB_UNIQUE_NAME                 PARENT_DBUN                    DEST_ROLE         CURRENT_SCN     CON_ID
------------------------------ ------------------------------ ----------------- ----------- ----------
odin                           NONE                           PRIMARY DATABASE      4598308          0
iserlohn                       odin                           PHYSICAL STANDBY      4598430          0

スイッチオーバーの文にはVERIFYオプションがあり、スイッチオーバーに必要な多くの条件のチェックが実行される.
「Database altered.」が出力されれば問題なし。

SQL> ALTER DATABASE SWITCHOVER TO iserlohn VERIFY;
Database altered.

例えば、MRPを停止した状態で実行するとORA-16470が発生する。アラートログにも出力される。

SQL> ALTER DATABASE SWITCHOVER TO iserlohn VERIFY;
ALTER DATABASE SWITCHOVER TO iserlohn VERIFY
*
ERROR at line 1:
ORA-16470: Redo Apply is not running on switchover target

スイッチオーバー

プライマリ・データベースでスイッチオーバーを開始する。

SQL> ALTER DATABASE SWITCHOVER TO iserlohn;

Database altered.

アラートログ。
プライマリ側は最後にabortでインスタンス停止される。

ALTER DATABASE SWITCHOVER TO iserlohn
Mon Sep 24 12:17:13 2018
Starting switchover [Process ID: 26118]

<中略>
Switchover: Primary controlfile converted to standby controlfile succesfully.
Switchover: Complete - Database shutdown required
Sending request(convert to primary database) to switchover target ISERLOHN
Switchover complete. Database shutdown required
USER (ospid: 26118): terminating the instance
Mon Sep 24 12:17:25 2018
Instance terminated by USER, pid = 26118
Completed: ALTER DATABASE SWITCHOVER TO iserlohn
Shutting down instance (abort)
License high water mark = 6
Mon Sep 24 12:17:25 2018
Instance shutdown complete

新プライマリ(イゼルローン要塞)データベースのオープン

新プライマリ側はマウント状態なのでデータベースをOPENする。

SQL> select * from v$dataguard_config;

DB_UNIQUE_NAME                 PARENT_DBUN                    DEST_ROLE         CURRENT_SCN     CON_ID
------------------------------ ------------------------------ ----------------- ----------- ----------
iserlohn                       NONE                           PRIMARY DATABASE            0          0
odin                           iserlohn                       UNKNOWN                     0          0
SQL> select DBID,NAME,LOG_MODE,OPEN_MODE,DATABASE_ROLE,FORCE_LOGGING,CURRENT_SCN from v$database;

      DBID NAME      LOG_MODE     OPEN_MODE            DATABASE_ROLE    FORCE_LOGGING                           CURRENT_SCN
---------- --------- ------------ -------------------- ---------------- --------------------------------------- -----------
 884158366 ODIN      ARCHIVELOG   MOUNTED              PRIMARY          YES                                               0

SQL> alter database open;

Database altered.

SQL> select DBID,NAME,LOG_MODE,OPEN_MODE,DATABASE_ROLE,FORCE_LOGGING,CURRENT_SCN from v$database;

      DBID NAME      LOG_MODE     OPEN_MODE            DATABASE_ROLE    FORCE_LOGGING                           CURRENT_SCN
---------- --------- ------------ -------------------- ---------------- --------------------------------------- -----------
 884158366 ODIN      ARCHIVELOG   READ WRITE           PRIMARY          YES                                         4700295

SQL>

新スタンバイ(オーディン)のデータベースのマウントとREDO適用の開始

新スタンバイ側はデータベースが停止しているので、再度接続し、MOUNT→MRPの起動を実施する。

SQL>  STARTUP MOUNT;
ORACLE instance started.

Total System Global Area  729808896 bytes
Fixed Size                  2928680 bytes
Variable Size             520097752 bytes
Database Buffers          201326592 bytes
Redo Buffers                5455872 bytes
Database mounted.
SQL>
SQL> alter database recover managed standby database disconnect;

Database altered.

それぞれのロールを確認する。

SQL> select * from v$dataguard_config;

DB_UNIQUE_NAME                 PARENT_DBUN                    DEST_ROLE         CURRENT_SCN     CON_ID
------------------------------ ------------------------------ ----------------- ----------- ----------
iserlohn                       NONE                           PRIMARY DATABASE      4702359          0
odin                           iserlohn                       PHYSICAL STANDBY      4701868          0

スイッチバックの実行(元のロールに戻す)

逆をするだけなのでさらっと。

プライマリ(イゼルローン要塞)で事前検証

SQL> ALTER DATABASE SWITCHOVER TO odin VERIFY;

Database altered.

スイッチオーバー

SQL> ALTER DATABASE SWITCHOVER TO odin ;

Database altered.

新プライマリ(オーディン)データベースのオープン

SQL> ALTER DATABASE OPEN;

Database altered.

新スタンバイ(イゼルローン要塞)のデータベースのマウントとREDO適用の開始

SQL> STARTUP MOUNT
ORACLE instance started.

Total System Global Area  729808896 bytes
Fixed Size                  2928680 bytes
Variable Size             566235096 bytes
Database Buffers          155189248 bytes
Redo Buffers                5455872 bytes
Database mounted.
SQL> alter database recover managed standby database disconnect;

Database altered.

ロールの確認。

SQL> select * from v$dataguard_config;

DB_UNIQUE_NAME                 PARENT_DBUN                    DEST_ROLE
------------------------------ ------------------------------ -----------------
CURRENT_SCN     CON_ID
----------- ----------
odin                           NONE                           PRIMARY DATABASE
    4804578          0

iserlohn                       odin                           PHYSICAL STANDBY
    4803587          0

参考

参考マニュアル

Oracle® Data Guard概要および管理 12c リリース1 (12.1) B71304-07
9.2.1 フィジカル・スタンバイ・データベースへのスイッチオーバーの実行
https://docs.oracle.com/cd/E57425_01/121/SBYDB/role_management.htm

2
1
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
2
1