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

Ответить
logutenleonid
Юзер
Юзер
Сообщения: 1
Зарегистрирован: 05 авг 2015, 01:42
ОС: win 8.1

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

Сообщение logutenleonid » 05 авг 2015, 02:33

(Я новичёк.)
Ситуация в следующем
После того как база случайно потерлась, она была восстановлена через бекап (дампов не было). НО сайт отображался пустой.
После вмешательства тех. поддержки сайт появился заполненный, но при первом же нажатии на ссылку сервер выдал: Table '1gb_moslight.ss_categories' doesn't exist
Зайдя в PHPmyAdmin я увидел, что слева в окне phpmyadmin отображаются названия таблиц базы данных, но принажатии на таблицу выдаётся следующее '1gb_moslight.ss_categories' doesn't exist'
Вопрос: можно ли восстановить базу, если есть только бекап более ранней версии базы в виде файлов .ibd и .frm ???
P/S объяснил как смог
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2788
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 7
Откуда: Из серверной

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

Сообщение Raven » 05 авг 2015, 18:03

Как был сделан и как был восстановлен бэкап? Какое хранилище используется (InnoDB/MyISAM)?

P.S. Еще раз кто-нибудь заикнется про тулзы с *.говнотулбокс.com - буду банить и удалять сообщения.
Я не злопамятный, я просто часто ковыряю логи
Изображение
evgmandelshtamp
Юзер
Юзер
Сообщения: 1
Зарегистрирован: 06 авг 2015, 17:18
ОС: MSDOS

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

Сообщение evgmandelshtamp » 06 авг 2015, 17:20

[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;
Ответить

Вернуться в «MySQL»