Debian系统GitLab数据迁移详细步骤
运行以下命令创建完整备份(包含数据库、仓库、CI/CD配置等):
sudo gitlab-rake gitlab:backup:create CRON=1
备份文件默认保存在/var/opt/gitlab/backups目录,文件名格式为时间戳_gitlab_backup.tar(如1714905600_gitlab_backup.tar)。
sudo tar -czvf /tmp/gitlab_configs.tar.gz /etc/gitlab
sudo rsync -avz /var/opt/gitlab/repositories/ /tmp/gitlab_repos/
sudo rsync -avz /var/opt/gitlab/shared/ /tmp/gitlab_shared/
使用scp命令将备份文件复制到新服务器(替换user、new-server-ip为实际值):
scp /tmp/gitlab_backup.tar.gz user@new-server-ip:/var/opt/gitlab/backups/
scp /tmp/gitlab_configs.tar.gz user@new-server-ip:/var/opt/gitlab/
恢复前需停止GitLab的数据连接服务,确保数据一致性:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo mv /var/opt/gitlab/backups/gitlab_backup.tar.gz /var/opt/gitlab/backups/
sudo chmod 777 /var/opt/gitlab/backups/gitlab_backup.tar.gz
BACKUP为备份文件的时间戳部分):sudo gitlab-rake gitlab:backup:restore BACKUP=1714905600
恢复过程中需输入yes确认覆盖现有数据。sudo tar -xzvf /var/opt/gitlab/gitlab_configs.tar.gz -C /
sudo rsync -avz /tmp/gitlab_repos/ /var/opt/gitlab/repositories/
sudo rsync -avz /tmp/gitlab_shared/ /var/opt/gitlab/shared/
若新服务器的IP、域名或SSH端口发生变化,需修改/var/opt/gitlab/gitlab.rb文件:
gitlab_rails['gitlab_shell_ssh_port'] = 22 # 确认SSH端口
gitlab_rails['gitlab_shell_ssh_host'] = 'new-server-ip' # 新服务器IP
修改后重新加载配置:
sudo gitlab-ctl reconfigure
启动GitLab服务:
sudo gitlab-ctl start
或重启所有服务:
sudo gitlab-ctl restart
验证数据完整性:
http://new-server-ip),使用旧账号登录。git push)和拉取(git pull)功能,确保仓库可正常访问。