すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:プライマリ/セカンダリ PostgreSQL アーキテクチャを構築する

最終更新日:Feb 15, 2025

PostgreSQL は、SQL 標準に準拠し、再帰クエリ、全文検索、および JSON、XML、hstore などの NoSQL データ型向けの地理情報システム(GIS)ベースの地理空間クエリをサポートするオープンソースデータベースシステムです。 PostgreSQL は、複雑なデータ分析要件を満たすことができます。 PostgreSQL は、インターネット Web サイト、エンタープライズレベルのアプリケーションバックエンド、データウェアハウスおよび分析プラットフォーム、位置情報ベースのアプリケーション、および複雑なデータオブジェクト処理で広く使用されています。このトピックでは、Linux Elastic Compute Service(ECS)インスタンスでプライマリ/セカンダリ PostgreSQL アーキテクチャを構築する方法について説明します。

前提条件

  • 2 つの ECS インスタンスが作成されています。1 つの ECS インスタンスはプライマリ PostgreSQL ノードとして使用され、もう 1 つの ECS インスタンスはセカンダリ PostgreSQL ノードとして使用されます。 ECS インスタンスの作成方法については、「カスタム起動タブでインスタンスを作成する」をご参照ください。

  • ポート 22 を開くために、各 ECS インスタンスのセキュリティグループにインバウンドルールが追加されています。セキュリティグループルールの追加方法については、「セキュリティグループルールを追加する」をご参照ください。

ステップ 1:プライマリ PostgreSQL ノードをデプロイする

このトピックでは、PostgreSQL 15 を使用します。ビジネス要件に基づいて適切な PostgreSQL バージョンをインストールできます。

Alibaba Cloud Linux 3 または CentOS 8

  1. PostgreSQL イメージリポジトリを追加し、ファイルを構成します。

    # PostgreSQL イメージリポジトリを追加します。
    sudo rpm -Uvh http://mirrors.cloud.aliyuncs.com/postgresql/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    # sed ユーティリティを使用して /etc/yum.repos.d/pgdg-redhat-all.repo ファイルを編集します。
    sudo sed -i "s@https://download.postgresql.org/pub@http://mirrors.cloud.aliyuncs.com/postgresql@g" /etc/yum.repos.d/pgdg-redhat-all.repo
    sudo sed -i "s@\$releasever@8@g" /etc/yum.repos.d/pgdg-redhat-all.repo
    # /var/lib/pgsql/15/data/ ディレクトリを作成します。
    sudo mkdir -p /var/lib/pgsql/15/data/
  2. (オプション) ECS インスタンスが CentOS 8 を実行している場合は、次のコマンドを実行してデフォルトの PostgreSQL モジュールを無効にします。

    sudo dnf --assumeyes module disable postgresql
  3. PostgreSQL 15 をインストールします。

    sudo dnf install -y postgresql15-server
  4. PostgreSQL データベースを初期化します。

    sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

    次のコマンド出力は、PostgreSQL データベースが初期化されたことを示しています。

    image

  5. プライマリノードを構成します。

    プライマリノードの構成を次のように変更します。

    # wal_level:先行書き込みログ(WAL)に書き込まれる情報のレベル。 wal_level を replica に設定して、WAL アーカイブとレプリケーションをサポートするのに十分なデータを書き込みます。
    sudo sed -i "s@#wal_level = replica@wal_level = replica@g" /var/lib/pgsql/15/data/postgresql.conf
    # max_wal_senders:WAL 送信プロセスプロセス最大数。
    sudo sed -i "s@#max_wal_senders = 10@max_wal_senders = 10@g" /var/lib/pgsql/15/data/postgresql.conf
    # wal_keep_size:プライマリノードに保持される過去の WAL ファイルの最小サイズ。
    sudo sed -i "s@#wal_keep_size = 0@wal_keep_size = 128MB@g" /var/lib/pgsql/15/data/postgresql.conf
    # # archive_mode:WAL アーカイブを有効にするかどうか。値を on に設定します。
    sudo sed -i "s@#archive_mode = off@archive_mode = on@g" /var/lib/pgsql/15/data/postgresql.conf
    # listen_addresses:サーバーがクライアントアプリケーションからの接続を listen する IP アドレス。
    sudo sed -i "s@#listen_addresses = 'localhost'@listen_addresses = '*'@g" /var/lib/pgsql/15/data/postgresql.conf
  6. pg_hba.conf ファイルを変更して、セカンダリノードがプライマリノードに接続するための権限を構成します。

    • <YOUR_USER> をセカンダリノードのユーザー名に置き換えます。

    • <セカンダリノードのプライベート IP アドレスまたは CIDR ブロック> を、セカンダリノードとして使用される ECS インスタンスのプライベート IP アドレス、またはプライベート IP アドレスが属する CIDR ブロックに置き換えます。

    echo "host replication <YOUR_USER> <セカンダリノードのプライベート IP アドレスまたは CIDR ブロック> md5" | sudo tee -a /var/lib/pgsql/15/data/pg_hba.conf
  7. PostgreSQL を起動し、システム起動時に PostgreSQL が実行されるように有効にします。

    sudo systemctl enable postgresql-15.service
    sudo systemctl start postgresql-15.service
  8. レプリケーションユーザーを作成します。

    • <YOUR_USER> をセカンダリノードのユーザー名に置き換えます。

    • <YOUR_PASSWORD> をセカンダリノードのパスワードに置き換えます。

    cd /
    sudo -u postgres psql -c "CREATE ROLE <YOUR_USER> REPLICATION LOGIN PASSWORD '<YOUR_PASSWORD>';"
  9. PostgreSQL を再起動します。

    sudo systemctl restart postgresql-15.service

