Skip to content

参考:# 迁移到新服务器

由于没有CI/CD、后台任务,直接迁移redis和备份文件即可

旧服务器

shell
sudo /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket save && sudo gitlab-ctl stop && sudo gitlab-ctl start postgresql && sudo gitlab-ctl start gitaly
sudo gitlab-backup create

然后将以下两个文件,上传到新服务器对应位置

/var/opt/gitlab/redis/dump.rdb/var/opt/gitlab/backups/xxxxxxxxx-backup.tar

新服务器

调整文件系统权限

shell
sudo chown gitlab-redis /var/opt/gitlab/redis
sudo chown gitlab-redis:gitlab-redis /var/opt/gitlab/redis/dump.rdb
sudo chown git:root /var/opt/gitlab/backups
sudo chown git:git /var/opt/gitlab/backups/xxxxxxxxx-backup.tar

启动redis

shell
sudo gitlab-ctl start redis

停止相关进程

shell
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl status

恢复备份

#  "_gitlab_backup.tar" 要去掉
sudo gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce

等待执行完成,重启gitlab

shell
sudo gitlab-ctl restart

(校验)

shell
sudo gitlab-rake gitlab:check SANITIZE=true
sudo gitlab-rake gitlab:doctor:secrets
sudo gitlab-rake gitlab:artifacts:check
sudo gitlab-rake gitlab:lfs:check
sudo gitlab-rake gitlab:uploads:check

迁移后发现修改系统设置报500

排查:

shell
sudo gitlab-rake gitlab:doctor:secrets VERBOSE=1

发现用户、群组、应用校验失败 image.png

修复命令:注意id数组里和上方命令输出一致

shell
sudo gitlab-rails console

# 清空损坏的 ApplicationSetting 字段
ApplicationSetting.where(id: ApplicationSetting.current.id).update_all(
  runners_registration_token_encrypted: nil,
  error_tracking_access_token_encrypted: nil,
  encrypted_ci_jwt_signing_key: nil,
  encrypted_ci_jwt_signing_key_iv: nil
)
User.update_all(static_object_token_encrypted: nil) 
User.update_all(static_object_token: nil)         
Group.where(id: [3,5,20,28,38,48]).update_all(runners_token: nil) 
Group.where(id: [3,5,20,28,38,48]).update_all(runners_token_encrypted: nil) 
exit

完成