升级流程
一、升级AAbi的操作步骤以及细节 1.将包传到BI服务器的目录下
Bi8.18目前有5个包,包地址:lts-8.18 出包记录 - POPO文档 (netease.com)
这五个包建议新建一个目录存放起来,比如/Netease/lts815下
docker26的版本升级脚本也传到bi服务器上,名称为docker_installer.centos.docker26.sh,这个脚本建议赋予可执行权限后放到BI服务器的/youdata/installer目录下。
2.解压8.15版本包并load镜像
上述的8.15版本包已经放在了/Netease/lts815下(这个目录根据实际情况来放,可以看下/下的youdata目录软链的哪个目录,建议放在磁盘空间大的目录下,防止磁盘打满)。
然后解压包: #包已经放到了/Netease/lts815
cd /Netease/lts815
cat youdata_installer.lts818.tar.part_a*|tar xvf -上述命令执行完后,会将bi8.15版本的脚本和配置文件还有镜像包都放在installer目录下
cd installer
docker load -i youdata.tar.xz (这个过程会比较慢,因为是将bi 8.18版本的镜像都拉取下来,需要6-7min的时间)#上述操作如果是双机版本,两台机器都要操作上述命令3.有数停服
停服命令
docker service scale ydswarm_web=0
docker service scale ydswarm_schedule=0可以将第三步放到停服后操作,也可以停服前操作
4.备份nginx配置文件和8.15版本配置文件
升级8.18需要备份原先旧版本(这里假设是8.11版本)的目录下的config文件夹(/youdata/config), nginx配置文件(/youdata/installer/nginx.conf.tpl) 旧版本配置文件(/youdata/installer/docker-stack.ydswarm811.yaml,单机的话就是youdata85.yaml,双机的是ydswarm85.yaml)
4.1、备份config目录
将815的config文件拷贝到/youdata下,并将85的config文件做了备份
cd /youdata
mv config config.bakxxxx(日期)
cd /Netease/lts815/installer
cp -r config /youdata4.2、备份nginx配置文件 将85的nginx配置文件进行备份,并将815的nginx配置文件做更改之后传到/youdata/installer下
cd /youdata/installer
mv nginx.conf.tpl nginx.conf.tpl.bakxxxx
cp nginx.conf.tpl.bakxxxx /Netease/lts815/installervimdiff nginx.conf.tpl nginx.conf.tpl.bakxxxx (比对815和85的nginx配置的不同,并将815的配置文件进行更改保存)
cp nginx.conf.tpl /youdata/installer4.3、备份docker swarm yaml文件 将815的有数配置文件和85配置文件比对更改保存后传到/youdata/installer下,这个操作很费时,需要仔细比对。
cd /youdata/installer
cp docker-stack.ydswarm85.yaml /Netease/lts815/installer
cd /Netease/lts815/installer
vimdiff docker-stack.ydswarm85.yaml docker-stack.ydswarm815.yaml (这一步相当关键,一定得比对好配置,将815配置文件更改好,除了镜像版本是8.15外,其余配置最好和85保持一致,除了capture组件和一些老版本配置815不支持具体更改细节到时协助支持)
cp docker-stack.ydswarm815.yaml /youdata/installer以上3个备份操作是可以在停服前操作的,也可以停服后操作,数据库备份需要在停服后操作,以防还在写入新的数据。 5.数据库备份 数据库如果是业务自己使用的mysql就让业务自己备份下,如果用的是youdata的数据库 (可以通过ydswarm85.yaml的DB字段看下mysql是不是youdata的) 单机BI执行以下脚本
sh /youdata/scripts/backup_single.sh
ll /youdata/db_data_backup双机BI执行以下脚本
docker cp /youdata/scripts/backup_common.sh mysql-paas-youdata-1:/
docker exec mysql-paas-youdata-1 bash /backup_common.sh 127.0.0.1 3306 youdata youdata /usr/local/mysql/bin/
docker cp mysql-paas-youdata-1:/youdata/db_data_bak/ /youdata/
ll /youdata/db_data_backup停服后数据库备份操作,备份好后开始删除堆栈
docker stack ls #看下有哪些堆栈docker stack rm youdata #将原先的85服务堆栈删除6.启动有数服务并更新web数据 启动有数服务
cd /youdata/installer
dsd docker-stack.youdata818.yaml youdata
dv ls
docker service ls 更新web数据
docker ps|grep web (得到web容器ID)
docker exec -it web容器ID /bin/bash#进入到容器后
node src/app/upgrade/upgrade.js#会报错,看下当前版本是多少,这里8.11会报8.12
node src/app/upgrade/upgrade.js 8.12 8.18(更新到8.18版本)
exit #退出容器
cd /youdata/scriptsbash status_reset.sh ydswarm等待执行完毕,然后dv ls检查下服务都起来没
dv ls
docker service ls 7、升级验证
curl localhost/api/dash/hello 看下返回值版本是不是8.15的 都没问题就可以进入前端界面验证下功能了 二、Bi版本回退方案 1.将原先的85配置文件还原
cd /youdata
mv config config.815bak
mv config.bakxxxx config #将原来的85版本config文件还原
cd /youdata/installermv nginx.conf.tpl nginx.conf.tpl.815bak
mv nginx.conf.tpl.bakxxxx nginx.conf.tpl #将原先的85版本nginx配置文件还原#85yaml配置文件不用动,还是在/youdata/installer目录下2.停服和数据库备份
docker service scale ydswarm_web=0
docker service scale ydswarm_schedule=0停服后业务需要用之前备份好的数据库sql文件,将原先备份的数据库删掉
drop database 数据库名;
create database 数据库名;
use 数据库名;
source 备份好的sql文件;如果是备份了多个库,重复执行上述操作
docker stack rm ydswarm删除原先的818堆栈
3.启动原先的85配置yaml文件
cd /youdata/installer
docker stack deploy -c docker-stack.ydswarm85.yaml ydswarm再重新启动原先的85版本服务
docker service ls 检查服务是不是都起来了
curl localhost/api/dash/hello
以上内容对您是否有帮助?