Страница 1 из 1

Помогите восстановить базу MySql. Help

Добавлено: 05 авг 2015, 02:33
logutenleonid
(Я новичёк.)
Ситуация в следующем
После того как база случайно потерлась, она была восстановлена через бекап (дампов не было). НО сайт отображался пустой.
После вмешательства тех. поддержки сайт появился заполненный, но при первом же нажатии на ссылку сервер выдал: Table '1gb_moslight.ss_categories' doesn't exist
Зайдя в PHPmyAdmin я увидел, что слева в окне phpmyadmin отображаются названия таблиц базы данных, но принажатии на таблицу выдаётся следующее '1gb_moslight.ss_categories' doesn't exist'
Вопрос: можно ли восстановить базу, если есть только бекап более ранней версии базы в виде файлов .ibd и .frm ???
P/S объяснил как смог

Re: Помогите восстановить базу MySql. Help

Добавлено: 05 авг 2015, 18:03
Raven
Как был сделан и как был восстановлен бэкап? Какое хранилище используется (InnoDB/MyISAM)?

P.S. Еще раз кто-нибудь заикнется про тулзы с *.говнотулбокс.com - буду банить и удалять сообщения.

Re: Помогите восстановить базу MySql. Help

Добавлено: 06 авг 2015, 17:20
evgmandelshtamp
[mod]
Здесь описан механизм восстановления таблиц из .ibd файлов. Насколько я понимаю .frm можно не копировать, и они создатутся сами.
Принцип примерно следующий:
1) Очищаем текущую таблицу запросом.
ALTER TABLE tbl_name DISCARD TABLESPACE;
2) Копируем .ibd файл в соответствующий каталог (с имеем БД).
3) Выполняем запрос на восстановление таблицы.
ALTER TABLE tbl_name IMPORT TABLESPACE;
Здесь есть один существенный момент, .ibd файлы будут импортированы таким образом, только если были сохранены во время неактивности MySQL, к примеру если она была выключена, иначе возможны ошибки и отказы.
После восстановления выполните запрос на проверку:
CHECK TABLE tbl_name;