使用例13: Data Guard構成の監視

次のステップでは、SHOWコマンドとデータベースの監視可能なプロパティを使用し、障害状況を識別して解決するために必要なタスクを示します。

構成の監視(タスク1): 構成のステータス・チェック

ブローカ構成のステータスは、ブローカ構成のすべてのデータベースとインスタンスのステータスが集計されたものです。

ブローカ構成のステータスは、ブローカ構成内のすべての構成メンバーについての集約されたステータスです。

最初に構成ステータスをチェックすると、さらに処置が必要かどうかを判断できます。SUCCESSステータスは、ブローカ構成内のすべてが正しく機能していることを示しています。WARNINGまたはERRORステータスは、構成内のどれかが正しく機能していないか確認を必要としていることを示しています。

たとえば、スタンバイ・データベースに複数の警告があるとします:

DGMGRL> SHOW CONGIGURATION 

Configuration - DRSolution

  Protection Mode: MaxAvailability
  Members:
  South_Sales - Primary database
    Warning: ORA-16627: No member available to support the protection mode.

    North_Sales - Physical standby database (disabled)
      ORA-16906: The member was shutdown.

Fast-Start Failover:  Disabled

Configuration Status:
WARNING   (status updated 31 seconds ago)
To resolve these warnings, restart standby database North_Sales and recheck the configuration status again.

DGMGRL> SHOW CONFIGURATION;

Configuration - DRSolution

  Protection Mode: MaxAvailability
  Members:
  South_Sales - Primary database
    North_Sales - Physical standby database 

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 19 seconds ago)

構成の監視(タスク2): データベースのステータス・チェック

SHOW CONFIGURATIONからの出力のみでは問題の解決方法がわからない場合があります。プライマリ・データベースの警告を確認するには、SHOW DATABASEコマンドを使用してステータスを表示します。

DGMGRL> SHOW CONFIGURATION;

Configuration - DRSolution

  Protection Mode: MaxAvailability
  Members:
  South_Sales - Primary database
    Error: ORA-16810: Multiple errors or warnings detected for the member.

    North_Sales - Physical standby database 
      Warning: ORA-16857: member disconnected from redo source for longer than specified threshold

Fast-Start Failover:  Disabled

Configuration Status:
ERROR   (status updated 25 seconds ago)

この例では、SHOW CONFIGURATIONによってプライマリ・データベースSouth_Salesに関する複数の問題を特定しています。複数のエラーまたは警告がある場合は、次のようにSHOW DATABASEコマンドを使用してそれらを特定します:

DGMGRL> SHOW DATABASE 'South_Sales';

Database - South_Sales

  Role:                PRIMARY
  Intended State:      TRANSPORT-ON
  Redo Rate:           (unknown)

  Instance(s):
    SouthSales
      Error: ORA-16738: Redo transport service for member "North_Sales" is not running.

  Database Warning(s):
    ORA-16629: Database reports a different protection level from the protection mode.

Database Status:
ERROR

構成の監視(タスク3): 監視可能なプロパティLogXptStatusのチェック

ステップ2のSHOW DATABASEの出力には、エラーORA-16737の警告が示されています。

LogXptStatusブローカ監視可能プロパティは、ORA-16738 REDO転送エラーの具体的な原因を特定するのに役立ちます:

DGMGRL> SHOW DATABASE 'South_Sales' LogXptStatus;
LOG TRANSPORT STATUS
PRIMARY_INSTANCE_NAME STANDBY_DATABASE_NAME     STATUS                ERROR 
          SouthSales          North_Sales   DEFERRED

スタンバイ・データベースNorth_SalesへのREDO転送は現在遅延しています。データベースSouth_Salesのアラート・ログを調べると、log_archive_dest_2へのREDO転送が遅延していることがわかります。

2022-12-20T02:42:38.960566+00:00
ALTER SYSTEM SET log_archive_dest_state_2='DEFER' SCOPE=BOTH;
2022-12-20T02:42:41.650221+00:00
LGWR (PID:3620211): LAD:2 no longer supports SYNCHRONIZATION [krsl.c:7650]

または、DGMGRL SHOW DATABASE ... PARAMETERコマンドを使用すると、データベースSouth_Salesに対して構成されているREDO転送先の状態をチェックして、遅延しているログ・アーカイブ先を特定できます。

DGMGRL> CONNECT sys@south_sales
Password: password
Connected to "South_Sales"
Connected as SYSDBA.
DGMGRL> SHOW DATABASE 'South_Sales' PARAMETER log_archive_dest_state_2;
  log_archive_dest_state_2 = 'DEFER'
この問題を解決するには、次のように、遅延している宛先を有効にします:
DGMGRL> SQL 'alter system set log_archive_dest_state_2=ENABLE scope=both';
Succeeded.
DGMGRL> SHOW CONFIGURATION

Configuration - DRSolution

  Protection Mode: MaxAvailability
  Members:
  South_Sales - Primary database
    North_Sales - Physical standby database 

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 26 seconds ago)

構成の監視(タスク4): 監視可能なプロパティInconsistentLogXptPropsのチェック

REDO転送のデータベース・プロパティReopenSecsについて一貫性のない値を識別するには、監視可能なプロパティInconsistentLogXptPropsを使用します。

これは、たとえばステップ2のSHOW DATABASEの出力に示された警告がORA-16715の場合に役立ちます。

DGMGRL> SHOW DATABASE 'North_Sales' 'InconsistentLogXptProps';
INCONSISTENT LOG TRANSPORT PROPERTIES
 INSTANCE_NAME  STANDBY_NAME  PROPERTY_NAME  MEMORY_VALUE  BROKER_VALUE 
   south_sales1   South_Sales     ReopenSecs           600           300

現行のデータベース・メモリー値(600)は、Oracle Data Guard Brokerのプロパティ値(300)と一致しません。ブローカのプロパティ値が正しいと判断した場合は、次の例に示すように、スタンバイ・データベースのプロパティを同じ値で再編集して一貫性のある値にできます。

DGMGRL> EDIT DATABASE 'South_Sales' SET PROPERTY 'ReopenSecs'=300;
Property "ReopenSecs" updated

スタンバイ・データベースを再び有効化するか、プライマリ・データベースの状態をTRANSPORT-ONにリセットして、非一貫性を解決することもできます。