SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.09.2008 15:18:29

Илья
Участник
Зарегистрирован: 18.07.2008
Сообщений: 5

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

Здравствуйте. У меня возникла следующая проблема:
Работал с базой данных состоящей из таблиц InnoDB, на очередном запросе сервер завис.
После перезагрузки сервера при обращении к базе данных начал выдавать ошибку 1049 - неизвестная БД. Причем эту ошибку не только для этой, но и для други базы данных(с таблицами MyISAM).
Сделал резервную копию папки data и переустановил сервер. Скопировал обратно папку data.
После переустановки сервера, базы данных с таблицами MyISSAM восстановились без проблем, а в с таблицами InnoDB восстановились только представления, без таблиц.

Как можно восстановить таблицы InnoDB? Хотя бы структуру таблиц без данных. Помогите пожалуйста.

Неактивен

 

#2 03.09.2008 15:23:10

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Восстановление таблиц InnoDB

Данные Innodb хранятся в отдельный файлах, вне каталога базы данных.

Восстановление структуры обсуждалось: http://sqlinfo.ru/forum/viewtopic.php?id=793

Неактивен

 

#3 03.09.2008 15:24:32

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Восстановление таблиц InnoDB

Для того, чтобы заработал InnoDB, нужно, чтобы на тех же местах были все файлы InnoDB
(ibdata, ib_logfile, *.ibd), файлы описания таблиц *.frm, а так же были бы теми же самыми все
настройки InnoDB, касающиеся размеров этих файлов.

Скорее всего, в журнале ошибок написано, какой конкретно файл не подцепился.

Неактивен

 

#4 03.09.2008 15:34:06

Илья
Участник
Зарегистрирован: 18.07.2008
Сообщений: 5

Re: Восстановление таблиц InnoDB

Спасибо, rgbeast. Помогло

Неактивен

 

#5 05.09.2008 03:38:28

Илья
Участник
Зарегистрирован: 18.07.2008
Сообщений: 5

Re: Восстановление таблиц InnoDB

Здравствуйте. Все таблицы восстановил.
Теперь начал забивать их данными, данные вставляются нормально, но при выборе данных соединение с сервером почему то разрывается.
Никак не могу понять в чем проблема. При этом при просмотре через EMS Manager данные отображаются, а при выполнение запроса через SQL-скрипт в том же EMS Manager происходит нижеописанное.  Но ведь он выполняет точно такой же запрос(?).
Вот лог действий:

Выполнено : 06.09.2008 9:30:53
Операция  : BEGIN
Результат : "OK."

Выполнено : 06.09.2008 9:31:05
Операция  : use stroyinfo
Результат : "OK."

Выполнено : 06.09.2008 9:31:07
Операция  : select * from streets
Результат : "Lost connection to MySQL server during query"

Выполнено : 06.09.2008 9:31:07
Операция  : ROLLBACK
Результат : "MySQL server has gone away"

Выполнено : 06.09.2008 9:31:08
Операция  : BEGIN
Результат : "Can't connect to MySQL server on 'localhost' (10061)"

Неактивен

 

#6 05.09.2008 03:43:38

Илья
Участник
Зарегистрирован: 18.07.2008
Сообщений: 5

Re: Восстановление таблиц InnoDB

Сам скрипт такой:

use stroyinfo;
select * from streets;

Так происходит со всеми таблицами

Неактивен

 

#7 05.09.2008 10:58:01

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Восстановление таблиц InnoDB

Вы восстановили структуру таблиц, но они по сути битые. Нужно сделать
SHOW CREATE TABLE streets;
получится запрос CREATE TABLE streets ...
Запишите его для всех таблиц. затем удалите файлы, которые создавали полностью. Затем создайте все таблицы с помощью команд CREATE TABLE

Неактивен

 

#8 05.09.2008 16:39:12

Илья
Участник
Зарегистрирован: 18.07.2008
Сообщений: 5

Re: Восстановление таблиц InnoDB

Спасибоsmile Можно было и самому догадаться.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson