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
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/
(オプション) ECS インスタンスが CentOS 8 を実行している場合は、次のコマンドを実行してデフォルトの PostgreSQL モジュールを無効にします。
sudo dnf --assumeyes module disable postgresql
PostgreSQL 15 をインストールします。
sudo dnf install -y postgresql15-server
PostgreSQL データベースを初期化します。
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
次のコマンド出力は、PostgreSQL データベースが初期化されたことを示しています。
プライマリノードを構成します。
プライマリノードの構成を次のように変更します。
# 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
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
PostgreSQL を起動し、システム起動時に PostgreSQL が実行されるように有効にします。
sudo systemctl enable postgresql-15.service sudo systemctl start postgresql-15.service
レプリケーションユーザーを作成します。
<YOUR_USER>
をセカンダリノードのユーザー名に置き換えます。<YOUR_PASSWORD>
をセカンダリノードのパスワードに置き換えます。
cd / sudo -u postgres psql -c "CREATE ROLE <YOUR_USER> REPLICATION LOGIN PASSWORD '<YOUR_PASSWORD>';"
PostgreSQL を再起動します。
sudo systemctl restart postgresql-15.service
Alibaba Cloud Linux 2 または CentOS 7
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
PostgreSQL データベースを初期化します。
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
次のコマンド出力は、PostgreSQL データベースが初期化されたことを示しています。
プライマリノードを構成します。
プライマリノードの構成を次のように変更します。
# 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
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
PostgreSQL を起動し、システム起動時に PostgreSQL が実行されるように有効にします。
sudo systemctl enable postgresql-15.service sudo systemctl start postgresql-15.service
レプリケーションユーザーを作成します。
<YOUR_USER>
をセカンダリノードのユーザー名に置き換えます。<YOUR_PASSWORD>
をセカンダリノードのパスワードに置き換えます。
cd / sudo -u postgres psql -c "CREATE ROLE <YOUR_USER> REPLICATION LOGIN PASSWORD '<YOUR_PASSWORD>';"
PostgreSQL を再起動します。
sudo systemctl restart postgresql-15.service
Ubuntu または Debian
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
プライマリノードを構成します。
プライマリノードの構成を次のように変更します。
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
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
レプリケーションユーザーを作成します。
<YOUR_USER>
をセカンダリノードのユーザー名に置き換えます。<YOUR_PASSWORD>
をセカンダリノードのパスワードに置き換えます。
cd / sudo -u postgres psql -c "CREATE ROLE <YOUR_USER> REPLICATION LOGIN PASSWORD '<YOUR_PASSWORD>';"
PostgreSQL を再起動し、システム起動時に PostgreSQL が起動するように有効にします。
sudo systemctl restart postgresql.service sudo systemctl enable postgresql.service
ステップ 2:PostgreSQL セカンダリノードをデプロイする
このトピックでは、PostgreSQL 15 を使用します。ビジネス要件に基づいて適切な PostgreSQL バージョンをインストールできます。
Alibaba Cloud Linux 3 または CentOS 8
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
(オプション) ECS インスタンスが CentOS 8 を実行している場合は、次のコマンドを実行してデフォルトの PostgreSQL モジュールを無効にします。
sudo dnf --assumeyes module disable postgresql
PostgreSQL 15 をインストールします。
sudo dnf install -y postgresql15-server
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
セカンダリノードの 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
プライマリノードの接続情報を構成します。
<プライマリノードのプライベート 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
セカンダリノードがプライマリノードから引き継げるように構成します。
sudo -u postgres touch /var/lib/pgsql/15/data/standby.signal
PostgreSQL を起動し、システム起動時に PostgreSQL が自動的に実行されるように有効にします。
sudo systemctl enable postgresql-15.service sudo systemctl start postgresql-15.service
Alibaba Cloud Linux 2 または CentOS 7
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
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
セカンダリノードの 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
プライマリノードの接続情報を構成します。
<プライマリノードのプライベート 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
セカンダリノードがプライマリノードから引き継げるように構成します。
sudo -u postgres touch /var/lib/pgsql/15/data/standby.signal
PostgreSQL を起動し、システム起動時に PostgreSQL が自動的に実行されるように有効にします。
sudo systemctl enable postgresql-15.service sudo systemctl start postgresql-15.service
Ubuntu または Debian
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
PostgreSQL を停止します。
sudo systemctl stop postgresql.service
セカンダリノードの初期化データを削除します。
sudo rm -rf /var/lib/postgresql/15/main/
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
セカンダリノードの 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
プライマリノードの接続情報を構成します。
<プライマリノードのプライベート 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
セカンダリノードがプライマリノードから引き継げるように構成します。
sudo -u postgres touch /var/lib/postgresql/15/main/standby.signal
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
プライマリノードで次のコマンドを実行して、送信プロセスプロセスが使用可能かどうかを確認します。
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
セカンダリノードで次のコマンドを実行して、受信プロセスプロセスが使用可能かどうかを確認します。
ps aux |grep receiver
次のコマンド出力は、受信プロセスプロセスが使用可能であることを示しています。
postgres 23284 0.0 0.3 387100 3444 ? Ss 16:04 0:00 postgres: walreceiver streaming 0/F01C1A8
プライマリノードで、PostgreSQL インタラクティブターミナルにアクセスし、SQL 文を実行してセカンダリノードのステータスを確認します。
次のコマンドを実行して、postgres アカウントを使用して PostgreSQL にログインします。
sudo su - postgres
次のコマンドを実行して、PostgreSQL インタラクティブターミナルにアクセスします。
psql
次の文を実行して、セカンダリノードのステータスを確認します。
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)
次のコマンドを実行し、
Enter
キーを押して PostgreSQL インタラクティブターミナルを終了します。\q
次のコマンドを実行し、
Enter
キーを押して PostgreSQL を終了します。exit