Восстановление базы MySQL: подробное руководство

Восстановление базы данных MySQLДовольно распространенной причиной нарушения работы сайта может стать повреждение файлов в базе данных MySQL. Произойти это может по множеству причин, например, вследствие аварийного выключения базы данных из-за отключенного электричества в помещении, где находятся сервера, вследствие повреждений компьютерного железа, а также из-за новой версии CMS.

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

Форматы таблиц MySQL

Довольно простым является восстановление, если таблицы находятся в формате MYISAM. Устройство phpMyAdmin дает возможность довольно быстро восстановить данные, если они были повреждены.

Более сложная ситуация в случае InnoDB. Хоть InnoDB и обладает такими преимуществами, как быстродействие, самостоятельное восстановление, а также устойчивость к сбоям электрической сети, для работы с ним вам потребуется немного больше знаний и усилий.

Правила восстановления MySQL

Правила восстановления MySQLДля того, чтобы восстановить базу данных описанного выше формата, нужно воспользоваться опцией innodb_force_recovery, которую можно найти в файле настроек СУБД. Но перед тем, как ей воспользоваться, необходимо попытаться ввести команду SELECT … I NTO OUT FILE, которая дает возможность быстро и просто сохранить данные, не совершая лишней работы.

Если это не помогло, придется обратиться к помощи innodb_force_recovery. Найти его можно по следующим ссылкам (они разные для разных операционных систем):

  • /etc/my.cnf;
  • /etc/mysql/my.cnf – в случае Linux

Обратите внимание, что это местоположение может быть не совсем точным, так как оно верно только по умолчанию. Но даже если этот файл был перенесен в другое место, его поиск не займет у вас много времени.

В данной опции вы можете ввести сразу несколько значений. Заменив в стандартной опции innodb_force_recovery = 0 значение ноль на любое число от одного до шести, вы получите возможность восстановить, кроме самих таблиц, еще и незавершенные по каким-либо причинам процессы. Чтобы включить опцию, перезапустите сервер MySQL.

Для того, чтобы использование этой опции было корректным и имеющим смысл следует соблюсти некоторые условия:

  • должны иметься копии файлов данных;
  • должны иметься файлы журналов InnoDB;
  • должен иметься файл настроек базы данных – my.cnf;
  • должны иметься файлы таблиц .frm InnoDB.

Все клиенты AdminVPS получают бесплатную настройку по системе “Всё включено”.

Использование innodb_force_recovery для восстановления базы данных MySQL

Главным методом использования данной опции при восстановлении является изменение значений от одного до шести по порядку.

Задавая в значении единицу, вы даете серверу команду начать восстановление вне зависимости от того, имеются ли вообще файлы с повреждениями.

Задавая в значении двойку, вы восстанавливаете работы за счет того, что останавливаются команды, которые не были полностью или частично выполнены.

В случае задания тройки, происходит отмена отката после восстановления поврежденных данных.

Если вы не очень знакомы с работой данной опции или системы управления базами данных MySQL, то выставлять значения от четырех и выше не стоит. Это вызвано возможной потерей данных. Тем не менее, ввод этих значений позволяет легко выявлять поврежденные таблицы.

Снижение вероятности повреждения MySQL

Самым простым и верным способом будет регулярный бэкап. Делать их можно как автоматически, так и самостоятельно, чтобы не быть зависимым от периодичности их создания.

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

Что будем искать? Например,VPS-сервер

Мы в социальных сетях