воскресенье, 11 июня 2017 г.

Опыт пофайлового переноса баз данных

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

Раньше у меня не возникало проблем - я просто переносил папку /var/lib/mysql на новый хост с проинсталлированным Mysql и все было хорошо. Но в этот раз симптом был таким, что после переноса файлов, базы создались, таблицы есть, но большинство из них пустые.

Вот небольшая инструкция, как мне получилось решить эту проблему:

1) Необходимо понимать, что нужно перенести не только папки с базами в /lib/mysql, но и файлы ibdata1 и logfile
2) Проще переместить целиком папку /lib/mysql с бэкапа, со всем содержимым, но тогда необходимо так же, заменить конфиг /etc/mysql из бэкапа.
3) После всех этих манипуляций рестартим mysql и смотрим - скорее всего база данных пуста.
4) Удаляем папку одной из наших баз данных из /lib/mysql/mybd (я взял для примера mybd)
5) Заходим в управление баз данных, я использую phpmyadmin - и создаем там бд mybd с таким же названием как у папки которую удалили (иными словами просто пересоздаем бд)
6) Возвращаем файлы frm в папку mydb

Мне данные манипуляции помогли оживить не одна базу данных (mybd) а сразу все имеющиеся.

Комментариев нет:

Отправить комментарий