私のMastodonデータベース移設作業ですが、移設先をレプリケーションのスタンバイサーバにしてから切り替えることがほとんどです。

旧鯖のpostgresql.confに
listen_addresses = '*'
synchronous_commit = off
max_wal_senders = 3
wal_level = replica
hot_standby = on

pg_hba.confに
host replication replication_user xx.xx.xx.xx/32 md5

ufw allow from xx.xx.xx.xx to any port 5432 proto tcp

などと準備しておいて、新鯖で

pb_basebackup -h yy.yy.yy.yy -D /var/lib/postgresql/12/main -U replication_user -R -P

pg_ctl start

.env.productionを新鯖に書き換え、鯖とめて、

pg_ctl promote

でDB本番移行。鯖再開という感じです。

フォロー

replication_userを事前に作成しておくのを説明してないな……。まぁ、イメージがわかればOKということで。

psql -c "CREATE ROLE replication_user LOGIN REPLICATION PASSWORD 'xxxxxxxxx'";

レプリケーションやDB鯖移設、難しくないよ、というお話でした。

以前、そのへんを少し丁寧に書いたヤツはこちら。
noellabo.qrunch.io/entries/xvE

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。