ページの先頭行へ戻る
Enterprise Postgres 15 クラスタ運用ガイド(データベース多重化編)

1.1 データベース多重化運用とは

データベース多重化運用は、PostgreSQLのストリーミングレプリケーションに基づいた運用方式(ログシッピング方式)です。クラスタソフトウェアなどの他のソフトウェアを必要としません。

データベース多重化運用では、クラスタシステムを構成するすべてのサーバで複製されたデータベースを持ちます。更新を受け付けるサーバ(プライマリサーバ)から、データベースの更新トランザクションログをその他のサーバ(スタンバイサーバ)へと転送して、スタンバイサーバで更新トランザクションログを反映することで、これらの複製されたデータベースを維持します。クライアントドライバがプライマリサーバやスタンバイサーバを自動的に識別することで、アプリケーションは物理的なサーバを意識せずに透過的に接続できます。

また、データベースプロセス、ディスク、ネットワークなどのデータベース運用の継続に不可欠な要素の障害を検知する機能と簡易化されたスイッチオーバやスタンバイサーバの切り離し機能などを提供します。さらに、スタンバイサーバにおいて、参照系の業務を行うことができます。

複製方法には同期モードを用います。

注意

Fujitsu Enterprise Postgresでは、WebAdminまたはMirroring Controllerを使用する場合、1つのプライマリサーバと1つのスタンバイサーバで構成されたクラスタシステムをサポートしています。

  • クラスタシステムに非同期スタンバイサーバを追加で接続することも可能ですが、これらのスタンバイサーバはMirroring Controllerの監視対象ではありません。

  • クラスタシステムに同期スタンバイサーバを追加で接続することはできません。

参照

本マニュアルでは、ストリーミングレプリケーション機能については説明しません。

ストリーミングレプリケーション機能の詳細は、“PostgreSQL Documentation”の“High Availability, Load Balancing, and Replication”を参照してください。


図1.1 プライマリサーバからスタンバイサーバへのフェイルオーバ


図1.2 スタンバイサーバの切り離し

裁定サーバによるデータベースの縮退

Fujitsu Enterprise Postgresでは、データベース多重化運用でデータベースサーバ間のネットワーク異常やサーバが不安定な状態になるなど、データベースサーバが相互の状態を正確に把握できない場合に、第三者としてデータベースサーバの状態を客観的に判断し、必要に応じて異常なデータベースの隔離を行う、サーバアシスタント機能を提供しています。この機能により、第三者としてデータベースサーバの状態を判断できることから、障害発生時に両サーバが同時にプライマリサーバとなる状態(スプリットブレイン)を防ぐことができます。サーバアシスタント機能をインストールしたサーバ(裁定サーバ)を利用することで、裁定サーバによるデータベースの縮退を行うことができます。

裁定サーバによるデータベースの縮退では、データベースサーバが相互の状態を確認できない場合に、裁定サーバにもう一方のデータベースサーバの状態を問い合わせます。裁定サーバは問い合わせを受けた時点で、状態が不安定であると判断した場合は、対象のデータベースサーバをクラスタシステムから隔離します(フェンシング)。裁定サーバはデータベースサーバからの問い合わせに即時に応答できるように、データベースサーバに対して定期的にハートビートを行っています。フェンシングは、Mirroring Controllerを使用している環境に応じて、処理をカスタマイズすることが可能です。

また、データベースサーバは、運用中にいつでも裁定サーバに確認依頼ができるように、裁定サーバに対して常にハートビートを行っています。これらの流れを以下の図に示します。

図1.3 裁定サーバによるデータベースの縮退

注意

裁定サーバは、データベースサーバとは異なる物理サーバに配置してください。裁定サーバを利用する場合のシステム構成については、“1.2 データベース多重化運用のシステム構成”を参照してください。

参照

フェンシングコマンドの詳細については、“2.3.2 裁定サーバのユーザー出口の作成”または“付録C ユーザーコマンド”を参照してください。


裁定コマンドを利用したデータベースの縮退

裁定コマンドは、裁定サーバの代わりに裁定処理を行うユーザーコマンドです。裁定サーバを配置できない場合は、裁定コマンドを使用することで、データベースサーバの裁定処理を行うことが可能です。これらの流れを以下の図に示します。

図1.4 裁定コマンドを利用したデータベースの縮退

参照

ユーザーコマンドの詳細については、“2.6 データベースサーバのユーザー出口の作成”または“付録C ユーザーコマンド”を参照してください。