Восстановление InnoDB

Существует намного больше специфических особенностей, которые были бы необходимы для предоставления полезного ответа размера для Вас. Я не собираюсь пытаться пойти назад и вперед в этой форме для получения того ответа, но здесь являюсь вопросом и рекомендацией:

Ваша компания имеет аппаратные отношения с конкретным поставщиком? Например, если у Вас будет дата-центр, полный blade-серверов IBM, то Вы, вероятно, захотите настроить blade-сервер IBM, чтобы работать, даже если поле Sun было бы немного лучше. Запасные части, администратор и экспертное знание восстановления, и т.д. должны вписаться в Ваши соображения.

Если у Вас есть такие отношения поставщика, используйте их. Обсудите то, в чем Вы нуждаетесь со своими инженерами по продажам поставщика и удостоверяетесь, что понимаете, почему они рекомендуют то, что они делают. Обычно, большая часть SES будет пытаться предоставить ответственные рекомендации и будет иметь намного более детальное знание Вашей ситуации, чем мы возможно можем.

Если Вы не имеете единственных отношений поставщика, то говорите с несколькими поставщиками за рекомендации, но берете то, что они говорят с большими мелкими частицами соли и сравнивают рекомендации (Вы все еще просите, чтобы они объяснили, почему Вам нужен каждый компонент, правильно?). При покупке серверов цена включает предпродажные зарплаты поддержки, так усильте их экспертные знания. Подобная полезная техника состоит в том, чтобы попросить у одного поставщика рекомендаций на необходимом компоненте, который они не предоставляют, или по крайней мере просто перепакет. Попросите у поставщика программного обеспечения рекомендаций по аппаратным средствам; поставщик NAS для рекомендаций маршрутизатора, и т.д.

Вы, вероятно, возьмете на большинстве важных факторов в один или два из тех детальных обсуждений и сможете сделать хороший выбор.

1
задан 23 October 2011 в 08:05
2 ответа

Без ошибки, вызвавшей сбой, версия MySQL , и ваш my.cnf, сложно определить, в чем именно проблема .... При этом, вот несколько общих советов ....

Вы можете найти таблицу, в которой есть поврежденная страница в номере способов. Самый простой способ выключить сервер и запустить innochecksum для всех таблиц в вашей базе данных. Если он обнаружит какие-либо проблемы, вы можете запустить базу данных в режиме восстановления , установив innodb_force_recovery и попытаться выполнить SELECT INTO OUTFILE таблицы, чтобы выгрузить содержимое, затем ЗАГРУЗИТЬ ДАННЫЕ ИЗ INFILE чтобы загрузить его в новую таблицу. Запустите innodb_force_recovery с 1, и если вы получите сбой при выгрузке таблиц, продолжайте увеличивать значение innodb_force_recovery, пока вы не сможете выгрузить данные без сбоев. Убедитесь, что никакие клиенты не подключаются, пока вы это делаете.

Percona также имеет Percona Data Recovery Tool для InnoDB , который может минимизировать время простоя, но они требуют некоторого опыта для использования и могут испортить вещи даже больше. Кроме того, на самом деле вы можете запустить innochecksum в действующей базе данных, но вы, вероятно, получите ложные срабатывания для поврежденных страниц. В этом случае вы можете затем выключить сервер и произвести подсчет только тех таблиц, которые вернули ошибки страницы, пока он был активен. На живом сервере успешная innochecksum будет означать, что таблица в порядке, а неудачная innochecksum может быть неточной.

2
ответ дан 3 December 2019 в 19:18

Я получал аналогичную ошибку, и после прочтения https://dba.stackexchange.com/questions/24477/innodb-corruption Я решил проверить свою оперативную память. И он был неисправен ...

Я обнаружил, что запущен memtester без перезагрузки машины, и получил много:

FAILURE: 0x657423ee6593084d != 0x84e423ee6593084d at offset 0x16f17b1a0.
FAILURE: 0x58c620a5a8e4984f != 0x783620a5a8e4984f at offset 0x16f3571a0.
FAILURE: 0x73eba2598aaaa228 != 0x935ba2598aaaa228 at offset 0x16f3db1a0.

Итак, если у вас есть эта ошибка в стабильной версии mysql и перезагрузка решает вашу проблему , скорее всего, проблема с оперативной памятью. Если вы обратите внимание на сообщение об ошибке, оно гласит:

InnoDB: It is also possible that your operating
InnoDB: system has corrupted its own file cache
InnoDB: and rebooting your computer removes the
InnoDB: error.

Но, возможно, вы, как и я,

1
ответ дан 3 December 2019 в 19:18

Теги

Похожие вопросы