【技术】一个由于时间问题引发的血案
導(dǎo)讀:公司目前正在搞多機(jī)房部署,多機(jī)房部署數(shù)據(jù)庫那一塊采用是MYSQL 的主主同步,由于部署另外一個機(jī)房的時候忘記添加時間ntp 服務(wù)器的同步,導(dǎo)致兩個機(jī)房服務(wù)器時間不一致,而公司有個論壇是采用discuzX2 的版本,論壇的php 的統(tǒng)計(jì)程序會在0 點(diǎn)的時候做清空帖子數(shù)等一些操作,這些信息會改寫數(shù)據(jù)庫中相應(yīng)的記錄,應(yīng)此通過MYSQL 的同步,另外一邊也出現(xiàn)帖子數(shù)清零的現(xiàn)象。
公司目前正在實(shí)施多機(jī)房部署,避免因?yàn)橐粋€機(jī)房出先問題而導(dǎo)致業(yè)務(wù)中斷的情況,目前另外一個機(jī)房已經(jīng)部署好了,只是目前只用了一個機(jī)房,深圳機(jī)房還處于測試階段,架構(gòu)如下圖
所示:
?
?
目前在用的是佛山機(jī)房,網(wǎng)站架構(gòu)為LNMP(linux/nginx/mysql/php),其中論壇使用的是discuzX2的版本。
下午3 點(diǎn)的時候運(yùn)營那邊突然打電話過來詢問,為什么論壇的所有板塊的帖子都置0?了?感到問題比較嚴(yán)重,于是趕緊登錄服務(wù)器查看,SELECT?`name`,todayposts FROMpre_forum_forum;查看這個板塊表中,發(fā)現(xiàn)todayposts 被重置了。因?yàn)閿?shù)據(jù)庫的管理員只有我一個人知道,因此不會有人去直接重置那個表的信息。
查找計(jì)劃任務(wù)看看是否有計(jì)劃任務(wù)會去更新pre_forum_forum 表的todayposts 字段,也沒發(fā)現(xiàn)。我懷疑是什么條件觸發(fā)了那個論壇的一些統(tǒng)計(jì)腳本,因?yàn)樘拥搅? 點(diǎn)才會清零。突然意識到會不會是時間到0 點(diǎn)了?于是登錄佛山服務(wù)器查看,時間正常。再登錄深圳機(jī)房服務(wù)器,oh my gold!時間是00 點(diǎn)過2 分鐘。咨詢開發(fā),他們說是discuz 中含有一些統(tǒng)計(jì)的和清零的腳本,到了0 點(diǎn)就會清空帖子數(shù)等一些操作。
這些操作會寫入數(shù)據(jù)庫,由于佛山和深圳機(jī)房做了MYSQL 主主同步,因此也會同步到佛山機(jī)房的數(shù)據(jù)庫中,導(dǎo)致佛山的論壇出現(xiàn)帖子數(shù)清零的現(xiàn)象。那么為什么深圳機(jī)房的時間會和佛山機(jī)房的差那么遠(yuǎn)呢?原來是忘記將時間同步的命令添加到計(jì)劃任務(wù)中。
趕緊將時間同步的命令添加到計(jì)劃任務(wù)中,59 5,9,14,19,23* * * ntpdate asia.pool.ntp.org。另外為了避免類似問題,將這個命令加入到系統(tǒng)初始化腳本中,以后一安裝完系統(tǒng)就跑系統(tǒng)初始化腳本。
?
教訓(xùn)
這個是一個很低級的錯誤,對于這種服務(wù)器都需要用
的基礎(chǔ)配置,必須添加到系統(tǒng)初始化腳本中,避免再次出現(xiàn)類似
的問題。同時也給自己一個教訓(xùn)就是配置好服務(wù)器后需要做詳細(xì)
的檢查,要細(xì)心,杜絕此類低級錯誤的發(fā)生。
ead from remote host X.X.X.X: Connection reset by peer?
?
解決辦法
有的時候要采用scp 備份異地的文件,這個時候有的時候會
出現(xiàn)如下報(bào)錯ead from remote host X.X.X.X: Connection reset by peer
lost connection
解決辦法,在客戶端上的/etc/ssh/sshd_config 添加如下內(nèi)容:
ClientAliveInterval 300
ClientAliveCountMax 60
重啟ssh,看看是否還會出現(xiàn)類似問題?
?
1
?
?
end
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的【技术】一个由于时间问题引发的血案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3分钟配置好静态路由
- 下一篇: 【必看】运维是“越老越吃香“的职业?