C.8 プライマリ・スタンバイ構成の問題

Oracle Key Vaultの操作時に発生する一般的なプライマリ・スタンバイ構成関連の問題に関する次のトラブルシューティングのヒントを確認します。

C.8.1 制限モードで書込み操作が失敗する

プライマリ・サーバーまたはスタンバイ・サーバーが読取り専用制限モードの場合、キーの作成などの書込み操作が失敗します。

プライマリ・スタンバイ構成では、Oracle Key Vault管理コンソールのノードのステータスは読取り専用に制限されています。

考えられる原因

推奨ポートは、プライマリ・サーバーとスタンバイ・サーバーの間で開いていません。

解決策

  1. Oracle Key Vault管理コンソールのホーム・ページでアラートを確認します。
  2. サポート・ユーザーとしてSSHを使用してOracle Key Vaultサーバーにログインします。rootユーザーに切り替えて、プライマリ・サーバーとスタンバイ・サーバー間のネットワーク接続が成功したかどうかを確認します。
  3. ポート1521、1522、7443および5696を確認します。

    curl -v telnet://ipaddress:port
  4. コマンドが失敗した場合は、ポートの問題を修正し、ポートが使用可能で開いていることを確認します。
  5. Oracle Key Vaultサーバーを再起動します。
  6. 問題が解決したかどうかを確認します。

C.8.2 ファスト・スタート・フェイルオーバーの一時停止

Oracle Key Vaultにファスト・スタート・フェイルオーバーの一時停止エラーが表示されます。

Oracle Key Vaultサーバーでは、/var/log/messagesで、またはdgmgrlからshow_configurationコマンドを実行するときに、エラーが表示される場合があります。

ORA-16818: Fast-Start Failover suspended

考えられる原因

ファスト・スタート・フェイルオーバー操作が失敗したため、ORA-16818: Fast-Start Failover suspendedが表示されます。

解決策

  1. 手動でコンピュータをオフにするのではなく、「Power Off」オプションを使用して、制御された方法でプライマリ・サーバーを正常にシャットダウンします。プライマリ・サーバーの電源を切断すると、ファスト・スタート・フェイルオーバー機能を実行できず、ORA-16818エラーが発生します。
  2. 正常な停止操作では、プライマリ・サーバーのフェイルオーバー・ステータスは一時停止状態になり、プライマリ・サーバーが使用可能になるまでスタンバイが無期限に待機します。これは、ファスト・スタート・フェイルオーバー(FSFO)操作で予期される動作です。

    ノート:

    Oracle Data Guardで定義されたスプリット・ブレイン・シナリオを回避します。
  3. プライマリ・サーバーが予期せず停止した場合にのみ、FSFOの操作エラーが発生する設計になっています。
  4. SQL*PlusSHUTDOWN IMMEDIATEまたはSHUTDOWN NORMALコマンドを実行すると、データベースが正常に停止するためFSFOは発生しません。

C.8.3 プライマリ・スタンバイのステータスの確認方法

