备份正文
我这个gitlab是容器安装的,直接使用最新的gitlab镜像,gitlab版本是10.7.3
。
要备份数据的话,就要进入容器里,执行gitlab-rake gitlab:backup:create
,效果如下:
执行完毕之后,在/var/opt/gitlab/backups
文件夹里就会生成一个备份文件,我这里生成的文件叫:1526454102_2018_05_16_10.7.3_gitlab_backup.tar,这个就是备份的文件。
如果要还原的话,命令如下:
1
2
3
4
5
6
7
8
9
10
11# 先关闭连接数据库的进程
sudo gitlab-ctl stop
# 通过指定时间戳来执行restore操作,这个操作会复写gitlab的数据库
sudo gitlab-rake gitlab:backup:restore BACKUP=1526454102 #BACKUP后面的是备份文件开头的那串数字
# 再次启动gitlab
sudo gitlab-ctl start
# 通过下面命令检查gitlab
sudo gitlab-rake gitlab:check SANITIZE=true
注意!利用backup机制进行备份的话,对gitlab的版本是要求严格一致的。例如用8.6版的gitlab生成的备份文件,拿到8.7版的gitlab上进行恢复,是会报错的。
同时除了要导入备份文件之外,还要备份以下几个文件:
1
2
3/etc/gitlab/gitlab.rb 配置文件须备份
/var/opt/gitlab/nginx/conf nginx配置文件
/etc/postfix/main.cfpostfix 邮件配置备份
如果要设置这个备份文件的生命周期和备份文件存储的位置,编辑/etc/gitlab/gitlab.rb
,修改如下的地方:
1
2
3
4gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #这里改新路径
gitlab_rails['backup_archive_permissions'] = 0644 #这里可以设定文件的权限
# limit backup lifetime to 7 days - 604800 seconds
gitlab_rails['backup_keep_time'] = 604800 #文件存储时间一周
然后重启一下gitlab即可。