gpt4 book ai didi

GitLab:备份 rake 任务是原子的吗?

转载 作者:行者123 更新时间:2023-12-04 12:33:29 30 4
gpt4 key购买 nike

如果我使用 gitlab:backup:create 进行 GitLab 备份rake 任务就像有人推送到存储库一样,备份过程会受到影响吗?

在做备份之前是否有必要关闭 GitLab?

最佳答案

任务 gitlab/backup.rake 本身看起来不是原子的。
它调用:

  Rake::Task["gitlab:backup:db:create"].invoke
Rake::Task["gitlab:backup:repo:create"].invoke

That uses gem activerecord :
    puts "Dumping database tables ... ".blue
ActiveRecord::Base.connection.tables.each do |tbl|
...

与 ActiveRecord 的其他操作一样(请参阅 this question ),它似乎不是全局原子操作。

等等,几个小时前, randx (Dmitriy Zaporozhets) ,GitLab 的主要开发人员,刚刚重构了转储数据库:
  • commit 38d23c0e5f816937047c9326f9dd33fb10490032显示系统调用 mysqldump 的使用:system("mysqldump #{mysql_args} #{config['database']} > #{db_file_name}")
  • commit c33d5e16fe5f5dde4f270adaf7fb6fe5b9552018添加 GRANT SELECT, LOCK TABLES, ...

  • 因此,转储数据库的部分现在更加原子化;)
    但是备份本身,它涉及其他步骤,包括备份裸存储库,不是原子的。

    关于GitLab:备份 rake 任务是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15825735/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com