プライマリ・スタンバイ・ノードのペアリング後、プライマリ・スタンバイ・ノードのステータスを確認します。

  1. Oracle Key Vault管理コンソールからプライマリ・スタンバイ・ノードのステータスを確認します。
    1. Oracle Key Vault管理コンソールにログインします。
    2. 「Primary-Standby」ページで、「System」「Settings」の順に移動します。
    3. ノードのステータスを確認します。
  2. プライマリ・スタンバイ・ノードのステータスを確認します。
    1. SSHを使用してサポート・ユーザーとしてプライマリ・スタンバイ・ノードにログインし、rootユーザーに切り替えます。
    2. 次のコマンドを実行してステータスを確認します。
      /usr/local/dbfw/bin/setup_ha.rb ––status
      /usr/local/dbfw/bin/setup_ha.rb ––dg_status
      sudo -u oracle /usr/local/dbfw/bin/setup_ha.rb --ha_role

      サンプル出力

      $ /usr/local/dbfw/bin/setup_ha.rb --status
      DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
      
      Copyright (c) 2000, 2013, Oracle. All rights reserved.
      
      Welcome to DGMGRL, type "help" for information.
      Connected as SYSDG.
      DGMGRL>
      Configuration - DBFWDB
      
      Protection Mode: MaxAvailability
      Members:
      DBFWDB_HA2 - Primary database
      DBFWDB_HA1 - (*) Physical standby database
      
      (*) Fast-Start Failover target
      
      Properties:
      FastStartFailoverThreshold = '120'
      OperationTimeout = '30'
      TraceLevel = 'USER'
      FastStartFailoverLagLimit = '30'
      CommunicationTimeout = '60'
      ObserverReconnect = '30'
      FastStartFailoverAutoReinstate = 'TRUE'
      FastStartFailoverPmyShutdown = 'FALSE'
      BystandersFollowRoleChange = 'ALL'
      ObserverOverride = 'FALSE'
      ExternalDestination1 = ''
      ExternalDestination2 = ''
      PrimaryLostWriteAction = 'CONTINUE'
      
      Fast-Start Failover: ENABLED
      
      Threshold: 120 seconds
      Target: DBFWDB_HA1
      Observer: *******
      Lag Limit: 30 seconds (not in use)
      Shutdown Primary: FALSE
      Auto-reinstate: TRUE
      Observer Reconnect: 30 seconds
      Observer Override: FALSE
      
      Configuration Status:
      SUCCESS
      
      DGMGRL>
      Database - DBFWDB_HA1
      
      Role: PHYSICAL STANDBY
      Intended State: APPLY-ON
      Transport Lag: 0 seconds (computed 1 second ago)
      Apply Lag: 0 seconds (computed 1 second ago)
      Average Apply Rate: 2.00 KByte/s
      Active Apply Rate: (unknown)
      Maximum Apply Rate: (unknown)
      Real Time Query: ON
      Instance(s):
      dbfwdb
      
      Properties:
      DGConnectIdentifier = 'DBFWDB_HA1'
      ObserverConnectIdentifier = ''
      LogXptMode = 'sync'
      RedoRoutes = ''
      DelayMins = '0'
      Binding = 'optional'
      MaxFailure = '0'
      MaxConnections = '1'
      ReopenSecs = '10'
      NetTimeout = '30'
      RedoCompression = 'DISABLE'
      LogShipping = 'ON'
      PreferredApplyInstance = ''
      ApplyInstanceTimeout = '0'
      ApplyLagThreshold = '0'
      TransportLagThreshold = '0'
      TransportDisconnectedThreshold = '30'
      ApplyParallel = 'AUTO'
      StandbyFileManagement = 'AUTO'
      ArchiveLagTarget = '0'
      LogArchiveMaxProcesses = '4'
      LogArchiveMinSucceedDest = '1'
      DbFileNameConvert = ''
      LogFileNameConvert = ''
      FastStartFailoverTarget = 'DBFWDB_HA2'
      InconsistentProperties = '(monitor)'
      InconsistentLogXptProps = '(monitor)'
      SendQEntries = '(monitor)'
      LogXptStatus = '(monitor)'
      RecvQEntries = '(monitor)'
      StaticConnectIdentifier = 'DBFWDB_HA1_DGMGRL'
      StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST'
      AlternateLocation = ''
      LogArchiveTrace = '0'
      LogArchiveFormat = '%t_%s_%r.dbf'
      TopWaitEvents = '(monitor)'
      
      Database Status:
      SUCCESS
      
      DGMGRL>
      Database - DBFWDB_HA2
      
      Role: PRIMARY
      Intended State: TRANSPORT-ON
      Instance(s):
      dbfwdb
      
      Properties:
      DGConnectIdentifier = 'DBFWDB_HA2'
      ObserverConnectIdentifier = ''
      LogXptMode = 'sync'
      RedoRoutes = ''
      DelayMins = '0'
      Binding = 'optional'
      MaxFailure = '0'
      MaxConnections = '1'
      ReopenSecs = '10'
      NetTimeout = '30'
      RedoCompression = 'DISABLE'
      LogShipping = 'ON'
      PreferredApplyInstance = ''
      ApplyInstanceTimeout = '0'
      ApplyLagThreshold = '0'
      TransportLagThreshold = '0'
      TransportDisconnectedThreshold = '30'
      ApplyParallel = 'AUTO'
      StandbyFileManagement = 'AUTO'
      ArchiveLagTarget = '0'
      LogArchiveMaxProcesses = '4'
      LogArchiveMinSucceedDest = '1'
      DbFileNameConvert = ''
      LogFileNameConvert = ''
      FastStartFailoverTarget = 'DBFWDB_HA1'
      InconsistentProperties = '(monitor)'
      InconsistentLogXptProps = '(monitor)'
      SendQEntries = '(monitor)'
      LogXptStatus = '(monitor)'
      RecvQEntries = '(monitor)'
      StaticConnectIdentifier = 'DBFWDB_HA2_DGMGRL'
      StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST'
      AlternateLocation = ''
      LogArchiveTrace = '0'
      LogArchiveFormat = '%t_%s_%r.dbf'
      TopWaitEvents = '(monitor)'
      
      Database Status:
      SUCCESS
      
      DGMGRL>
    3. 次のコマンドを実行して、Oracle Data Guardのステータスを確認します。オブザーバが実行中であることを確認します。
      su oracle
      dgmgrl /
      show configuration;
      show database ‘DBFWDB_HA1’;
      show database ‘DBFWDB_HA2’;

      サンプル出力

      $ dgmgrl /
      DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
      
      Copyright (c) 2000, 2013, Oracle. All rights reserved.
      
      Welcome to DGMGRL, type "help" for information.
      Connected as SYSDG.
      DGMGRL> show configuration;
      
      Configuration - DBFWDB
      
      Protection Mode: MaxAvailability
      Members:
      DBFWDB_HA2 - Primary database
      DBFWDB_HA1 - (*) Physical standby database
      
      Fast-Start Failover: ENABLED
      
      Configuration Status:
      SUCCESS (status updated 25 seconds ago)
      
      DGMGRL> show database 'DBFWDB_HA1';
      
      Database - DBFWDB_HA1
      
      Role: PHYSICAL STANDBY
      Intended State: APPLY-ON
      Transport Lag: 0 seconds (computed 1 second ago)
      Apply Lag: 0 seconds (computed 1 second ago)
      Average Apply Rate: 2.00 KByte/s
      Real Time Query: ON
      Instance(s):
      dbfwdb
      
      Database Status:
      SUCCESS
      
      DGMGRL> show database 'DBFWDB_HA2';
      
      Database - DBFWDB_HA2
      
      Role: PRIMARY
      Intended State: TRANSPORT-ON
      Instance(s):
      dbfwdb
      
      Database Status:
      SUCCESS