Help us understand the problem. What is going on with this article?

GitLabのバックアップとリストア

More than 5 years have passed since last update.

GitLabに用意されているrake taskの使い方。

バックアップ

gitlabのルートディレクトリで以下を実行する。
実行ユーザはGitLabを動かしているユーザで行う。(通常はgitユーザ)

backup
$ bundle exec rake gitlab:backup:create RAILS_ENV=production

LOCK TABLESへのアクセス権限が無いと怒られたら下記を実行する。

mysql> GRANT LOCK TABLES ON `db_gitlab`.* TO 'user_gitlab'@'localhost';

バックアップの設定

config/gitlab.ymlの「backup:」セクションに以下を記述する。

項目 内容
path: バックアップファイルの出力先。デフォルトは(相対パスで)tmp/backups
keep_time: 世代管理で「残しておきたい秒数」を記述する。デフォルトは0で無期限。

リストア

gitlabのルートディレクトリで以下を実行する。
実行ユーザはGitLabを動かしているユーザで行う。(通常はgitユーザ)

restore
$ bundle exec rake RAILS_ENV=production gitlab:backup:restore BACKUP=<file_name>

cron設定

下記のようなshellファイルを作ってGitLabを動かしているユーザのcronに記述する。
PATHを通してあげないと怒られると思う。

gitlab-backup
#!/bin/bash

PATH=<gitユーザのPATHを参考にする>

export PATH

date
cd /home/git/gitlab
bundle exec rake gitlab:backup:create RAILS_ENV=production
mats16
AWSでSolutions Architectをやっています。 投稿は、個人の意見であり、所属する企業や団体は関係ありません。お約束です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away