CentOS上GitLab数据迁移详细步骤
yum install -y policycoreutils openssh-server openssh-clients postfix
systemctl enable sshd && systemctl start sshd
systemctl enable postfix && systemctl start postfix
# GitLab 12.1及以上版本
gitlab-backup create
# GitLab 12.1及以下版本
gitlab-rake gitlab:backup:create
默认备份文件存储在/var/opt/gitlab/backups目录,文件名为时间戳_版本号_gitlab_backup.tar(如1715000000_16.0.0_gitlab_backup.tar)。使用scp命令将备份文件从源服务器复制到目标服务器的相同备份目录(需提前创建/var/opt/gitlab/backups并设置git用户所有权):
scp root@源服务器IP:/var/opt/gitlab/backups/*.tar root@目标服务器IP:/var/opt/gitlab/backups/
unicorn(Web服务)和sidekiq(后台任务)进程:sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
1715000000):sudo gitlab-backup restore BACKUP=1715000000
恢复过程会覆盖现有数据库和仓库数据,需确认操作。gitlab.rb(GitLab主配置)和gitlab-secrets.json(敏感信息,如数据库密码、SMTP密钥)复制到目标服务器的/etc/gitlab/目录:scp root@源服务器IP:/etc/gitlab/gitlab.rb root@目标服务器IP:/etc/gitlab/
scp root@源服务器IP:/etc/gitlab/gitlab-secrets.json root@目标服务器IP:/etc/gitlab/
reconfigure命令使配置文件生效,更新数据库连接、SSH端口等信息:sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
sudo gitlab-ctl enable
external_url(如http://目标服务器IP),确认能正常登录。/var/log/gitlab/):tail -f /var/log/gitlab/gitlab-rails/production.log
scp而非FTP),避免泄露。