Debian环境下GitLab数据迁移详细步骤
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION查看旧版本,新服务器安装时指定对应版本。sudo gitlab-rake gitlab:backup:create。默认备份文件存放在/var/opt/gitlab/backups目录,文件名格式为时间戳_gitlab_backup.tar(如1725431200_2024_09_04_16.2.4_gitlab_backup.tar)。/etc/gitlab/gitlab.rb(配置文件)、/etc/gitlab/gitlab-secrets.json(密钥文件,含数据库密码等敏感信息)到本地或临时目录,避免迁移过程中遗漏。curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash;sudo EXTERNAL_URL="http://新服务器IP" apt-get install gitlab-ce(替换为实际IP或域名)。/etc/gitlab/gitlab.rb,至少设置EXTERNAL_URL(实例访问地址),如EXTERNAL_URL="http://192.168.2.200",后续可根据需要调整其他参数(如邮件设置、SSL证书)。scp命令将旧服务器备份文件(含gitlab-backup.tar、gitlab.rb、gitlab-secrets.json)复制到新服务器的/var/opt/gitlab/backups目录。例如:scp /var/opt/gitlab/backups/1725431200_2024_09_04_16.2.4_gitlab_backup.tar root@新服务器IP:/var/opt/gitlab/backups/scp /etc/gitlab/gitlab.rb root@新服务器IP:/etc/gitlab/scp /etc/gitlab/gitlab-secrets.json root@新服务器IP:/etc/gitlab/。chmod 755 /var/opt/gitlab/backups/*.tar;sudo gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=时间戳(时间戳需与备份文件名中的时间戳一致,如BACKUP=1725431200)。恢复过程中会提示“是否删除现有表”“是否重建authorized_keys文件”,均需输入yes确认。gitlab-secrets.json复制到新服务器/etc/gitlab/目录,替换原有文件(若存在);编辑/etc/gitlab/gitlab.rb,确保配置与旧服务器一致(如数据库连接、外部URL)。sudo gitlab-ctl restart,重启所有GitLab相关服务(unicorn、sidekiq、nginx等),使配置生效。http://新服务器IP),登录后检查项目、用户、权限、CI/CD配置等是否完整;/var/opt/gitlab/git-data/repositories目录归属(应为git:git),或通过GitLab控制台修复用户/组权限。