Alibaba Cloud Linux 2 または CentOS 7

  1. PostgreSQL 15 をインストールします。

    # PostgreSQL イメージリポジトリを追加します。
    sudo rpm -Uvh http://mirrors.cloud.aliyuncs.com/postgresql/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    # sed ユーティリティを使用して、/etc/yum.repos.d/pgdg-redhat-all.repo ファイルを編集します。
    sudo sed -i "s@https://download.postgresql.org/pub@http://mirrors.cloud.aliyuncs.com/postgresql@g" /etc/yum.repos.d/pgdg-redhat-all.repo
    sudo sed -i "s@\$releasever@7@g" /etc/yum.repos.d/pgdg-redhat-all.repo
    # /var/lib/pgsql/15/data/ ディレクトリを作成します。
    sudo mkdir -p /var/lib/pgsql/15/data/
    # PostgreSQL 15 をインストールします。
    sudo yum install -y postgresql15-server
  2. PostgreSQL データベースを初期化します。

    sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

    次のコマンド出力は、PostgreSQL データベースが初期化されたことを示しています。

    image

  3. プライマリノードを構成します。

    プライマリノードの構成を次のように変更します。

    # wal_level: 先行書き込みログ (WAL) に書き込まれる情報のレベル。wal_level を replica に設定して、WAL アーカイブとレプリケーションをサポートするのに十分なデータを書き込みます。
    sudo sed -i "s@#wal_level = replica@wal_level = replica@g" /var/lib/pgsql/15/data/postgresql.conf
    # max_wal_senders: WAL 送信プロセスプロセス最大数。
    sudo sed -i "s@#max_wal_senders = 10@max_wal_senders = 10@g" /var/lib/pgsql/15/data/postgresql.conf
    # wal_keep_size: プライマリノードに保持される過去の WAL ファイルの最小サイズ。
    sudo sed -i "s@#wal_keep_size = 0@wal_keep_size = 128MB@g" /var/lib/pgsql/15/data/postgresql.conf
    # # archive_mode: WAL アーカイブを有効にするかどうか。値を on に設定します。
    sudo sed -i "s@#archive_mode = off@archive_mode = on@g" /var/lib/pgsql/15/data/postgresql.conf
    # listen_addresses: サーバーがクライアントアプリケーションからの接続を listen する IP アドレス。
    sudo sed -i "s@#listen_addresses = 'localhost'@listen_addresses = '*'@g" /var/lib/pgsql/15/data/postgresql.conf
  4. pg_hba.conf ファイルを変更して、セカンダリノードがプライマリノードに接続するための権限を構成します。

    • <YOUR_USER> をセカンダリノードのユーザー名に置き換えます。

    • <セカンダリノードのプライベート IP アドレスまたは CIDR ブロック> を、セカンダリノードとして使用される ECS インスタンスのプライベート IP アドレス、またはプライベート IP アドレスが属する CIDR ブロックに置き換えます。

    echo "host replication <YOUR_USER> <セカンダリノードのプライベート IP アドレスまたは CIDR ブロック> md5" | sudo tee -a /var/lib/pgsql/15/data/pg_hba.conf
  5. PostgreSQL を起動し、システム起動時に PostgreSQL が実行されるように有効にします。

    sudo systemctl enable postgresql-15.service
    sudo systemctl start postgresql-15.service
  6. レプリケーションユーザーを作成します。

    • <YOUR_USER> をセカンダリノードのユーザー名に置き換えます。

    • <YOUR_PASSWORD> をセカンダリノードのパスワードに置き換えます。

    cd /
    sudo -u postgres psql -c "CREATE ROLE <YOUR_USER> REPLICATION LOGIN PASSWORD '<YOUR_PASSWORD>';"
  7. PostgreSQL を再起動します。

    sudo systemctl restart postgresql-15.service

