私のMastodonデータベース移設作業ですが、移設先をレプリケーションのスタンバイサーバにしてから切り替えることがほとんどです。
旧鯖のpostgresql.confにlisten_addresses = '*'synchronous_commit = offmax_wal_senders = 3wal_level = replicahot_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鯖移設、難しくないよ、というお話でした。
以前、そのへんを少し丁寧に書いたヤツはこちら。https://noellabo.qrunch.io/entries/xvEfTs4zVrTzqSM7
様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。