ECS またはデータセンターにデプロイされたセルフマネージド PostgreSQL インスタンスを、ApsaraDB RDS for PostgreSQL インスタンスに移行できます。このトピックでは、セルフマネージド PostgreSQL インスタンスの postgresql.conf ファイルの設定方法について説明します。
手順
このトピックでは、セルフマネージド PostgreSQL インスタンスと RDS インスタンスは CentOS 7 で PostgreSQL 13 を実行しています。
セルフマネージド PostgreSQL インスタンスに接続し、
listen_addressesパラメータの値とwal_keep_segments/wal_keep_sizeパラメータの値をクエリします。パラメータ
説明
コマンド
予期値
listen_addresses
セルフマネージド PostgreSQL インスタンスはリモート接続をサポートするかどうかを確認します。
SHOW listen_addresses;*wal_keep_segments
pg_wal ディレクトリに保持できるログファイルの最小数を確認します。
推奨設定値:4096 以上。
説明4096 未満の場合、フルバックアップ後にログ先行書き込み (WAL) データは削除されます。
対応バージョン:PostgreSQL 10、11、12。
SHOW wal_keep_segments;4096wal_keep_size
pg_wal ディレクトリに保持できるログファイルの最小サイズを確認します。
推奨設定値:65536 MB 以上。
説明65536 MB 未満の場合、フルバックアップ後にログ先行書き込み (WAL) データは削除されます。
対応バージョン:PostgreSQL 13 以降。
SHOW wal_keep_size;65536パラメータの値が要件を満たしている場合は、postgresql.conf ファイルを設定する必要はありません。この場合、移行用のアカウントを作成してください。
要件を満たしていない場合は、手順 2 に進んでください。
PostgreSQL DB サービスを停止します。
説明次のコマンドを実行する前に、
su - postgresコマンドを実行して、postgres ユーザに切り替えてください。/usr/pgsql-13/bin/pg_ctl stop -m fastpostgresql.conf ファイルを見つけます。
説明次のコマンドを実行する前に、
su - rootコマンドを実行して root ユーザに切り替えてください。find / -name postgresql.conf出力例:
/var/lib/pgsql/13/data/postgresql.confpostgresql.conf ファイルが格納されているディレクトリに移動します。
cd /var/lib/pgsql/13/data/vim postgresql.confコマンドを実行して、postgresql.conf ファイルを開きます。ファイル内の
listen_addressesパラメータとwal_keep_segments/wal_keep_sizeパラメータの値を変更します。listen_addresses = '*' # PostgreSQL 10、PostgreSQL 11、または PostgreSQL 12 のインスタンスは、以下のように設定してください。 wal_keep_segments = 4096 # PostgreSQL 13 およびその以降のインスタンスは、以下のように設定してください。 wal_keep_size = 65536説明上記のパラメータは、デフォルトでコメントアウトされている場合があります。パラメータの値を変更した後、パラメータが存在する行の先頭にある
#を削除してください。Ecs キーを押して
:wqと入力し、 postgresql.conf ファイルを保存して終了します。PostgreSQL DB サービスを開始します。
説明次のコマンドを実行する前に、
su - postgresコマンドを実行して postgres ユーザに切り替えてください。/usr/pgsql-13/bin/pg_ctl start