Ubuntu または Debian

  1. PostgreSQL 15 をインストールします。

    # PostgreSQL イメージリポジトリを追加します。
    sudo sh -c 'echo "deb [signed-by=/etc/apt/trusted.gpg.d/postgresql.gpg] http://mirrors.cloud.aliyuncs.com/postgresql/repos/apt/ $(lsb_release -sc)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
    # GNU Privacy Guard (GPG) キーをダウンロードしてエクスポートし、Advanced Package Tool (APT) に適した形式に変換します。
    wget -qO - http://mirrors.cloud.aliyuncs.com/postgresql/repos/apt/ACCC4CF8.asc | sudo apt-key add -
    sudo apt-key export ACCC4CF8 | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
    # ソフトウェアパッケージリストを更新します。
    sudo apt-get update
    # PostgreSQL 15 をインストールします。
    sudo apt-get install -y postgresql-15
  2. プライマリノードを構成します。

    プライマリノードの構成を次のように変更します。

    sudo sed -i "s@#listen_addresses = 'localhost'@listen_addresses = '*'@g" /etc/postgresql/15/main/postgresql.conf
    #wal_level = replica
    sudo sed -i "s@#wal_level = replica@wal_level = replica@g" /etc/postgresql/15/main/postgresql.conf
    # max_wal_senders: WAL 送信プロセスプロセス最大数。
    sudo sed -i "s@#max_wal_senders = 10@max_wal_senders = 10@g" /etc/postgresql/15/main/postgresql.conf
    # wal_keep_size: プライマリノードに保持される過去の WAL ファイルの最小サイズ。
    sudo sed -i "s@#wal_keep_size = 0@wal_keep_size = 128MB@g" /etc/postgresql/15/main/postgresql.conf
    # # archive_mode: WAL アーカイブを有効にするかどうか。値を on に設定します。
    sudo sed -i "s@#archive_mode = off@archive_mode = on@g" /etc/postgresql/15/main/postgresql.conf
  3. pg_hba.conf ファイルを変更して、セカンダリノードがプライマリノードに接続するための権限を構成します。

    • <YOUR_USER> をセカンダリノードのユーザー名に置き換えます。

    • <セカンダリノードのプライベート IP アドレスまたは CIDR ブロック> を、セカンダリノードとして使用される ECS インスタンスのプライベート IP アドレス、またはプライベート IP アドレスが属する CIDR ブロックに置き換えます。

    echo "host replication <YOUR_USER> <セカンダリノードのプライベート IP アドレスまたは CIDR ブロック> md5" | sudo tee -a /etc/postgresql/15/main/pg_hba.conf
  4. レプリケーションユーザーを作成します。

    • <YOUR_USER> をセカンダリノードのユーザー名に置き換えます。

    • <YOUR_PASSWORD> をセカンダリノードのパスワードに置き換えます。

    cd /
    sudo -u postgres psql -c "CREATE ROLE <YOUR_USER> REPLICATION LOGIN PASSWORD '<YOUR_PASSWORD>';"
  5. PostgreSQL を再起動し、システム起動時に PostgreSQL が起動するように有効にします。

    sudo systemctl restart postgresql.service
    sudo systemctl enable postgresql.service

ステップ 2:PostgreSQL セカンダリノードをデプロイする

このトピックでは、PostgreSQL 15 を使用します。ビジネス要件に基づいて適切な PostgreSQL バージョンをインストールできます。

