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

标签 gitlab

如果我使用 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/

    相关文章:

    android - 分配给问题并完成问题的 Git-lab 推送

    docker - 如何通过脚本访问私有(private) docker 注册表而不暴露凭据?

    docker - Gitlab CI with docker+machine - 使用多个容器来测试应用程序

    git - 将 gitlab 存储库添加到 redmine

    git - 使用 git 提交强制执行经过身份验证的用户名(在本例中为 Gitlab)

    amazon-web-services - 将GitLab注册表连接到AWS上的ECS-花费了很长时间才能响应

    jira - Gitlab 提交消息链接到 JIRA

    docker - gitlab docker 登录失败 : certificate signed by unknown authority

    gitlab云 CI : how to increase memory for shared runner

    git - gitlab CI : files are not updated on FTP server even if they are changed in the last commit 中的 LFTP