风险注意:

  • 升级是停机升级,请提前通知相关人员,选择用户量较少的时候升级
  • 升级过程中自动备份无人监控可能会失败,为了备份数据正确性和完整性,建议再手动备份下数据库数据,防止意外情况发生,数据丢失造成严重后果
  • 升级前要确保磁盘空间充足(至少100G),防止升级过程中磁盘不足,造成升级失败
  • 升级过程中,发生意外情况,第一时间联系客服
  • 升级过程中,不仅是停止服务器的使用,也要确认考勤机也无人使用
  • 对于云服务器使用的用户,如无法停止服务使用,升级中有新数据产生,可能影响备份回滚
  • 1.部署前环境检查

    • 1.以root用户ssh登录部署目标服务器,检查服务器可用磁盘大小。
    • 2.执行以下命令:
      1. df -h
      查看数据库已用大小
      1. du -sh /opt/homology/mysql3306
    • 3.确定是否可升级一般要预留数据库备份磁盘
  • 2.部署前数据备份
    • 1.执行以下命令:
      1. docker exec -ti mdmysql /bin/sh -c 'mysqldump -uroot -pxxx --databases homology > homology.sql'
      2. docker cp mdmysql:/homology.sql ./
    • 2.查看sql文件大小,确定备份成功
      1. ls -lh
  • 3.一键升级
    • 1.以root用户ssh登录部署目标服务器,下载程序包并解压到/opt/download目录。
    • 2.执行以下命令:
      1. cd /opt/download && tar -xvf upgrade-homology*.tar.gz -C /opt/download/
    • 3.进入目录,并执行升级脚本
      1. cd upgrade-homology && ./upgrade.sh
    • 4.等待脚本执行结束,期间不可强制中断,防止数据库操作有误,并且脚本不可重复多次执行。
  • 4.升级失败回滚(运维回滚)
    • 1.停止mdone-service服务
      1. docker stop mdone-service
    • 2.删除homology数据库并查看
      1. docker exec -ti mdmysql /bin/sh -c 'mysql -uroot -pxxx -se "drop database homology;"'
      2. docker exec -ti mdmysql /bin/sh -c 'mysql -uroot -pxxx -se "show databases;"'
    • 3.创建新的数据库并设置编码格式
      1. docker exec -ti mdmysql /bin/sh -c 'mysql -uroot -pxxx -se "CREATE DATABASE IF NOT EXISTS homology DEFAULT charset utf8;"'
    • 4.导入原备份数据
      1. docker exec -ti mdmysql /bin/sh -c 'mysql -uroot -pxxx homology < homology.sql'
    • 5.查看表结构确认导入无误
      1. docker exec -ti mdmysql /bin/sh -c 'mysql -uroot -pxxx -se "use homology;show tables;"'
    • 6.删除老版本代码以及镜像包代码
      1. docker rm -f mdtyqd
      2. docker rm -f mdone-service
      3. docker rmi mdone-service:latest
      4. docker rmi mdtyqd:latest
    • 7.进入备份目录,导入老版本代码包
      1. cd /opt/backup/xxxx/
      2. docker load < mdtyqd.tar.gz
      3. docker load < mdone-service.tar.gz
    • 6.重新启动服务
      1. cd /opt/homology/ && docker-compose up -d
    • 7.登录控制台,确定原有业务正常运行
文档更新时间: 2023-03-23 11:25   作者:admin