Alibaba Cloud Linux 3 または CentOS 8

  1. PostgreSQL イメージリポジトリを追加し、ファイルを構成します。

    # PostgreSQL イメージリポジトリを追加します。
    sudo rpm -Uvh http://mirrors.cloud.aliyuncs.com/postgresql/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    # sed ユーティリティを使用して /etc/yum.repos.d/pgdg-redhat-all.repo ファイルを編集します。
    sudo sed -i "s@https://download.postgresql.org/pub@http://mirrors.cloud.aliyuncs.com/postgresql@g" /etc/yum.repos.d/pgdg-redhat-all.repo
    sudo sed -i "s@\$releasever@8@g" /etc/yum.repos.d/pgdg-redhat-all.repo
  2. (オプション) ECS インスタンスが CentOS 8 を実行している場合は、次のコマンドを実行してデフォルトの PostgreSQL モジュールを無効にします。

    sudo dnf --assumeyes module disable postgresql
  3. PostgreSQL 15 をインストールします。

    sudo dnf install -y postgresql15-server
  4. pg_basebackup ユーティリティを使用して、セカンダリノードにプライマリノードのベースバックアップを作成します。

    • <YOUR_USER> をプライマリノードのユーザー名に置き換えます。

    • <YOUR_PASSWORD> をプライマリノードのパスワードに置き換えます。

    • <プライマリノードのプライベート IP アドレス> を、プライマリノードとして使用される ECS インスタンスのプライベート IP アドレスに置き換えます。

    cd /
    export PGPASSWORD=<YOUR_PASSWORD>
    sudo -E -u postgres pg_basebackup -h <プライマリノードのプライベート IP アドレス> -D /var/lib/pgsql/15/data/ -U <YOUR_USER> -P -w -v --wal-method=stream
  5. セカンダリノードの postgresql.conf ファイルを変更します。

    # hot_standby:セカンダリノードで読み取り専用クエリを有効にするかどうか。値を on に設定します。
    sudo sed -i "s@#hot_standby = off@hot_standby = on@g" /var/lib/pgsql/15/data/postgresql.conf
    # hot_standby_feedback:セカンダリノードがレプリケーションのステータスと進捗状況に関するフィードバックをプライマリノードに送信できるようにするかどうか。値を on に設定します。
    sudo sed -i "s@#hot_standby_feedback = off@hot_standby_feedback = on@g" /var/lib/pgsql/15/data/postgresql.conf
  6. プライマリノードの接続情報を構成します。

    • <プライマリノードのプライベート IP アドレス> を、プライマリノードとして使用される ECS インスタンスのプライベート IP アドレスに置き換えます。

    • <YOUR_USER> をプライマリノードのユーザー名に置き換えます。

    • <YOUR_PASSWORD> をプライマリノードのパスワードに置き換えます。

    sudo sed -i "s@#primary_conninfo = ''@primary_conninfo = 'host=<プライマリノードのプライベート IP アドレス> port=5432 user=<YOUR_USER> password=<YOUR_PASSWORD>'@g" /var/lib/pgsql/15/data/postgresql.conf
  7. セカンダリノードがプライマリノードから引き継げるように構成します。

    sudo -u postgres touch /var/lib/pgsql/15/data/standby.signal
  8. PostgreSQL を起動し、システム起動時に PostgreSQL が自動的に実行されるように有効にします。

    sudo systemctl enable postgresql-15.service
    sudo systemctl start postgresql-15.service

