恢复前需要先停掉数据连接服务:
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
如果是台新搭建的主机,不需要操作,理论上不停这两个服务也可以。停这两个服务是为了保证数据一致性。将老服务器/data/gitlab/backups目录下的备份文件拷贝到新服务器上的/data/gitlab/backups
[root@localhost gitlab]# rsync -avz 1530773117_2019_03_05_gitlab_backup.tar 192.168.95.135:/data/gitlab/backups/
注意权限:600权限是无权恢复的。 实验环境可改成了777,生产环境建议修改属主属组
[root@yunwei-test backups]# pwd
/data/gitlab/backups
[root@yunwei-test backups]# chmod 777 1530773117_2019_03_05_gitlab_backup.tar
[root@yunwei-test backups]# ll
total 17328900
-rwxrwxrwx 1 git git 17744793600 Jul 5 14:47 1530773117_2018_07_05_gitlab_backup.tar
执行下面的命令进行恢复:后面再输入两次yes就完成恢复了。
gitlab-rake gitlab:backup:restore
注意:backups 目录下保留一个备份文件可直接执行
BACKUP=1530773117_2018_07_05_gitlab_backup.tar
恢复完成后,启动刚刚的两个服务,或者重启所有服务,再打开浏览器进行访问,发现数据和之前的一致:
gitlab-ctl start unicorn
gitlab-ctl start sidekiq
或
gitlab-ctl restart
注意:通过备份文件恢复gitlab必须保证两台主机的gitlab版本一致,否则会提示版本不匹配
什么叫平滑:在发布的过程中不影响用户的使用,系统不会因发布而暂停对外服务,不会造成用户短暂性无法访问; 什么叫灰度:发布后让部分用户使用新版本,其它用户使用旧版本,逐步扩大影响范围,最终达到全部更新的发布方式 ;
灰度发布与平滑发布其实是关联的。当服务器的数量只有一台的时候,不存在灰度发布,一旦发布了就是所有用户都更新了,所以这个时候只有平滑发布。当服务器数量大于一台的时候,只要每台服务器都能达到平滑发布的方式,然后设定好需要发布的服务器占比数量,就可以实现灰度发布了。
单台服务器的平滑发布模式:
单机状态下,应用的持续服务主要依靠Nginx的负载均衡及自动切换功能;
为了能够切换应用,需要在服务器中创建两个相同的独立应用,分配两个不同的端口,
例如:app1,端口801; app2,端口802;
在Nginx中,将app1,app2作为负载均衡加载:
upstream myapp{
server 127.0.0.1:801; //app1
server 127.0.0.1:802; //app2
}
然后设置代理超时为1秒,以便在某个应用停止时及时切换到另一个应用:
server {
listen 80;
server_name localhost;
location /{
proxy_pass http://myapp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;
}
}
以上内容写在单独的配置文件中:/vhost/pub/pub_app.conf
在nginx.conf里包含进去:
include /vhost/*.conf;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。