2017-04-25 23:26 typo修正 しばらくブログを更新していなかったが、最近は「ぼくもあの日、有給を取ってインスタンスを立ててさえいれば今頃年収3億ぐらいでドワンゴに雇われていたのでは...。」と思う日々を過ごしている。 とはいえ、インスタンス運用しつつ運用ネタでも書けば、まだ年収1億ぐらいでなら雇われるチャンスがあると思うので、運用ネタでも書くことにする。バックアップだ。 ユーザが20人程度いる弱小インスタンスを回しているが、つまりデータを飛ばすと20人から怒られてしまう。小心者なのであまり怒られたくはない。ということでPostgresのバックアップを構成することにした。 本記事では、Dockerで運用しているMastodonのDBを、Dockerの恩恵を受けつつ比較的楽にバックアップする方法について言及する。内容自体はMastodonに限らず、Postgresを利用するシステム全般で参考になるだろう。 pg_rman 色々調べてみると、Postgresでオンラインバックアップを取るにはpg_rmanを使うのが便利そうであることが分かった[1] [2]。pg_rmanは 1)DBの実体ファイルの物理的なコピーと 2)コピー中のトランザクションログ(WAL)をマークするコマンドの発行をまとめてやってくれるユーティリティだ。加えて、実際にリストアをする際もよしなに面倒をみてくれるらしい。 導入 弱小インスタンスの良いところは、パフォーマンスを気にせずDockerコンテナから剥がさずほぼ本家そのままのdocker-compose.ymlで動かせるところで、