Gitlab是一款开源的Git版本管理系统,可以通过WEB界面访问公开或者私人的Git项目。详细的介绍与Gitlab安装方法可以查看在ubuntu上快速安装Gitlib开源Git版本管理系统 。本篇文章主要内容有:备份gitlab数据、定时备份gitlab数据、恢复gitlab数据以及迁移gitlab,熟练掌握可以增加gitlab服务的容灾性。
实战环境
服务器版本:Linux bogon 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 GNU/Linux
gitlb版本:8.9.0
备份gitlab服务器数据
使用如下命令即可创建Gitlab备份。
gitlab-rake gitlab:backup:create
可以看到数据备份成功:
Dumping database ...
Dumping PostgreSQL database gitlabhq_production ... [DONE]
done
Dumping repositories ...
* root/test ... [DONE]
* root/test.wiki ... [SKIPPED]
done
Dumping uploads ...
done
Dumping builds ...
done
Dumping artifacts ...
done
Dumping lfs objects ...
done
Dumping container registry images ...
[DISABLED]
Creating backup archive: 1466811825_gitlab_backup.tar ... done
Uploading backup archive to remote storage ... skipped
Deleting tmp directories ... done
done
done
done
done
done
done
Deleting old backups ... skipping
备份后在/var/opt/gitlab/backups目录下生成备份文件,类似是这样的 1466811825_gitlab_backup.tar 文件,其中1466811825是备份时的服务器时间戳。
定时备份gitlab数据
使用linux服务器中的crontab就可以设置定时备份gitlab数据了,过程如下:
1、切换到root用户
su
2、添加gitlab备份定时任务
#添加任务 crontab -e #每天5点备份gitlab数据 0 5 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
恢复gitlab数据
恢复数据使用以下命令:
# 停止相关数据连接服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq # 从1393513186编号备份中恢复 gitlab-rake gitlab:backup:restore BACKUP=1466811825 # 启动 Gitlab sudo gitlab-ctl start
迁移gitlab数据
迁移gitlab数据到新的服务器上流程和恢复差不多,和恢复不同的是你首先要在新服务器上安装同版本的gitlab,然后将备份数据,例如1466811825_gitlab_backup.tar 复制到新服务器的/var/opt/gitlab/backups目录下,然后执行恢复程序即可。
更正笔误,#每天5点备份gitlab数据
0 5 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create