レプリケーションは、データベースサーバーにとって重要なプロセスです。 1つのサーバーから複数の追加サーバーへのレプリケーションをセットアップすることにより、データ損失の可能性を大幅に減らすことができます。
この記事では、PostgreSQLクラスターのセットアップについて説明します。
Jelasticを使用すると、1つまたは複数のバックアップサーバーでクラスターを簡単に作成でき、プライマリサーバーに障害が発生した場合に基本的な操作を実行できます。 この場合、プライマリサーバーはアーカイブモードで動作し、バックアップサーバーはリカバリモードで動作し、プライマリサーバーのWAL(Write-Ahead Logging)トランザクションログからデータを読み取ります。
プライマリサーバーに完全な障害が発生した場合、WALの内容は最小限の遅延でバックアップサーバーに転送されます。
今日の記事では、1つまたは複数のバックアップサーバーでPostgreSQLデータベースのレプリケーションを作成するプロセスについて説明します。 スタンバイデータベースは、読み取りモードでのみ使用されます。 これは、プライマリサーバーからバックアップに送信されるWALデータで利用可能な最速のレプリケーション方法です。
環境創造
最初のステップは、PostgreSQLデータベースで2つの同一の環境を作成することです。1つはメインデータベース用、もう1つはバックアップ用です。
1. Jelasticアカウントにログインし、「Create Environment」ボタンをクリックして、データベースとしてPostgreSQL 9を選択し、使用するクラウドレットの数を選択します。 次に、このベース(プライマリ)の環境名を指定します。
Jelasticパネルで環境を作成すると、次が表示されます。
2.次に、PostgreSQL 9で別の環境を作成するか、既存の環境を複製する必要があります。 これは、データストレージの安全性と信頼性を確保するために、別のノードにあるバックアップデータベースになります。
したがって、PostgreSQLデータベースを使用した2つの同一の環境ができました。
注:既存のデータベースに対してレプリケーションが構成されている場合、レプリケーションを有効にする前に、ウィザードからバックアップサーバーにデータをコピーする必要があります。レプリケーションのセットアップ
1.メインベースのノードで、
「構成」ボタンをクリックします
confフォルダーに移動します。 ストリーミングレプリケーションを有効にするには、
postgresql.confファイルの次のパラメーターを変更します。
listen_address = '*'
wal_level = hot_standby
max_wal_senders = 3
2.メインデータベース(
confフォルダー内)の
pg_hba.confファイルに移動し、バックアップサーバーへのアクセスを開きます。
host replication all {standby_ip_address}/32 trust
{standby_ip_adress}の代わりに、スタンバイスタンバイサーバーのアドレスを挿入する必要があります。 ここで見ることができます:
内部IPアドレスのウィンドウが開きます:
取得したものは次のとおりです。
3.次に、バックアップデータベースノードの
confフォルダーを開き、
postgresql.confに移動して
ホットスタンバイモードを有効にします。 これにより、データを読み取るためのメインサーバーへの永続的な接続が保証されます。 この場合、バックアップサーバー自体はスタンバイ/コピーモードになります。
hot_standby = on
4.次の行を含む、バックアップサーバーの
confフォルダー(
postgresql.confおよび
pg_hba.confと同じディレクトリ)に
recovery.confファイルを作成します。
standby_mode = 'on'
primary_conninfo = 'host={master_ip_address}'
{master_ip_address}は、マスターノードのIPアドレスです。
5.
両方のノード(プライマリサーバーとバックアップサーバー)を再起動して、設定を適用します。
何が起こったのか確認してください
1. phpPgAdminを介してメインデータベースにログインし(環境とデータベース自体の作成時に資格情報が送信されました)、新しいデータベースを作成します。
2.バックアップデータベースにログインし、メインデータベースのコピーが作成されているかどうかを確認します。 マスタークローンモードでスタンバイノードを作成した場合、パスワードをリセットしてノードにアクセスできます。 スタンバイモードがオンの場合、Webインターフェイスを介してスタンバイにアクセスできません。
recovery.confの名前を
recovery.conに変更して、レプリケーションが機能していることを確認します。 バックアップノードを再起動します。 これで、Webインターフェースを使用して、レプリケーションが機能し、habrahabrデータベースが表示されたことを確認できます。 その後、
recovery.conの名前を
recovery.confに戻し、バックアップノードを再起動することを忘れないでください。
いくつかの簡単な手順で、信頼できるデータベースクラスターを作成できます。
InfoboxCloudで
Jelasticプラットフォームを使用し
て頑張ってください!