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