Ремонт innodb (ibdata1) базы

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
SinClaus
ефрейтор
Сообщения: 51
Зарегистрирован: 2010-09-14 5:25:34
Откуда: Tomsk

Ремонт innodb (ibdata1) базы

Непрочитанное сообщение SinClaus » 2011-03-26 10:28:26

Ситуация: посыпался диск на BSD сервере (что характерно, SMART даже не вякнул...), и по известному закону плохо читаемый блок (возможно не один) попал в базу ibdata1 мускуля. Вытащить файл удалось только при помощи dd с ключем noerror. Файлы ib_log... не повреждённые. Да, структура базы - т.е. каталог с *.frm абсолютно не повреждён.
Ирония ситуации в том, что по привычке к InnoDB базам ежедневный бэкап делался только по базам данных, дабы не зацеплять безобразно распухающие логи. Ну и лень-матушка, конечно. В общем, из бэкапа innodb база не восстановима. Можно ли ее попытаться малость подремонтировать?
Данные там не столько критические для предприятия, сколько важные политически - это содержимое вики которая использовалась для координации группы разработчиков, традиционно не любящих (почему-то :) ) админов.
Паранойю у админов лечить нельзя, надо лишь следить, чтобы развивалась в нужном направлении

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Ремонт innodb (ibdata1) базы

Непрочитанное сообщение Gamerman » 2011-03-26 11:05:57

А как мускуль ругается на все это?
Глюк глюком вышибают!

Аватара пользователя
SinClaus
ефрейтор
Сообщения: 51
Зарегистрирован: 2010-09-14 5:25:34
Откуда: Tomsk

Re: Ремонт innodb (ibdata1) базы

Непрочитанное сообщение SinClaus » 2011-03-26 11:21:12

Традиционно - орёт что индексы в будущем, что константы гигантских размеров, традиционное начало:

Код: Выделить всё

110323 14:44:44 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295                 
110323 14:44:44 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
...................
посылает в http://dev.mysql.com/doc/refman/5.0/en/ ... overy.html
заканчивает

Код: Выделить всё

....................
110323 14:44:44InnoDB: Assertion failure in thread 679481600 in file fil0fil.c line 3959                                     
InnoDB: We intentionally generate a memory trap.                                                                             
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.                                                               
InnoDB: If you get repeated assertion failures or crashes, even                                                              
InnoDB: immediately after the mysqld startup, there may be                                                                   
InnoDB: corruption in the InnoDB tablespace. Please refer to                                                                 
InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html                                                         
InnoDB: about forcing recovery.                                                                                              
110323 14:44:44 - mysqld got signal 11 ;                                                                                     
This could be because you hit a bug. It is also possible that this binary                                                    
or one of the libraries it was linked against is corrupt, improperly built,                                                  
or misconfigured. This error can also be caused by malfunctioning hardware.                                                  
We will try our best to scrape up some info that will hopefully help diagnose                                                
the problem, but since we have already crashed, something is definitely wrong                                                
and this may fail.                                                                                                           
                                                                                                                             
key_buffer_size=0                                                                                                            
read_buffer_size=1048576                                                                                                     
max_used_connections=0                                                                                                       
max_connections=100                                                                                                          
threads_connected=0                                                                                                          
It is possible that mysqld could use up to                                                                                   
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 204800 K                                           
bytes of memory                                                                                                              
Hope that's ok; if not, decrease some variables in the equation.                                                             
                                                                                                                             
110323 14:44:44  mysqld ended
Оно в общем понятно, dd там понавставлял нулевых блоков, их можно интерпретировать и как плюс бесконечность...
Паранойю у админов лечить нельзя, надо лишь следить, чтобы развивалась в нужном направлении

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: Ремонт innodb (ibdata1) базы

Непрочитанное сообщение LMik » 2011-03-26 13:15:42

И бэкапы естественно вы еще не начали делать?
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Аватара пользователя
SinClaus
ефрейтор
Сообщения: 51
Зарегистрирован: 2010-09-14 5:25:34
Откуда: Tomsk

Re: Ремонт innodb (ibdata1) базы

Непрочитанное сообщение SinClaus » 2011-03-26 13:28:00

Это к вопросу отношения не имеет. Даже бэкапы бэкапов есть.
Паранойю у админов лечить нельзя, надо лишь следить, чтобы развивалась в нужном направлении

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Ремонт innodb (ibdata1) базы

Непрочитанное сообщение Alex Keda » 2011-03-26 16:15:10

восстановить из бэкапа
Убей их всех! Бог потом рассортирует...

Аватара пользователя
SinClaus
ефрейтор
Сообщения: 51
Зарегистрирован: 2010-09-14 5:25:34
Откуда: Tomsk

Re: Ремонт innodb (ibdata1) базы

Непрочитанное сообщение SinClaus » 2011-03-26 18:13:04

Алекс, я понимаю, долгое общение с хомячками действует... Повторяю: к сожалению ibdata1, корректная, с этого сервера, в бэкапах отсутствует.
Паранойю у админов лечить нельзя, надо лишь следить, чтобы развивалась в нужном направлении

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Ремонт innodb (ibdata1) базы

Непрочитанное сообщение Alex Keda » 2011-03-26 20:36:30

ы...
понял....
========
делайте копию, пробуйте фиксить...
Убей их всех! Бог потом рассортирует...