就职于某it公司,在做数据库系统迁移至华为云的过程中,遇到一次奇特的bug,本文予以记录,仅用来回顾事件的发生过程,启发以后得迁移更稳定。
背景
系统的数据库地址是从某配置表里面读取,并且在系统启动之后,数据库地址没有更换的条件,除非重启,让系统重新拉取最新地址。
旧的数据库在阿里云,系rds服务,关于rds,前文有述,此处不在赘述。因涉及数据库地址的更换,提前了3个月修改配置表,理论上3个月的时间,所有的服务都能重启一遍,就能加载到最新的库地址。
过程回顾
但是,在迁移之后发现,某tomcat不能连接数据库。
在遇到问题之后,排查发现,群内已经通知了某时间之后未重启的服务需要重启,但是这个通知的列表缺少本次遇到的异常tomcat,这就很神奇了。
深入排查发现,修改配置表时,为了系统安全,分为两批进行的修改分别是6.1 16点和6.2 9点,但是记录修改时间是6.1 16点,此tomcat在6.2 8点时做了最后一次重启,所以通知的列表用错了这个时间,导致tomcat管理员未关注到此问题,从而忽略此tomcat的重启。
image.png
教训经验
系统迁移,是一个很大的事件,迁移时的记录应准确记录各个系统的修改时间,准确评估各个阶段的tomcat会有什么影响。
网友评论