Назад | Перейти на главную страницу

Случайные повреждения данных MySQL InnoDB: аппаратные или программные ошибки?

Я администратор социальной игры, которая использует MySQL (точнее Percona 5.1.56) для хранения данных (все таблицы имеют тип InnoDB). В игре около 2 миллионов игроков, а размер базы данных составляет около 100 ГБ и постепенно увеличивается. Есть несколько таблиц, в которых уже содержится> 500 миллионов записей.

БД игры работает довольно гладко, даже если она не сегментирована на одном достаточно мощном невиртуализированном сервере Linux Debian 6 (24 ГБ ОЗУ, аппаратный 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.

Восстановление после таких ошибок - довольно болезненный процесс. Что обычно требует повышения одного из подчиненных устройств в качестве нового мастера, направления трафика этому новому мастеру и создания резервного подчиненного устройства для этого мастера. Есть некоторое время простоя, которое сводит игроков с ума ...

Люди из Percona сказали мне, что это аппаратная ошибка, и сначала я подумал, что виновато и аппаратное обеспечение, но после того, как я поменял несколько сервера Я не знаю, что думать на самом деле.

Есть ли вероятность, что MySQL повредит данные? Я уже начал искать альтернативы (например, PostgreSQL или даже что-то радикальное, например, Cassandra). Но, конечно, я знаю, что в каждом новом продукте есть свой багаж ошибок и причуд, не говоря уже о стоимости миграции ...

Я выдергиваю волосы (сегодня столкнулся с очередной аварией), так что если у вас есть идеи, поделитесь ...

Мы использовали MySQL (и версию Percona в прошлом) в течение нескольких лет с базами данных, содержащими до 300 миллионов строк, с несколькими ведомыми устройствами чтения. Единственный раз, когда я видел подобные проблемы, были связаны с оборудованием. Чаще всего это плохие диски, плохие контроллеры дисков, плохие контроллеры RAID.

Какое хранилище вы используете? Если вы используете стандартные жесткие диски, даже в конфигурации RAID, с вашими уровнями ввода-вывода вы будете превышать типичные показатели MTBF.