gitlab数据迁移到gitaly集群
首先第一步再gitlab上执行备份操作
更改Gitlab备份目录
当然你也可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
执行备份命令
gitlab-rake gitlab:backup:create #GitLab 12.1 及更早版本 gitlab-backup create #GitLab 12.2 及更高版本 #如果是容器部署的gitlab执行如下命令 docker exec -t gitlab gitlab-rake gitlab:backup:create
随着CPU一阵飙升,等待完成就可以了。备份数据在容器的 /var/opt/gitlab/backups
目录下,如果你映射到了宿主机,就到指定的位置找就可以,文件名类似这样时间戳日期加gitlab版本号这样的: 1643891119_2022_02_03_13.12.7_gitlab_backup.tar
。
需要注意的是:
一些配置文件并不会被备份,需要自己手动备份一下 gitlab.rb
和 gitlab-secrets.json
把gitlab.rb 复制给集群中的gitlab节点 gitlab-secrets.json这个给集群中所有节点 然后同时执行
gitlab-ctl reconfigure
执行完成之后 连接到Praefect节点主机
验证 Praefect 是否可以访问 PostgreSQL
sudo -u git /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/co
连接到praefect集群并运行检查程序
sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml dial-nodes
在每个Gitaly节点上验证Git Hooks对Gitlab可达,在每个Gitaly节点上运行
-
对于 GitLab 15.3 及更高版本,运行
sudo /opt/gitlab/embedded/bin/gitaly check /var/opt/gitlab/gitaly/config.toml
-
对于 GitLab 15.2 及更早版本,运行
sudo /opt/gitlab/embedded/bin/gitaly-hooks check /var/opt/gitlab/gitaly/config.toml
验证 GitLab 是否可以到达 Praefect
gitlab-rake gitlab:gitaly:check
如上都成功了 接下来开始导入数据 把单节点的gitlab备份好的数据传输到集群的gitlab的备份目录
再集群的gitlab上执行恢复命令
#停止相关数据连接服务 gitlab-ctl stop puma gitlab-ctl stop sidekiq #开始执行恢复命令 gitlab-rake gitlab:backup:restore BACKUP=1643891119_2022_02_03_13.12.7 #然后按照指示一步一步操作即可
恢复完成后,启动服务