Alibaba Cloud Linux 2 または CentOS 7

  1. PostgreSQL 15 をインストールします。

    # PostgreSQL イメージリポジトリを追加します。
    sudo rpm -Uvh http://mirrors.cloud.aliyuncs.com/postgresql/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    # sed ユーティリティを使用して /etc/yum.repos.d/pgdg-redhat-all.repo ファイルを編集します。
    sudo sed -i "s@https://download.postgresql.org/pub@http://mirrors.cloud.aliyuncs.com/postgresql@g" /etc/yum.repos.d/pgdg-redhat-all.repo
    sudo sed -i "s@\$releasever@7@g" /etc/yum.repos.d/pgdg-redhat-all.repo
    # PostgreSQL 15 をインストールします。
    sudo yum install -y postgresql15-server
  2. pg_basebackup ユーティリティを使用して、セカンダリノードにプライマリノードのベースバックアップを作成します。

    • <YOUR_USER> をプライマリノードのユーザー名に置き換えます。

    • <YOUR_PASSWORD> をプライマリノードのパスワードに置き換えます。

    • <プライマリノードのプライベート IP アドレス> を、プライマリノードとして使用される ECS インスタンスのプライベート IP アドレスに置き換えます。

    cd /
    export PGPASSWORD=<YOUR_PASSWORD>
    sudo -E -u postgres pg_basebackup -h <プライマリノードのプライベート IP アドレス> -D /var/lib/pgsql/15/data/ -U <YOUR_USER> -P -w -v --wal-method=stream
  3. セカンダリノードの postgresql.conf ファイルを変更します。

    # hot_standby: セカンダリノードで読み取り専用クエリを有効にするかどうか。値を on に設定します。
    sudo sed -i "s@#hot_standby = off@hot_standby = on@g" /var/lib/pgsql/15/data/postgresql.conf
    # hot_standby_feedback: セカンダリノードがレプリケーションのステータスと進捗状況に関するフィードバックをプライマリノードに送信できるようにするかどうか。値を on に設定します。
    sudo sed -i "s@#hot_standby_feedback = off@hot_standby_feedback = on@g" /var/lib/pgsql/15/data/postgresql.conf
  4. プライマリノードの接続情報を構成します。

    • <プライマリノードのプライベート IP アドレス> を、プライマリノードとして使用される ECS インスタンスのプライベート IP アドレスに置き換えます。

    • <YOUR_USER> をプライマリノードのユーザー名に置き換えます。

    • <YOUR_PASSWORD> をプライマリノードのパスワードに置き換えます。

    sudo sed -i "s@#primary_conninfo = ''@primary_conninfo = 'host=<プライマリノードのプライベート IP アドレス> port=5432 user=<YOUR_USER> password=<YOUR_PASSWORD>'@g" /var/lib/pgsql/15/data/postgresql.conf
  5. セカンダリノードがプライマリノードから引き継げるように構成します。

    sudo -u postgres touch /var/lib/pgsql/15/data/standby.signal
  6. PostgreSQL を起動し、システム起動時に PostgreSQL が自動的に実行されるように有効にします。

    sudo systemctl enable postgresql-15.service
    sudo systemctl start postgresql-15.service

Ubuntu または Debian

  1. PostgreSQL 15 をインストールします。

    # PostgreSQL イメージリポジトリを追加します。
    sudo sh -c 'echo "deb [signed-by=/etc/apt/trusted.gpg.d/postgresql.gpg] http://mirrors.cloud.aliyuncs.com/postgresql/repos/apt/ $(lsb_release -sc)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
    # GNU Privacy Guard (GPG) キーをダウンロードしてエクスポートし、Advanced Package Tool (APT) に適した形式に変換します。
    wget -qO - http://mirrors.cloud.aliyuncs.com/postgresql/repos/apt/ACCC4CF8.asc | sudo apt-key add -
    sudo apt-key export ACCC4CF8 | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
    # ソフトウェアパッケージリストを更新します。
    sudo apt-get update
    # PostgreSQL 15 をインストールします。
    sudo apt-get install -y postgresql-15
  2. PostgreSQL を停止します。

    sudo systemctl stop postgresql.service
  3. セカンダリノードの初期化データを削除します。

    sudo rm -rf /var/lib/postgresql/15/main/
  4. pg_basebackup ユーティリティを使用して、セカンダリノードにプライマリノードのベースバックアップを作成します。

    • <YOUR_USER> をプライマリノードのユーザー名に置き換えます。

    • <YOUR_PASSWORD> をプライマリノードのパスワードに置き換えます。

    • <プライマリノードのプライベート IP アドレス> を、プライマリノードとして使用される ECS インスタンスのプライベート IP アドレスに置き換えます。

    cd /
    export PGPASSWORD=<YOUR_PASSWORD>
    sudo -E -u postgres pg_basebackup -h <プライマリノードのプライベート IP アドレス> -D /var/lib/postgresql/15/main/ -U <YOUR_USER> -P -w -v --wal-method=stream
  5. セカンダリノードの postgresql.conf ファイルを変更します。

    # hot_standby: セカンダリノードで読み取り専用クエリを有効にするかどうか。値を on に設定します。 sudo sed -i "s@#hot_standby = off@hot_standby = on@g" /etc/postgresql/15/main/postgresql.conf # hot_standby_feedback: セカンダリノードがレプリケーションのステータスと進捗状況に関するフィードバックをプライマリノードに送信できるようにするかどうか。値を on に設定します。 sudo sed -i "s@#hot_standby_feedback = off@hot_standby_feedback = on@g" /etc/postgresql/15/main/postgresql.conf

    # hot_standby: セカンダリノードで読み取り専用クエリを有効にするかどうか。 値を on に設定します。
    sudo sed -i "s@#hot_standby = off@hot_standby = on@g" /etc/postgresql/15/main/postgresql.conf
    # hot_standby_feedback: セカンダリノードがレプリケーションのステータスと進捗状況に関するフィードバックをプライマリノードに送信できるようにするかどうか。 値を on に設定します。
    sudo sed -i "s@#hot_standby_feedback = off@hot_standby_feedback = on@g" /etc/postgresql/15/main/postgresql.conf
  6. プライマリノードの接続情報を構成します。

    • <プライマリノードのプライベート IP アドレス> を、プライマリノードとして使用される ECS インスタンスのプライベート IP アドレスに置き換えます。

    • <YOUR_USER> をプライマリノードのユーザー名に置き換えます。

    • <YOUR_PASSWORD> をプライマリノードのパスワードに置き換えます。

    sudo sed -i "s@#primary_conninfo = ''@primary_conninfo = 'host=<プライマリノードのプライベート IP アドレス> port=5432 user=<YOUR_USER> password=<YOUR_PASSWORD>'@g" /etc/postgresql/15/main/postgresql.conf
  7. セカンダリノードがプライマリノードから引き継げるように構成します。

    sudo -u postgres touch /var/lib/postgresql/15/main/standby.signal
  8. PostgreSQL を再起動し、システム起動時に PostgreSQL が起動するように有効にします。

    sudo systemctl restart postgresql.service
    sudo systemctl enable postgresql.service

