在Ubuntu上恢复GitLab数据通常涉及以下步骤:
创建备份目录:
sudo mkdir -p /var/opt/gitlab/backups
sudo chown -R git:git /var/opt/gitlab
修改GitLab配置:
编辑 /etc/gitlab/gitlab.rb
文件,设置备份路径和备份保留时间。
sudo vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800 # 备份7天
修改后,需要运行以下命令以重新加载配置文件:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
定时任务备份:
使用 crontab
设置定时任务,例如每天凌晨2点执行备份。
sudo crontab -e
# 添加以下行
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
手动执行脚本进行备份:
sudo gitlab-rake gitlab:backup:create
使用rsync进行增量备份(可选):
结合 rsync
进行增量备份,以节省空间和备份时间。
sudo rsync -avz --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lostfound"} /var/opt/gitlab/ /path/to/backup/directory/
停止相关服务: 为保证一致性,先停止服务:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
(其他服务无需停止。)
选择并恢复备份文件:
将备份文件放到 /var/opt/gitlab/backups
目录中,并赋予权限。
sudo cp /path/to/backup/file.tar /var/opt/gitlab/backups/
sudo chmod 777 /var/opt/gitlab/backups/file.tar
运行恢复命令:
sudo gitlab-rake gitlab:backup:restore BACKUP=1679122231_2024_06_41_13.9.7_gitlab_backup.tar
备份文件前缀为文件名的时间戳部分,例如 1679122231
。
恢复配置文件和SSL:
sudo cp /your/backup/path/gitlab.rb /etc/gitlab/gitlab.rb
sudo cp -r /your/backup/path/ssl /etc/gitlab/
启动服务: 恢复完成后,启动服务:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
验证恢复: 登录到GitLab界面,检查是否成功恢复了所有数据,确保GitLab实例正常运行并可访问。
请注意,数据恢复存在风险,操作前请立即停止写入新数据,并确保您有最新的备份文件。如果您在恢复过程中遇到任何问题,建议联系GitLab官方支持或专业人士以获得帮助。