资讯专栏INFORMATION COLUMN

数据库故障营业系统重启恢复操作

IT那活儿 / 775人阅读
数据库故障营业系统重启恢复操作
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

  

当数据库出现故障时,营业系统需要配合进行切换及重启恢复操作。而手动停止、启动、重启业务应用容器、进程等操作比较繁琐效率低,原来需要多人同时花费大量时间完成的事情使用该场景功能现在只用一个人就能解决,把大量重复性工作并发执行减少工作量、人为误操作等并提升整体工作效率。



哪个平台可以将大量重复性工作并发执行减少工作量、人为误操作等并提升整体工作效率??

那就必须给大家介绍一款产品:ZnAiops智慧运营管理平台--基于统一的智能中台构建,具备构建一体化、自动化、智能化运维管理能力。接下来就给大家具体展示一下它所具备的场景功能。







场景流程



通过这个调度可以实现单节点故障/恢复、数据库全停库割接两个场景。

1. 单节点故障/恢复

场景描述:营业A库,营业A1、A2连接同一个存储,当A1出现故障挂掉后A1连接数会自动漂移至A2,A1手动恢复正常后A2中短连接并未流向A1,容器、进程还未重启的情况下A2可能会因为连接数过高造成宕机等问题。
解决方案:使用该场景通过一键重启云化系统、进程使A2保留长连接其中短连接流向A1,让系统恢复正常。

2. 全停库割接

场景描述:首先要把连割接数据库的业务应用停掉,然后dba停止数据库进行割接操作完成后启动数据库,启动之前停掉的业务应用,重启后台进程。
解决方案:使用该场景能实现一键停止、启动业务应用容器,根据需求一键重启后台进程,减少现场多位人员大量启停重复性工作,使其单人就能完成。





操作步骤



场景一:单节点故障/恢复,分为四个步骤。

step1:选择工作类型

选择对应场景:执行调度,工作类型选择单节点恢复,数据库选择涉及的数据库。

step2:重启云化系统

支持滚动重启云化系统,选择off将会不重启容器进入下一节点,选择on将会重启容器脚本如下:
该脚本调用K8s api通过修改yaml配置中的annotations的变量值构建新的YAML信息替换原有的yaml来实现了滚动重启namespace。

step3:重启后台进程

选择是否重启后台进程。选择off单节点故障/恢复流程结束,选择on将会重启进程,脚本如下:
该脚本使用了多线程 、paramiko直接对远程服务器进行操作来实现从数据库读取需要重启的后台进程并重启。
这里需要注意一点,如果上一步选择执行滚动重启云化系统的任务的话,需要等待云化系统重启完成后才能重启后台进程,否则可能会导致部分后台进程连接jcrm等容器失败。

step4:检查后台进程重启情况

登录智慧运维管理平台使用数据库查询服务,检查进程重启情况,SQL如下:
select t.restarting_status, count(*)
from shsnc.process_yy_fwkt t
group by t.restarting_status

场景二:全停库割接,分为个六个步骤。

step1选择工作类型

执行调度,工作类型选择全停库割接,数据库选择涉及的数据库。

step2:停止容器

开始执行后会先自动根据选择涉及的数据库对云化系统对应的容器进行停止处理并等待操作,脚本参数如下:
该脚本调用K8s api通过修改副本数为0停止容器,实现了保存depoyment下容器数量并停止容器。

step3:dba割接操作

停止数据库,需要dba配合停止数据库,等待数据库停止后选择ON通过。
启动数据库,需要dba配合启动数据库进行割接,等待全部完成后选择ON通过。

step4:启动容器

启动停止的容器,上一步通过以后会自动将之前停止的容器重新拉起,脚本如下:
该脚本调用K8s api通过修改副本数为停止前数值启动容器,实现了保存depoyment下容器数量并启动容器。

step5:重启后台进程

选择是否重启后台进程。选择off全停库割接流程结束,选择on将会重启进程,脚本如下:
该脚本使用了多线程 、paramiko直接对远程服务器进行操作来实现从数据库读取需要重启的后台进程并重启。

step6检查后台进程重启情况

登录智慧运维管理平台使用数据库查询服务,检查进程重启情况,SQL如下:
selectt.restarting_status, count(*)
fromshsnc.process_yy_fwkt t
group by t.restarting_status;


单节点故障/恢复操作展示

智慧运维管理平台-操作中心-运维配置-调度-执行数据库割接单节点恢复云化系统重启选择单节点恢复,开始执行后选择滚动重启云化系统,操作界面输出日志等待程序执行完成后结束。

注意事项:单节点恢复的时候需要把部分容器剔除如行程码,注意容器启停顺序等。

开发中的难点

  • k8s没有滚动重启的api,仅提供命令行。
  • 解决方案:直接修改pod的yaml的部署文件,apply滚动更新。





后续优化



目前整个场景流程中重启容器、进程操作没有检查项是否重启完成,检查操作已在开发中。

因该场景较为特殊测试会影响到生产环境,尚未在生产环境中正式执行过,无法确定功能是否存在其他问题。

本文作者:易俊杰(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129346.html

相关文章

  • 云计算节点故障自动化运维服务设计

    此文已由作者王盼授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验~ 现状计算节点发生磁盘损坏等数据无法恢复的异常时,节点上的云主机系统盘无法恢复,导致云主机只能被清理重建 计算节点宕机但磁盘数据可用时,重启即可恢复所有云主机的运行 计算节点多次宕机(或一段时间内频繁宕机),则需要迁移所有云主机或者直接清理重建,云硬盘需要迁移到其他cinder-volume存储服务节点 一般来...

    seanHai 评论0 收藏0
  • 盘点:2014年十大云故障

    摘要:以下这个名单恐怕是这些公司不想看到的的年前大云故障。微软称这次中断是由外部网络故障所导致,部分用户受影响长达个小时。微软表示这次中断与故障无关。微软最终确定人为错误是罪魁祸首。 本杰明•富兰克林曾经说过,这个世界上有两件事情不可避免,死亡和纳税。但如果这位伟大的政治家和发明家活在我们的现代世界,也许服务器停机也会进入这个名单。不管底层技术再怎么好,也不管托管提供商再多么能干,云总是会发生故障...

    DesGemini 评论0 收藏0
  • AWS S3 挂掉原因:程序员输错字母,误删服务器,故障4小时!

    摘要:周四声称,输错命令导致了亚马逊网络服务出现持续数小时的故障事件。太平洋标准时上午,一名获得授权的团队成员使用事先编写的,执行一条命令,该命令旨在为计费流程使用的其中一个子系统删除少量服务器。 AWS解释了其广大US-EAST-1地理区域的S3存储服务是如何受到中断的,以及它在采取什么措施防止这种情况再次发生。 AWS周四声称,输错命令导致了亚马逊网络服务(AWS)出现持续数小时的故障事件。这...

    MarvinZhang 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<