GitLab在Debian下的数据迁移步骤
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(实例访问URL)、gitlab_rails['gitlab_shell_ssh_port'](SSH端口,默认22)等参数,确保与新环境匹配。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 user@新服务器IP:/var/opt/gitlab/backups/scp /etc/gitlab/gitlab.rb user@新服务器IP:/etc/gitlab/scp /etc/gitlab/gitlab-secrets.json user@新服务器IP:/etc/gitlab/。chmod 755 /var/opt/gitlab/backups/*.tar。sudo gitlab-ctl stop unicornsudo gitlab-ctl stop sidekiqsudo gitlab-ctl stop nginx。gitlab-rake恢复备份,命令:sudo gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=时间戳(时间戳需与备份文件名中的时间戳一致,如1725431200)。恢复过程中会提示“是否删除现有表”“是否重建authorized_keys文件”,均选择yes。gitlab-secrets.json复制到新服务器的/etc/gitlab/目录,覆盖现有文件。/var/opt/gitlab/repositories目录),可使用rsync命令同步:sudo rsync -avz /var/opt/gitlab/repositories/ user@新服务器IP:/var/opt/gitlab/repositories/chown -R git:git /var/opt/gitlab/repositories)。sudo gitlab-ctl reconfigure,使gitlab.rb中的配置生效。sudo gitlab-ctl start。http://新服务器IP),检查登录页面是否正常。git用户的目录归属(chown -R git:git /var/opt/gitlab/)。