[Oracle Database] Data Guar Brokerによる基本管理コマンド

本記事の目的

Data Guar Broker(dgmgrlコマンド)による基本管理コマンドのメモです。

 

検証環境

先日、Hybrid Data Guardの手順で構築したDBCS上の環境を利用。

Oracle Databaseバージョン:19c

ホスト名 DB_UNIQUE_NAME 最初のロール
dg01 db19c_nrt19d Primary
dg02 db19c_nrt1gh Standby

 

 

基本管理コマンド

※dgmgrlはdg01(最初のロールがprimary)で実施。

 

CONNECT

DGMGRLのCONNECTコマンドを使用すると、Data Guard Broker構成のメンバーであるデータベースまたは遠隔同期インスタンスに接続できます。

[oracle@dg01 ~]$ dgmgrl
DGMGRL for Linux: Release 19.0.0.0.0 - Production on Mon May 3 20:36:38 2021
Version 19.10.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

Welcome to DGMGRL, type "help" for information.
DGMGRL> connect sys
Password:
Connected to "db19c_nrt19d"
Connected as SYSDBA.

 

CREATE CONFIGURATION

CREATE CONFIGURATIONコマンドは、指定されたプライマリ・データベースを含む新しいブローカ構成を作成します。

・プライマリDBを登録

DGMGRL> CREATE CONFIGURATION dgconfig AS PRIMARY DATABASE IS db19c_nrt19d CONNECT IDENTIFIER IS db19c_nrt19d;
Configuration "dgconfig" created with primary database "db19c_nrt19d"

 

ADD DATABASE

DGMGRLのADD DATABASEコマンドは、既存のブローカ構成にスタンバイ・データベースを追加します。

・スタンバイDBを登録

DGMGRL> ADD DATABASE db19c_nrt1gh AS CONNECT IDENTIFIER IS db19c_nrt1gh MAINTAINED AS PHYSICAL;
Database "db19c_nrt1gh" added

 

ENABLE CONFIGURATION

ENABLE CONFIGURATIONコマンドは、すべてのデータベースを含むブローカ構成をブローカで管理できるようにします。

・有効化

DGMGRL> enable configuration;
Enabled.

 

SHOW CONFIGURATION

SHOW CONFIGURATIONコマンドは、ブローカ構成のサマリーおよびステータスを表示します。

DGMGRL> show configuration

Configuration - dgconfig

Protection Mode: MaxPerformance
Members:
db19c_nrt19d - Primary database
db19c_nrt1gh - Physical standby database

Fast-Start Failover: Disabled

Configuration Status:
SUCCESS (status updated 30 seconds ago)

⇒プライマリDBはdb19c_nrt19d 、スタンバイはdb19c_nrt1gh、ステータスは正常であることが確認できる。
もし設定不備などがあれば、警告メッセージが表示されるのでチェック。

 

SHOW DATABASE

SHOW DATABASEコマンドは、指定したデータベースとそのインスタンスに関する情報、プロパティ値または初期化パラメータ値を表示します。

・プライマリDBを指定

DGMGRL> show database db19c_nrt19d

Database - db19c_nrt19d

Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
db19c

Database Status:
SUCCESS

 

・スタンバイDBを指定

DGMGRL> show database db19c_nrt1gh

Database - db19c_nrt1gh

Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 10 seconds ago)
Apply Lag: 7 seconds (computed 10 seconds ago)
Average Apply Rate: 131.00 KByte/s
Real Time Query: OFF
Instance(s):
db19c

Database Status:
SUCCESS

⇒転送ラグ、適用ラグなども確認できる。

 

VERBOSEを付けると、より詳細な情報表示が可能。

DGMGRL> show database verbose "DB19C_NRT19D"

