誰かがリポジトリにプッシュしているときにgitlab:backup:create rake タスクを使用して GitLab のバックアップを作成すると、バックアップ プロセスに影響がありますか?
バックアップを行う前に GitLab をシャットダウンする必要がありますか?
誰かがリポジトリにプッシュしているときにgitlab:backup:create rake タスクを使用して GitLab のバックアップを作成すると、バックアップ プロセスに影響がありますか?
バックアップを行う前に GitLab をシャットダウンする必要がありますか?
タスクgitlab/backup.rake
自体はアトミックに見えません。
次のように呼び出します。
Rake::Task["gitlab:backup:db:create"].invoke
Rake::Task["gitlab:backup:repo:create"].invoke
それはgemactiverecord
を使用します:
puts "Dumping database tables ... ".blue
ActiveRecord::Base.connection.tables.each do |tbl|
...
ActiveRecord を使用した他の操作と同様に (この質問を参照)、グローバルなアトミック操作ではないようです。
ちょっと待ってください、数時間前に、 GitLabの主な開発者であるrandx (Dmitriy Zaporozhets)がデータベースのダンプをリファクタリングしました:
mysqldump
。system("mysqldump #{mysql_args} #{config['database']} > #{db_file_name}")
GRANT SELECT, LOCK TABLES, ...
したがって、データベースをダンプする部分はよりアトミックになりました ;)
しかし、ベア リポジトリのバックアップを含む他の手順を含むバックアップ自体はアトミックではありません。