データベースのアクティブ・スタンバイ・ペアの状態の監視について
オペレータは、アクティブ・スタンバイ・ペアのそれぞれの状態を監視および管理します。オペレータは、監視および確認が可能なTimesTenClassicオブジェクトに高レベルの状態を割り当てます。たとえば、kubectl
get
コマンドを使用して、TimesTenClassicオブジェクトの高レベルの状態を返すことができます。具体的には、この例では、STATE
フィールドに返される値はNormal
であり、アクティブ・データベースとスタンバイ・データベースが稼働中で、正常に動作していることを示しています。
% kubectl get ttc sample NAME STATE ACTIVE AGE sample Normal sample-0 15h
状態:
ActiveDown
アクティブ・データベースを含むポッドのTimesTenが失敗したことがオペレータによって検出された場合、TimesTenClassicオブジェクトはすぐにActiveDown
状態になります。
unreachableTimeout
タイムアウト値は、TimesTenClassicオブジェクトの状態がActiveDown
になる前に、アクティブ・データベースを含むポッドの状態をUnknown
にできる期間を制御します。
TimesTenClassicオブジェクトの状態がActiveDown
になると、スタンバイ・データベースはただちにアクティブになり、TimesTenClassicオブジェクトの状態はStandbyDown
になります。
ActiveTakeover
TimesTenClassicオブジェクトがNormal
状態であるときに、スタンバイ・データベースが停止すると、状態はActiveTakeover
に一時的に変更されます。
通常、AWTキャッシュ・グループを使用する場合、スタンバイはTimesTenからOracle Databaseへの更新のプッシュを担当します。ただし、スタンバイが失敗した場合、アクティブ・データベースはこの責任を引き継ぎます。これは、ActiveTakeover
状態で発生します。
BothDown
アクティブ・データベースもスタンバイ・データベースも正常に動作していません。オペレータは、データベースのペアの起動を試行します。
アクティブ・スタンバイ・ペアの両方のポッドで障害が発生した場合、オペレータはTimesTenClassicStatusの情報を使用してデータ損失を最小限に抑えます。詳細は、「BothDown状態について」を参照してください。
ConfiguringActive
TimesTenClassicオブジェクトがWaitingForActive
状態であるときに、アクティブ・データベースにする必要があるデータベースが起動すると、TimesTenClassicオブジェクトはConfiguringActive
状態になります。その後、オペレータは、このデータベースがアクティブになるように構成します。データベースがアクティブとして構成されると、TimesTenClassicオブジェクトはStandbyDown
状態になります。詳細は、「BothDown状態について」を参照してください。
Failed
TimesTenClassicオブジェクトがInitializing
の間に問題が発生した場合、オブジェクトはFailed
状態に移行します。この状態になると、オペレータはオブジェクトの修復を試行しません。削除する必要があります。kubectl
describe
コマンドを使用して、オペレータ・ログを調べて問題の原因を特定し、オブジェクトを再作成します。
Initializing
この状態は、2つのポッドが初めて起動するときに報告されます。アクティブ・スタンバイ・ペア構成では、名前が-0
で終わるポッドが最初にアクティブ・データベースとして構成され、名前が-1
で終わるポッドが最初にスタンバイ・データベースとして構成されます。具体的には、TimesTenClassicの名前をsample
に指定すると、sample-0
ポッドがアクティブ・データベースとして構成され、sample-1
ポッドがスタンバイ・データベースとして構成されます。アクティブ/スタンバイ・ペアが完全にデプロイされると、TimesTenClassicオブジェクトはNormal
状態に移行します。
ManualInterventionRequired
TimesTenClassicオブジェクトがManualInterventionRequired
状態になると、オペレータはオブジェクトに対するそれ以上の処理を実行しません。TimesTenの状態を判断するためにオブジェクトに関連付けられたTimesTenエージェントは問合せされず、TimesTenは何も実行しません。詳細は、「ManualInterventionRequired状態について」および「1つのデータベースの起動について」を参照してください。
Reexamine
TimesTenClassicオブジェクトがManualInterventionRequired
状態である場合は、.spec.ttspec.reexamine
データ項目を指定すると、オペレータによって再びそのオブジェクトが管理されるようになります。オペレータはオブジェクトをReexamine
状態にします。その後、オペレータはTimesTenの状態を調べます。TimesTenを正しく修復した場合、TimesTenClassicオブジェクトは、修復の性質に応じてNormal
またはStandbyDown
状態になります。TimesTenを正しく修復しなかった場合、TimesTenClassicオブジェクトは再度ManualInterventionRequired
状態になります。詳細は、「ManualInterventionRequired状態について」を参照してください。
StandbyCatchup
この状態になるのは、StandbyStarting
状態の後です。StandbyStarting
状態の場合、スタンバイはアクティブ・データベースをスタンバイ・ポッドにコピーします。複製プロセスが完了すると、状態がStandbyStarting
からStandbyCatchup
に変わります。StandbyStarting
状態の詳細は、StandbyStartingを参照してください。StandbyCatchup
状態の場合、複製プロセスが完了しています。この複製プロセス中に実行されたトランザクションをスタンバイにコピーする必要があります。したがって、StandbyCatchup
状態は、新しく作成されたスタンバイが、複製操作の実行中にアクティブで実行されたトランザクションにキャッチアップするときの状態です。アプリケーションは、制限なしにアクティブを引き続き使用できます。
StandbyDown
アクティブ・データベースは適切に機能していますが、スタンバイ・データベースは機能していません。オペレータは、スタンバイ・データベースの再起動および再構成を自動的に試行します。アプリケーションは、制限なしにアクティブ・データベースを引き続き使用できます。
StandbyStarting
スタンバイがアクティブからデータベースを複製しています。StandbyStarting
状態は、複製操作が完了すると完了します。次に、StandbyCatchup
状態になります。StandbyCatchup
状態の詳細は、StandbyCatchupを参照してください。アプリケーションは、制限なしにアクティブを引き続き使用できます。
WaitingForActive
TimesTenClassicオブジェクトがBothDown
状態の場合、オペレータが最新のデータを含むデータベースを判別できると、TimesTenClassicオブジェクトはWaitingForActive
状態になります。オブジェクトは、データベースを含むポッドが実行中で、(そのポッド内の) tt
コンテナにあるTimesTenエージェントがオペレータに応答するまで、この状態のままです。詳細は、「BothDown状態について」を参照してください。