データベースがハードウェアの問題によりサービスを提供できなくなり、ノードがダウンした場合は、障害が発生したマシンに対して緊急対応を講じる必要があります。本記事では、主にノードダウン時の緊急対処方法について説明します。
緊急対処方法
既知のマシンハードウェア障害がある場合は、障害があるマシンを直ちに交換します。
まず、クラスタ内に障害が発生したノードの役割を引き継げる十分な冗長リソース(OBServerマシン)があることを確認する必要があります。
ハードウェア障害ではなく、原因不明でobserverプロセスが終了した場合。
このようなケース、例えばコアダンプが発生した場合でも、緊急対処法はまず復旧を試みることです。
ハードウェア障害によるノードダウンかどうかを即座に確認できない場合(例:ネットワークジッター、停電など他の原因)、ユーザーはそのノードを直ちに交換するのではなく、他の問題を解決した後に再度observerを起動しようと考えるかもしれません。この場合はserver_permanent_offline_timeパラメータの設定に注意する必要があります。OceanBaseデータベースでは、server_permanent_offline_time構成パラメータの名前は「永久オフライン時間」と呼ばれ、「クラスタ内の特定ノードが使用不能となってから、OceanBaseがそのノードをメンバーリストから除外するまでの時間」を制御します。例えば、あるOBクラスタでserver_permanent_offline_timeの値が2時間だと仮定すると、あるノードがダウンした後、2時間以内に復旧できれば、起動後のOBノードのデータは有効なままであり、ダウン中に遅延した増分データを追いつけば済むことを意味します。しかし、ダウンが2時間を超えた場合、ノードが再起動された後、ノード内のすべてのレプリカはクリアされ(RSによりPaxosメンバーリストから除外される)、その上のすべてのデータは他のレプリカから再取得する必要があります。