我是社交游戏的pipe理员,使用MySQL(精确的Percona 5.1.56)进行数据存储(所有表都有InnoDBtypes)。 游戏中有大约200万玩家,数据库大小约为100Gb,并且正在逐渐增长。 有几个表已经有超过5亿条logging。
游戏数据库运行非常stream畅,即使在一个function足够强大的非虚拟化Linux Debian 6服务器(24 GB RAM,硬件Adaptec RAID-10,以及一些只读从属服务器)上也不会分裂。 问题是,不时(一两个月一次)MySQL崩溃与数据损坏如下:
InnoDB: Database page corruption on disk or a failed InnoDB: file read of page XXXX. InnoDB: You may have to recover from a backup.
从这样的错误中恢复是一个非常痛苦的过程。 这通常需要提升其中的一个奴隶作为新的主人,将stream量引导到这个新的主人并为这个主人创build备用的奴隶。 有一些停机让玩家真的很生气
Percona的人告诉我,这是硬件的错,起初我以为这是硬件的责任,但是在我换了几台服务器之后,我不知道该怎么想。
有没有可能是MySQL破坏数据? 我已经开始寻找替代品(例如PostgreSQL,甚至像Cassandra这样的激进分子)。 但是我当然知道,每一个新产品都有自己的包袱和怪癖,更不用说迁移的代价了….
我正在拔头发(今天我又遇到了另一个崩溃),所以如果你有任何想法,请分享…
多年来,我们一直在运行MySQL(以及Percona版本),数据库高达3亿行,具有多个读取从站。 我见过这些问题的唯一时间就是硬件。 最常见的,坏的驱动器,坏的驱动器控制器,坏的RAID控制器。
你使用什么样的存储? 如果您正在使用商用硬盘驱动器,即使在RAIDconfiguration下,您的I / O级别也将超出典型的MTBF速率。