PostgreSQLのストリーミングレプリケーションに基づいた運用方式です。クラスタソフトウェアなどの他のソフトウェアを必要としません。
データベース多重化運用では、クラスタシステムを構成するすべてのサーバで複製されたデータベースを持ちます。更新を受け付けるサーバ(プライマリサーバ)から、データベースの更新トランザクションログをその他のサーバ(スタンバイサーバ)へと転送して、スタンバイサーバで更新トランザクションログを反映することで、これらの複製されたデータベースを維持します。
また、データベースプロセス、ディスク、ネットワークなどのデータベース運用の継続に不可欠な要素の障害を検知する機能と簡易化されたスイッチオーバやスタンバイサーバの切り離し機能などを提供します。複製方法には同期モードを用います。
OSやサーバのダウンおよび無応答
各サーバのMirroring Controller間でハートビートを行うことで、相互にOSやサーバの異常を検知します。
データベースプロセスのダウンおよび無応答
Mirroring Controllerが、定期的にデータベースのプロセスにアクセスして状態を確認します。アクセスの可否やタイムアウトの監視によって、プロセスの異常を検知します。
ディスクの障害
Mirroring Controllerが、定期的にデータ格納先ディスクにファイルを作成します。また、I/Oエラーの有無によってディスクの異常を検知します。
検知可能な障害とは、ディスクヘッダや装置の電源不良などのシステム全体におよぶ物理的な障害です。
図2.1 プライマリサーバからスタンバイサーバへのフェイルオーバ
図2.2 スタンバイサーバの切り離し
データベース多重化運用による監視を行って異常を検知すると、プライマリサーバの切り替えやスタンバイサーバの切り離しを自動的に行います。
また、スタンバイサーバにおいて、参照系の業務を行うことができます。
注意
プライマリサーバが切り替わって縮退運転になった場合には、もとのプライマリサーバは自動ではスタンバイサーバとして組込まれません。異常原因を取り除いてから組込みを実施してください。詳細は、“5.1 縮退運転になった場合の対処”を参照してください。
参照
参照系の業務の詳細は、“2.2.4 スタンバイサーバで参照系の業務を行う場合の注意”を参照してください。
ポイント
スタンバイサーバを切り離した場合には、Mirroring Controllerが自動的にプライマリサーバのpostgresql.confファイルのsynchronous_standby_namesパラメータをコメントアウトします。これによって、プライマリサーバにおけるアプリケーション処理が停止することを防止します。