嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2015-03-08 2405 次浏览 标签 : LinuxMysqldba

免费领取阿里云优惠券 我的直播 - 《PHP 进阶之路》

之前按照计划把数据库做了迁移,笔记:http://mengkang.net/386.html

由于的任务是把后台数据库导入合并到前台数据库,所以,我当时只是测试了后台是否好用,测试了一会没有发现什么问题。后续断断续续出现了些问题现在记录下:

禁止一切对旧数据库的写入操作(子项目,计划任务)

做数据库迁移的时候,只提前禁止了代码上的数据库写入,但是忘记了计划任务里面还有很多对该数据库的写操作,而正好很多统计工作也是在凌晨那会执行,导致数据迁移的时候有遗漏。

这是第二天,查看昨日一些统计分析数据时候发现的,也就是说,迁移库相关的计划任务也应该相对调整,延时执行或者记录到临时库。

检查所有代码里面的数据库连接操作

代码里有多套数据库操作类,因为整个系统代码有重写的新代码,当时只改了新版数据库操作类里面的数据库配置,没有修改老版本的数据库配置(老版本没有数专门的数据库配置文件),所以这个时候更应该全局搜索下迁移之前的数据库服务器的ip地址+端口号,以免遗漏。

这是过了几天之后,客户端在调用某个api的时候直接崩溃了发现的。也是统计相关,由于老数据库没删,所以最开始没发现,但是到了新的一周,没有新数据库入库,问题旧暴露出来了。

这个问题属于代码管理不规范造成的,但是不能忽略这个问题存在的可能性。

检查所有新机器的数据库权限是否正常

迁移以后负载均衡分发到后面的几台服务器是否都有权限去连更换后的数据库。

这也也是过了一段时间之后,还是用户反馈打开某个界面的时候app会闪退,但是不是每次都出现,所以想到是后端某台机器出现了问题。果不其然,我一台台测试之后,发现有一台访问的时候之前做修改的一个数据库查询返回结果为空,在确定了代码是一致的情况下,最后定位为数据访问权限的问题。

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表