Gitlabのバックアップとリストア
Gitlabのバックアップとリストアについてのメモ。結論だけを言ってしまえばどちらも便利なrake taskが準備されているので、それを使いましょう、です。
バックアップ
gitlabのルートから以下を実行。(自分の環境では /home/git/gitlab/)
$ bundle exec rake gitlab:backup:create RAILS_ENV=production
恐らくmysqlから「mysqldump: Got error: 1044: Access denied for user 'gitlab'@'localhost' to database 'gitlabhq_production' when using LOCK TABLES」なんて感じに怒られるでしょう。怒られました。
だもんで、LOCK TABLESさんにアクセスできるようにしてあげます。
# mysql (本当にないか確認) mysql> show GRANTS FOR 'gitlab'@'localhost'; (ないとわかったら素直に設定) mysql> GRANT LOCK TABLES ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
これでgilab:backup:createが動作するはずです。
なおバックアップの設定はconfig/gitlab.ymlに記述します。「backup:」セクションに以下を記述
- path: バックアップファイルの出力先。デフォルトは(相対パスで)tmp/backups
- keep_time: 世代管理で「残しておきたい秒数」を記述する、らしいです。デフォルトは0で無期限。
リストア
バックアップしておいたファイルを指定して以下を実行。
$ bundle exec rake RAILS_ENV=production gitlab:backup:restore BACKUP=★リストアするバックアップファイルを指定★