Debian系统中GitLab数据迁移详细步骤
运行以下命令创建完整备份(默认备份文件包含数据库、Git仓库、CI/CD配置、上传文件等):
sudo gitlab-rake gitlab:backup:create
备份文件默认存储在/var/opt/gitlab/backups目录,文件名格式为时间戳_版本号_gitlab_backup.tar(如1717411200_16.0.0_gitlab_backup.tar)。
为确保配置一致性,需单独备份GitLab配置文件和SSL证书:
sudo cp /etc/gitlab/gitlab.rb /your/backup/path/ # 备份主配置文件
sudo cp -r /etc/gitlab/ssl /your/backup/path/ # 备份SSL证书(若使用HTTPS)
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
EXTERNAL_URL为新服务器的域名或IP):sudo EXTERNAL_URL="http://your-new-gitlab-domain.com" apt-get install gitlab-ce
sudo gitlab-ctl reconfigure应用配置,启动GitLab服务。使用scp命令将旧服务器的备份文件(含数据、配置、证书)复制到新服务器的对应目录:
scp -r /var/opt/gitlab/backups/your_backup_file.tar user@new-server:/var/opt/gitlab/backups/
scp -r /your/backup/path/gitlab.rb user@new-server:/etc/gitlab/
scp -r /your/backup/path/ssl user@new-server:/etc/gitlab/
unicorn(应用服务器)和sidekiq(后台任务处理器)服务:sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
BACKUP=时间戳替换为备份文件的前缀):cd /var/opt/gitlab/backups
sudo gitlab-rake gitlab:backup:restore BACKUP=1717411200
恢复过程中会提示“是否覆盖现有数据”,输入yes确认。
sudo cp /your/backup/path/gitlab.rb /etc/gitlab/
sudo cp -r /your/backup/path/ssl /etc/gitlab/
运行sudo gitlab-ctl reconfigure使配置生效。
sudo gitlab-ctl start
http://your-new-gitlab-domain.com),检查用户、项目、CI/CD配置等是否正常显示。/var/opt/gitlab)属主为git用户(可通过chown -R git:git /var/opt/gitlab修复)。/etc/gitlab/gitlab.rb中的gitlab_rails['backup_path']和gitlab_rails['backup_keep_time'],然后运行sudo gitlab-ctl reconfigure)。