相信接觸過服務器的朋友都聽過服務器宕機,有人說導致服務器宕機最主要的原因是編寫SQL查詢性能很差,真的是這樣嗎?如果不是究竟又是何原因呢?
首先我們要對服務器宕機事件按表現方式而非導致的原因進行分類。一般來說,“運行環境”是排名第一的服務器宕機類別,大約35%的時間屬于這一類。運行環境可以看作是支持數據庫服務器運行的系統和資源集合,包括操作系統、硬件以及網絡等。性能問題緊隨其后,也是約占35%;然后是復制;最后剩下的10%包含各種類型的數據丟失或損壞,以及其他問題。
我們對服務器宕機事件按類型進行分類后,才能夠確定了導致這些事件的原因。以下是一些可能引發服務器宕機的地方。
1、在運行環境的問題中,最普遍的問題時磁盤空間耗盡。
2、在性能問題中,最普通的服務器宕機原因確實是運行很糟糕的SQL,但也不一定都是這個原因,比如也有很多問題時由于服務器Bug或錯誤的行為導致的。
3、糟糕的Schema和索引設計是第二大影響性能的問題。
4、復制問題通常由于主備數據不一致導致。
5、數據丟失問題通常由于drop table的錯誤操作導致,并總是便隨著缺少可用備份的問題。