5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

さくらクラウドのスクリプトで作ったmastodonのバックアップとDocker環境へのリストア

Last updated at Posted at 2017-06-13

さくらクラウドのスクリプトで作ったマストドンのデータをバックアップしたかったのと、それを別の環境にロードしたかったので、その試行錯誤をご紹介。

#1.さくらクラウドのVMでの作業
#su - mastodon
ポスグレバックアップ
$cd /home/mastodon/live
$pg_dump > backup_postgres-db.sql
画像などのバックアップ
$cd /home/mastodon/live/public
$tar zcf backup_public-system.tar.gz system
Redisデータベースファイルのバックアップ
#cp /var/lib/redis/dump.rdb backup_redis_dump.rdb

#2.移行先での作業
一般的なDockerで動くmastodon環境にロード(リストア)しました。自分はGCPにubuntuのVMを作って、そこにDockerを入れたものを、別URLで動くようにしておきました。
###nginxを止めておく
#nginx -s stop

###docker確認 コンテナIDをメモる。(→メモらなくても大丈夫ですね)
#docker ps
→ #docker ps -q -f name=mastodon_db_1

###dockerコンテナにバックアップしたDBファイルをコピーする。
バックアップしたbackup_postgres-db.sqlはVMにコピっておく。
#docker cp backup_postgres-db.sql {コンテナID}:/home/db_backup.sql
→ #docker cp backup_postgres-db.sql $(docker ps -q -f name=mastodon_db_1):/home/db_backup.sql

###dockerコンテナに入る
#docker exec -it mastodon_db_1 bash

###ポスグレに入る
bash-4.3# psql -U postgres

###mastodonユーザー(ロール)を作る。
さくらスクリプトで作られたポスグレがmastodonっていうユーザで動いていたので、ロールを作りました。
postgres=# create role mastodon with login superuser;

###テーブルを全部消す
postgres=# drop schema public cascade;
postgres=# create schema public;

###確認
postgres=# \l

###データベースのオーナーをmastodonにする
postgres=# alter database postgres owner to mastodon;

###確認
postgres=# \l

###ポスグレから抜ける
postgres=# \q

###バックアップしたデータを読み込み
bash-4.3# cd /home
bash-4.3# psql -U mastodon -d postgres < db_backup.sql

###ポスグレに入る
bash-4.3# psql -U postgres

###データベースのオーナーをpostgresに戻す
postgres=# alter database postgres owner to postgres;

###確認
postgres=# \l
postgres=# \d

###ポスグレから抜ける
postgres=# \q

###dockerコンテナから抜ける
bash-4.3# exit

###画像など及びRedisDBをリストア
バックアップしたbackup_public-system.tar.gzやbackup_redis_dump.rdbはVMにコピっておく。
#cd public
#tar xvzf backup_public-system.tar.gz
#cd ../redis
#cp backup_redis_dump.rdb dump.rdb
#chown systemd-timesync:systemd-journal dump.rdb

###nginx起動
#nginx

###おしまい。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?