プライマリ/セカンダリ PostgreSQL アーキテクチャをテストする

プライマリノードとセカンダリノード間でデータが交換される際に、プライマリ/セカンダリ PostgreSQL アーキテクチャをテストします。たとえば、次のコマンドを実行してセカンダリノードにプライマリノードのバックアップディレクトリを作成するときにアーキテクチャをテストする場合、期待されるテスト結果を取得できます。

sudo pg_basebackup -D /var/lib/pgsql/15/data -h <プライマリノードの IP アドレス> -p 5432 -U replica -X stream -P
  1. プライマリノードで次のコマンドを実行して、送信プロセスプロセスが使用可能かどうかを確認します。

    ps aux |grep sender

    次のコマンド出力は、送信プロセスプロセスが使用可能であることを示しています。

    postgres  2916  0.0  0.3 340388  3220 ?        Ss   15:38   0:00 postgres: walsender  replica 192.168.**.**(49640) streaming 0/F01C1A8
  2. セカンダリノードで次のコマンドを実行して、受信プロセスプロセスが使用可能かどうかを確認します。

    ps aux |grep receiver

    次のコマンド出力は、受信プロセスプロセスが使用可能であることを示しています。

    postgres 23284  0.0  0.3 387100  3444 ?        Ss   16:04   0:00 postgres: walreceiver   streaming 0/F01C1A8
  3. プライマリノードで、PostgreSQL インタラクティブターミナルにアクセスし、SQL 文を実行してセカンダリノードのステータスを確認します。

    1. 次のコマンドを実行して、postgres アカウントを使用して PostgreSQL にログインします。

      sudo su - postgres
    2. 次のコマンドを実行して、PostgreSQL インタラクティブターミナルにアクセスします。

      psql
    3. 次の文を実行して、セカンダリノードのステータスを確認します。

      select * from pg_stat_replication;

      次の結果は、セカンダリノードのステータスを示しています。

      pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend_xmin | state | sent_location | write_locati
      on | flush_location | replay_location | sync_priority | sync_state 
      ------+----------+---------+------------------+---------------+-----------------+------------- +-------------------------------+--------------+-----------+---------------+-------------
      ---+----------------+-----------------+---------------+------------
      2916 | 16393 | replica | walreceiver | 192.168.**.** | | 49640 | 2017-05-02 15:38:06.188988+08 | 1836 | streaming | 0/F01C0C8 | 0/F01C0C8 
      | 0/F01C0C8 | 0/F01C0C8 | 0 | async
      (1 rows)
    4. 次のコマンドを実行し、Enter キーを押して PostgreSQL インタラクティブターミナルを終了します。

      \q
    5. 次のコマンドを実行し、Enter キーを押して PostgreSQL を終了します。

      exit