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

ApsaraDB RDS:postgresql.conf ファイルの設定

最終更新日:Mar 28, 2026

自主管理 PostgreSQL インスタンスを ApsaraDB RDS for PostgreSQL へ移行する前に、postgresql.conf ファイルで以下の 2 つのパラメーターを設定する必要があります。listen_addresses を設定することで、移行中の RDS インスタンスからの接続を許可します。また、WAL 保持パラメーター(wal_keep_segments または wal_keep_size)を設定することで、レプリケーション完了前に先行書き込みログ(WAL)レコードが削除されるのを防ぎます。

このトピックの例では、CentOS 7 上の PostgreSQL 13 を使用しています。ファイルパスおよびコマンド内のバージョン番号は、ご利用の環境に合わせて適宜調整してください。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • Elastic Compute Service (ECS) インスタンスまたはデータセンターにデプロイされた自主管理 PostgreSQL インスタンス

  • ホスト上で postgres ユーザーおよび root ユーザーへのアクセス権限

ステップ 1:現在のパラメーター値の確認

自主管理 PostgreSQL インスタンスに接続し、以下のコマンドを実行して現在の値を確認します。

パラメーター適用対象コマンド必要な値
listen_addressesすべてのバージョンSHOW listen_addresses;*
wal_keep_segmentsPostgreSQL 10、11、12SHOW wal_keep_segments;4096 以上
wal_keep_sizePostgreSQL 13 以降SHOW wal_keep_size;65536 MB 以上

各パラメーターの役割:

  • listen_addresses:インスタンスが接続を受け付ける IP アドレスを指定します。* に設定すると、移行中の RDS インスタンスからの接続が可能になります。

  • wal_keep_segmentswal_keep_sizepg_wal ディレクトリ内に保持される WAL データ量を制御します。値が小さすぎると、完全バックアップ後に WAL レコードが削除され、レプリケーションが中断されて、バックアップを最初からやり直す必要が生じます。

listen_addresses および WAL 保持パラメーターは、静的パラメーターであり、サービスを完全に再起動した後にのみ有効になります。いずれかの値が要件を満たさない場合は、ステップ 2 ~ 5 を実行してサービスを停止し、ファイルを更新してから再起動してください。

すべての値がすでに要件を満たしている場合は、「自主管理 PostgreSQL インスタンスへのクラウド移行用アカウントの作成」に進んでください。

ステップ 2:PostgreSQL データベースサービスの停止

postgres ユーザーのみが pg_ctl コマンドを実行できます。su - postgres を実行して、postgres ユーザーに切り替えてください。
/usr/pgsql-13/bin/pg_ctl stop -m fast

ステップ 3:postgresql.conf ファイルの検索

root ユーザーのみが find コマンドを実行できます。su - root を実行して、root ユーザーに切り替えてください。
find / -name postgresql.conf

出力結果にはファイルパスが表示されます(例):

/var/lib/pgsql/13/data/postgresql.conf

ステップ 4:postgresql.conf ファイルの編集

該当ディレクトリに移動してファイルを開きます。

cd /var/lib/pgsql/13/data/
vim postgresql.conf

パラメーターを必要な値に設定します。これらのパラメーターはデフォルトでコメントアウトされている場合があります。編集後、各行先頭の # を削除してください。

listen_addresses = '*'

# PostgreSQL 10、11、または 12 の場合:
wal_keep_segments = 4096

# PostgreSQL 13 以降の場合:
wal_keep_size = 65536

Esc キーを押した後、:wq を入力して保存・終了します。

ステップ 5:PostgreSQL データベースサービスの起動

postgres ユーザーのみが pg_ctl コマンドを実行できます。su - postgres を実行して、postgres ユーザーに切り替えてください。
/usr/pgsql-13/bin/pg_ctl start

次のステップ

自主管理 PostgreSQL インスタンスへのクラウド移行用アカウントの作成