使用可能な物理データ・センターを最適に利用するには、複数のゾーンにストアをデプロイします。これで障害を分離することができます。各ゾーンには、すべてのシャードのコピーを含む完全なストアのコピーがあるためです。この構成では、ゾーンが機能しなくなっても、定数が維持されるかぎり、書込み可用性が自動的に再確立されます。
この他のレベルの障害分離を実現するには、データ・センター設計のベスト・プラクティスを適用する必要があります。たとえば、サイトの場所、建物の選択、フロア・レイアウト、機械設計、電気設備設計、モジュール性などです。
ただし、定数が失われた場合には、ゾーン障害からリカバリするためにフェイルオーバーなどの手動手順を使用できます。定数の詳細は、『Oracle NoSQL Database概要マニュアル』を参照してください。
通常フェイルオーバーが実行されるのは、プライマリ・ゾーンが機能しなくなった、またはプライマリ・ゾーンに接続できなくなり、セカンダリ・ゾーンの1つがプライマリの役割を引き継ぐために移行しているときです。フェイルオーバーは、使用可能なプライマリ・ゾーン数にまで定数を減らす場合にも実行できます。フェイルオーバーによってデータが失われる場合と失われない場合があります。
スイッチオーバーは、フェイルオーバーを実行した後で(元の構成をリストアするため)、または計画的メンテナンスとして実行できます。
通常、スイッチオーバーは、ストアのプライマリ・ゾーンと1つのセカンダリ・ゾーンの役割を入れ替えることです。スイッチオーバーは、メンテナンスの目的で1つ以上のゾーンをもう1つのタイプに変換するために実行することもできます。スイッチオーバーでは定数が必要であり、データの損失は発生しないことが保証されます。通常は、プライマリ・システムの計画的メンテナンスとして実行されます。
この章では、フェイルオーバーとスイッチオーバーの操作がどのように実行されるかを説明します。
ゾーンが機能しなくなったが定数が維持されている場合は、「機能していないゾーンのハードウェア交換による修復」で説明される手順に従い、機能しなくなったゾーンを新しいハードウェアを使用して修復する手段があります。
もう1つの方法は、機能しなくなったゾーンをセカンダリ・ゾーンに変換することです。場合によっては、このアプローチによって定数要件が減少し、ストアの高可用性が向上することがあります。
たとえば、ストアに2つのプライマリ・ゾーンがあり、ゾーン1のレプリケーション係数は3、ゾーン2のレプリケーション係数は2であるとします。このとき、ゾーン2が機能しなくなったとします。このケースでは、5個のレプリカのうち3個があるため定数は維持されますが、さらに障害が発生すると定数が失われることになります。
ゾーン2をセカンダリ・ゾーンに変換すると、プライマリ・レプリケーション係数が3に減少し、各シャードがさらに1回の障害に耐えられるようになります。
ゾーン・タイプの切替えによって可用性が向上するかどうかを判断する必要があります。向上する場合には、現在の状況で実行する価値があるかどうかを次に判断します。