其他分享
首页 > 其他分享> > 【技术】一个由于时间问题引发的血案

【技术】一个由于时间问题引发的血案

作者:互联网

导读:公司目前正在搞多机房部署,多机房部署数据库那一块采用是MYSQL 的主主同步,由于部署另外一个机房的时候忘记添加时间ntp 服务器的同步,导致两个机房服务器时间不一致,而公司有个论坛是采用discuzX2 的版本,论坛的php 的统计程序会在0 点的时候做清空帖子数等一些操作,这些信息会改写数据库中相应的记录,应此通过MYSQL 的同步,另外一边也出现帖子数清零的现象。

公司目前正在实施多机房部署,避免因为一个机房出先问题而导致业务中断的情况,目前另外一个机房已经部署好了,只是目前只用了一个机房,深圳机房还处于测试阶段,架构如下图

所示:

 

图片

 

目前在用的是佛山机房,网站架构为LNMP(linux/nginx/mysql/php),其中论坛使用的是discuzX2的版本。

下午3 点的时候运营那边突然打电话过来询问,为什么论坛的所有板块的帖子都置0 了?感到问题比较严重,于是赶紧登录服务器查看,SELECT `name`,todayposts FROMpre_forum_forum;查看这个板块表中,发现todayposts 被重置了。因为数据库的管理员只有我一个人知道,因此不会有人去直接重置那个表的信息。

查找计划任务看看是否有计划任务会去更新pre_forum_forum 表的todayposts 字段,也没发现。我怀疑是什么条件触发了那个论坛的一些统计脚本,因为帖子到了0 点才会清零。突然意识到会不会是时间到0 点了?于是登录佛山服务器查看,时间正常。再登录深圳机房服务器,oh my gold!时间是00 点过2 分钟。咨询开发,他们说是discuz 中含有一些统计的和清零的脚本,到了0 点就会清空帖子数等一些操作。

这些操作会写入数据库,由于佛山和深圳机房做了MYSQL 主主同步,因此也会同步到佛山机房的数据库中,导致佛山的论坛出现帖子数清零的现象。那么为什么深圳机房的时间会和佛山机房的差那么远呢?原来是忘记将时间同步的命令添加到计划任务中。

赶紧将时间同步的命令添加到计划任务中,59 5,9,14,19,23* * * ntpdate asia.pool.ntp.org。另外为了避免类似问题,将这个命令加入到系统初始化脚本中,以后一安装完系统就跑系统初始化脚本。

 

教训

这个是一个很低级的错误,对于这种服务器都需要用

的基础配置,必须添加到系统初始化脚本中,避免再次出现类似

的问题。同时也给自己一个教训就是配置好服务器后需要做详细

的检查,要细心,杜绝此类低级错误的发生。

ead from remote host X.X.X.X: Connection reset by peer 

 

解决办法

有的时候要采用scp 备份异地的文件,这个时候有的时候会

出现如下报错ead from remote host X.X.X.X: Connection reset by peer

lost connection

解决办法,在客户端上的/etc/ssh/sshd_config 添加如下内容:

ClientAliveInterval 300

ClientAliveCountMax 60

重启ssh,看看是否还会出现类似问题?

 

1

 

 

end

 

标签:佛山,同步,血案,引发,技术,帖子,机房,服务器,清零
来源: https://blog.csdn.net/XMWS_IT/article/details/114969783