相信接触过服务器的朋友都听过服务器宕机,有人说导致服务器宕机最主要的原因是编写SQL查询性能很差,真的是这样吗?如果不是究竟又是何原因呢?
首先我们要对服务器宕机事件按表现方式而非导致的原因进行分类。一般来说,“运行环境”是排名第一的服务器宕机类别,大约35%的时间属于这一类。运行环境可以看作是支持数据库服务器运行的系统和资源集合,包括操作系统、硬件以及网络等。性能问题紧随其后,也是约占35%;然后是复制;最后剩下的10%包含各种类型的数据丢失或损坏,以及其他问题。
我们对服务器宕机事件按类型进行分类后,才能够确定了导致这些事件的原因。以下是一些可能引发服务器宕机的地方。
1、在运行环境的问题中,最普遍的问题时磁盘空间耗尽。
2、在性能问题中,最普通的服务器宕机原因确实是运行很糟糕的SQL,但也不一定都是这个原因,比如也有很多问题时由于服务器Bug或错误的行为导致的。
3、糟糕的Schema和索引设计是第二大影响性能的问题。
4、复制问题通常由于主备数据不一致导致。
5、数据丢失问题通常由于drop table的错误操作导致,并总是便随着缺少可用备份的问题。