Database - db19c_nrt19d

  Role:               PRIMARY
  Intended State:     TRANSPORT-ON
  Instance(s):
    db19c

  Properties:
    DGConnectIdentifier             = 'db19c_nrt19d'
    ObserverConnectIdentifier       = ''
    FastStartFailoverTarget         = ''
    PreferredObserverHosts          = ''
    LogShipping                     = 'ON'
    RedoRoutes                      = ''
    LogXptMode                      = 'ASYNC'
    DelayMins                       = '0'
    Binding                         = 'optional'
    MaxFailure                      = '0'
    ReopenSecs                      = '300'
    NetTimeout                      = '30'
    RedoCompression                 = 'DISABLE'
    PreferredApplyInstance          = ''
    ApplyInstanceTimeout            = '0'
    ApplyLagThreshold               = '30'
    TransportLagThreshold           = '30'
    TransportDisconnectedThreshold  = '30'
    ApplyParallel                   = 'AUTO'
    ApplyInstances                  = '0'
    StandbyFileManagement           = ''
    ArchiveLagTarget                = '0'
    LogArchiveMaxProcesses          = '0'
    LogArchiveMinSucceedDest        = '0'
    DataGuardSyncLatency            = '0'
    LogArchiveTrace                 = '0'
    LogArchiveFormat                = ''
    DbFileNameConvert               = ''
    LogFileNameConvert              = ''
    ArchiveLocation                 = ''
    AlternateLocation               = ''
    StandbyArchiveLocation          = ''
    StandbyAlternateLocation        = ''
    InconsistentProperties          = '(monitor)'
    InconsistentLogXptProps         = '(monitor)'
    LogXptStatus                    = '(monitor)'
    SendQEntries                    = '(monitor)'
    RecvQEntries                    = '(monitor)'
    HostName                        = 'dg01'
    StaticConnectIdentifier         = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dg01)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db19c_nrt19d_DGMGRL.subnetpub01.vcn01.oraclevcn.com)(INSTANCE_NAME=db19c)(SERVER=DEDICATED)))'
    TopWaitEvents                   = '(monitor)'
    SidName                         = '(monitor)'

  Log file locations:
    Alert log               : /u01/app/oracle/diag/rdbms/db19c_nrt19d/db19c/trace/alert_db19c.log
    Data Guard Broker log   : /u01/app/oracle/diag/rdbms/db19c_nrt19d/db19c/trace/drcdb19c.log

Database Status:
SUCCESS

 

 

SHOW INSTANCE

SHOW INSTANCEコマンドは、指定したインスタンスの情報またはプロパティ値を表示します。

・プライマリDBのインスタンスを指定した実行例

DGMGRL> show instance verbose db19c on database db19c_nrt19d

Instance 'db19c' of database 'db19c_nrt19d'

  PFILE:
  Properties:
    HostName                        = 'dg01'
    StaticConnectIdentifier         = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dg01)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db19c_nrt19d_DGMGRL.subnetpub01.vcn01.oraclevcn.com)(INSTANCE_NAME=db19c)(SERVER=DEDICATED)))'
    TopWaitEvents                   = '(monitor)'
    SidName                         = '(monitor)'

  Log file locations:
    Alert log               : /u01/app/oracle/diag/rdbms/db19c_nrt19d/db19c/trace/alert_db19c.log
    Data Guard Broker log   : /u01/app/oracle/diag/rdbms/db19c_nrt19d/db19c/trace/drcdb19c.log

Instance Status:
SUCCESS


 

 

SWITCH OVER

SWITCHOVERコマンドを発行すると、現行のプライマリ・データベースがスタンバイ・データベースになり、指定したスタンバイ・データベースがプライマリ・データベースになります。

 

スタンバイロールのdb19c_nrt1ghにスイッチオーバーしてみる。

・まずはvalidate

DGMGRL> validate database db19c_nrt1gh

Database Role: Physical standby database
Primary Database: db19c_nrt19d

Ready for Switchover: Yes
Ready for Failover: Yes (Primary Running)

Managed by Clusterware:
db19c_nrt19d: YES
db19c_nrt1gh: YES

⇒Ready YESなので準備はOK

 

・スイッチオーバー実行

DGMGRL> switchover to db19c_nrt1gh
Performing switchover NOW, please wait...
Operation requires a connection to database "db19c_nrt1gh"
Connecting ...
Connected to "db19c_nrt1gh"
Connected as SYSDBA.
New primary database "db19c_nrt1gh" is opening...
Oracle Clusterware is restarting database "db19c_nrt19d" ...
Connected to "db19c_nrt19d"
Connected to "db19c_nrt19d"
Switchover succeeded, new primary is "db19c_nrt1gh"

 

・設定&状態確認

DGMGRL> show configuration

Configuration - dgconfig

Protection Mode: MaxPerformance
Members:
db19c_nrt1gh - Primary database★
db19c_nrt19d - Physical standby database★

Fast-Start Failover: Disabled

Configuration Status:
SUCCESS (status updated 3 seconds ago)

⇒プライマリとスタンバイが入れ替わってることを確認。

 

 

FAILOVER

FAILOVERコマンドは、指定したターゲットのスタンバイ・データベースをプライマリ・データベースのロールに遷移するフェイルオーバーを開始します。

 

db19c_nrt19dを指定してフェイルオーバーすることで、最初の状態に戻す。
(フェイルオーバーが必要な前提。実行可能ならスイッチオーバーでもちろん良い)

・まずはvalidate

DGMGRL> validate database db19c_nrt19d

Database Role: Physical standby database
Primary Database: db19c_nrt1gh

