誰かがリポジトリに移動しているように、gitlab:backup:create rakeタスクを使用してGitLabバックアップを作成すると、バックアッププロセスに影響がありますか?GitLab:バックアップレーキタスクはアトミックですか?
バックアップを実行する前にGitLabをシャットダウンする必要がありますか?
誰かがリポジトリに移動しているように、gitlab:backup:create rakeタスクを使用してGitLabバックアップを作成すると、バックアッププロセスに影響がありますか?GitLab:バックアップレーキタスクはアトミックですか?
バックアップを実行する前にGitLabをシャットダウンする必要がありますか?
タスクgitlab/backup.rake
自体はアトミックに見えません。
それは呼び出します。
Rake::Task["gitlab:backup:db:create"].invoke
Rake::Task["gitlab:backup:repo:create"].invoke
のActiveRecordと他の操作と同様に
puts "Dumping database tables ... ".blue
ActiveRecord::Base.connection.tables.each do |tbl|
...
(this questionを参照)、世界的なアトミック操作ではないようです。
数時間前にホールド、randx (Dmitriy Zaporozhets)、GitLabのための主要な開発者は、単にデータベースをダンプをリファクタリング:
mysqldump
の使用を示していますsystem("mysqldump #{mysql_args} #{config['database']} > #{db_file_name}")
GRANT SELECT, LOCK TABLES, ...
そのため、データベースをダンプする部分がよりアトミックになりました;
バックアップ自体は、ベアレポをバックアップするなどの他の手順を伴うものですが、アトミックではありません。
リポジトリ自体は 'git bundle'を使ってバックアップされるので、安全でなければなりません。アップロードはシンプルなファイルとライトワンスなので、そこにも問題はありません。データベースは、リポジトリやファイルと完全に同期していない可能性がありますが、データが失われる可能性はありません。 GitLabが動作している間は、アトミックではないにしても、バックアップを行うのは完全に安全です。 –
@SørenLøvborg私は同意します。 – VonC
閉会投票に申し訳ありません:司会者は通常素晴らしい仕事をしていますが、この例では単に間違っています(gitlabが何であるか分かりません)。これは、Stack Overflowのトピックに関する100%の質問です。 – VonC
GitLabからの最新のコミットは、より多くのアトミック操作を表示します。私の編集された答えを見てください。 – VonC
一見、この質問は間違いなく話題になるか、言い方が貧弱ですが、実際にそれを読むこと(そしてgitlabタグの要約)は、トピックに関しては完全に見えます。それは開発者用ツールであり、その使用方法です。再投票を追加する。 – ssube