Ready for Switchover: Yes
Ready for Failover: Yes (Primary Running)

Managed by Clusterware:
db19c_nrt1gh: YES
db19c_nrt19d: YES

Standby Apply-Related Information:
Apply State: Running
Apply Lag: 10 seconds (computed 0 seconds ago)
Apply Delay: 0 minutes

 

・フェイルオーバー実行

DGMGRL> failover to db19c_nrt19d
Performing failover NOW, please wait...
Failover succeeded, new primary is "db19c_nrt19d"

⇒成功

 

・基本設定&状態確認

DGMGRL> show configuration

Configuration - dgconfig

Protection Mode: MaxPerformance
Members:
db19c_nrt19d - Primary database
db19c_nrt1gh - Physical standby database (disabled)★
ORA-16661: the standby database needs to be reinstated

Fast-Start Failover: Disabled

Configuration Status:
SUCCESS (status updated 5 seconds ago)

⇒プライマリはdb19c_nrt19dに変更されて、db19c_nrt1ghはdisabled状態となる

 

REINSTATE DATABASE

REINSTATE DATABASEコマンドは、ブローカ構成内で、データベースを現在のプライマリ・データベースの新規スタンバイ・データベースとして回復します。

 

・まずは旧プライマリDBをmountしなおす。

[dg02] SQL> shutdown abort
ORACLE instance shut down.
[dg02] SQL> startup mount
ORACLE instance started.

Total System Global Area 6442449464 bytes
Fixed Size 9148984 bytes
Variable Size 1140850688 bytes
Database Buffers 5268045824 bytes
Redo Buffers 24403968 bytes
Database mounted.

 

・そして、reinstate実行

DGMGRL> reinstate database db19c_nrt1gh
Reinstating database "db19c_nrt1gh", please wait...
Reinstatement of database "db19c_nrt1gh" succeeded

⇒成功!

 

・設定&状態確認

DGMGRL> show configuration

Configuration - dgconfig

Protection Mode: MaxPerformance
Members:
db19c_nrt19d - Primary database
db19c_nrt1gh - Physical standby database★

Fast-Start Failover: Disabled

Configuration Status:
SUCCESS (status updated 48 seconds ago)

⇒復旧も成功。

 

 

おまけ

フェイルオーバー実行時のORA-16600エラー

DGMGRL> failover to db19c_nrt19d
Performing failover NOW, please wait...
Error: ORA-16600: not connected to target standby database for failover

Failed.
Unable to failover

⇒ターゲットDBに接続していないと怒られる。

以下のようにdgmgrlでサービス名を指定して接続しなおした後に実行したら成功。

DGMGRL> connect sys@db19c_nrt19d
Password:
Connected to "db19c_nrt19d"
Connected as SYSDBA.

 

 

sqlplusを利用したDBロール確認

・dg01

[dg01] SQL> SELECT DB_UNIQUE_NAME,DATABASE_ROLE FROM V$DATABASE;

DB_UNIQUE_NAME DATABASE_ROLE
------------------------------ ----------------
db19c_nrt19d PRIMARY

 

・dg02

[dg02] SQL> SELECT DB_UNIQUE_NAME,DATABASE_ROLE FROM V$DATABASE;

DB_UNIQUE_NAME DATABASE_ROLE
------------------------------ ----------------
db19c_nrt1gh PHYSICAL STANDBY

 

sqlplusを利用した保護モード確認

[dg02] SQL> SELECT PROTECTION_MODE,PROTECTION_LEVEL FROM V$DATABASE;

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

 

sqlplusを利用したラグ確認

col value for a20
SQL>
select SOURCE_DB_UNIQUE_NAME, NAME, VALUE, TIME_COMPUTED, DATUM_TIME from v$dataguard_stats where name like '%lag';

SOURCE_DB_UNIQUE_NAME NAME VALUE TIME_COMPUTED DATUM_TIME
-------------------------------- -------------------------------- -------------------- ------------------------------ ------------------------------
db19c_nrt19d transport lag +00 00:00:00 05/03/2021 20:42:54 05/03/2021 20:42:40
db19c_nrt19d apply lag +00 00:00:07 05/03/2021 20:42:54 05/03/2021 20:42:40

 

 

参考情報

Hybrid Data Guard to Oracle Cloud Infrastructure オンプレミスの本番データベースとOracle Cloud InfrastructureのDBaaS BMまたはVMシェイプを使用したディザスタ・リカバリ

Data Guard 構成の監視 (Doc ID 2067047.1)

・マニュアル「Oracle® Data Guard Broker 19c

 

 

スポンサードリンク

Be the first to comment

Leave a Reply

Your email address will not be published.


*