Упал Mysql. Все таблицы заблокированы

Tsep

Новичок
Упал Mysql. Все таблицы заблокированы

Решил изменить Log File Size в InnoDB Parametrs. Перестала запускаться база. Вернул назад, бд запустилась, но все таблицы померли. В том же phpmyadmin напротив каждой таблицы пишет: используется

В логах пишет что-то типа:

PHP:
060725 10:27:18 InnoDB error: 
Cannot find table catalog/subject from the internal data dictionary 
of InnoDB though the .frm file for the table exists. Maybe you 
have deleted and recreated InnoDB data files but have forgotten 
to delete the corresponding .frm files of InnoDB tables, or you 
have moved .frm files to another database? 
Look from section 15.1 of 
[url]http://www.innodb.com/ibman.html[/url]
how you can resolve the problem. 
060725 10:27:18 [ERROR] C:\AppServ\mysql\bin\mysqld-max-nt: Can't open file: 'subject.ibd' (errno: 1)
Реально ли восстановить все?

MySQL - 4.1.16-nt-max
 

Quessir

Новичок
Аты папку с базой данных скопируй куда-нибудь, а потом переустанови МуСКЛ. Ну потом опять туда запихни. Она в папке "data" должна быть в каталоге МуСКЛ-а.

-~{}~ 25.07.06 16:15:

Я всегда так делаю. Вроде нормально потом работает.
 

4m@t!c

Александр
Пути, связанные с MySQL, в ОС или настройках какие-нить правили?
 

svetasmirnova

маленький монстрик
Попробуй запустить с ключом --innodb-force-recovery, отличным от нуля (подробно что каждое число обозначает читать в мануале), после чего сделай dump таблиц, убей их, убери ключ и перегрузи дамп.
 

Tsep

Новичок
4m@t!c - нет

svetasmirnova
попробовал запускать со всем 6-ю параметрами отсюда
http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html

ничего не дает. не могу ни посмотреть структуру, ни данные. выдает всегда
#1016 - Can't open file: 'subject.ibd' (errno: 1)...
 

Апельсин

Оранжевое создание
Tsep, еще раз пошагово опиши что именно ты делал.
Что удалял-не удалял, какие настройки менял в файле, менял ли ты путь к директории данных или логов.
У тебя MySQL запущен с innodb_file_per_table опцией или нет?
 

Tsep

Новичок
Запустил MySQL Administrator.
Изменил в InnoDB Parametrs Log File SIze c 10 до 3
сервак не перегружал. вечером просто выключил комп.
утром база не захотела запускаться с ошибкой, что лог файл не соответствует заданному размеру.
Поменял назад innodb_log_file_size=10.
база запустилась, но тадлицы стали недоступными с такими сообщениями:

Код:
SHOW INDEX FROM `bigparametr_subject` ;

Ответ MySQL:  

#1016 - Can't open file: 'bigparametr_subject.ibd' (errno: 1)
В my.ini #(Unknown option:)innodb_file_per_table = off


SHOW VARIABLES LIKE "innodb%":

Код:
innodb_additional_mem_pool_size 2097152 
innodb_autoextend_increment 8 
innodb_buffer_pool_awe_mem_mb 0 
innodb_buffer_pool_size 8388608 
innodb_data_file_path ibdata1:10M:autoextend 
innodb_data_home_dir   
innodb_fast_shutdown ON 
innodb_file_io_threads 4 
innodb_file_per_table OFF 
innodb_flush_log_at_trx_commit 1 
innodb_flush_method   
innodb_force_recovery 4 
innodb_lock_wait_timeout 50 
innodb_locks_unsafe_for_binlog OFF 
innodb_log_arch_dir   
innodb_log_archive OFF 
innodb_log_buffer_size 1048576 
innodb_log_file_size 10485760 
innodb_log_files_in_group 2 
innodb_log_group_home_dir .\ 
innodb_max_dirty_pages_pct 90 
innodb_max_purge_lag 0 
innodb_mirrored_log_groups 1 
innodb_open_files 300 
innodb_table_locks ON 
innodb_thread_concurrency 8
-~{}~ 26.07.06 11:10:

Кусок логов вечеронего шутдауна и утренней незагрузки:

Код:
060724 17:46:17  InnoDB: Starting shutdown...
060724 17:46:19  InnoDB: Shutdown completed; log sequence number 0 421270419
060724 17:46:19 [Note] C:\AppServ\mysql\bin\mysqld-max-nt: Shutdown complete

InnoDB: Error: log file .\ib_logfile0 is of different size 0 10485760 bytes
InnoDB: than specified in the .cnf file 0 3145728 bytes!
060725  9:57:55 [ERROR] Can't init databases
060725  9:57:55 [ERROR] Aborting

060725  9:57:55 [Note] C:\AppServ\mysql\bin\mysqld-max-nt: Shutdown complete
После того как поменял назад лог до 10М:

Код:
060725 10:26:50  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
060725 10:26:52  InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 421270419.
InnoDB: Doing recovery: scanned up to log sequence number 0 421270419
060725 10:26:52  InnoDB: Flushing modified pages from the buffer pool...
060725 10:26:52  InnoDB: Started; log sequence number 0 421270419
C:\AppServ\mysql\bin\mysqld-max-nt: ready for connections.
Version: '4.1.16-nt-max'  socket: ''  port: 3306  Official MySQL binary
060725 10:26:58  InnoDB error:
Cannot find table casa/ipoteka_news from the internal data dictionary
of InnoDB though the .frm file for the table exists. Maybe you
have deleted and recreated InnoDB data files but have forgotten
to delete the corresponding .frm files of InnoDB tables, or you
have moved .frm files to another database?
Look from section 15.1 of [url]http://www.innodb.com/ibman.html[/url]
how you can resolve the problem.
060725 10:26:58 [ERROR] C:\AppServ\mysql\bin\mysqld-max-nt: Can't open file: 'ipoteka_news.ibd' (errno: 1)
060725 10:26:59  InnoDB error:
...................
 

Апельсин

Оранжевое создание
у тебя по какой-то причине база не зашатдаунилась нормально.
Обычно если просто меняешь размер логов и не удаляешь старые, то mysql не запускается, но после удаления старых или смены размера назад - все проходит нормально.

Проверь внимательно my.ini файл, не записал ли MySQL Administrator чего-то туда не нужного. Я к сожалению не могу проверить работу MA.

Скопируй (но не удаляй) файлы ib_logfile* куда-нибудь и попробуй запустить сервер. MySQL должен создать новые.
 

Tsep

Новичок
я заметил, что она неправильно зашатдаунилась.

в my.ini ничего подозрительного нет.

ib_logfile удалял - создавать создает, но все равно таблицы не видны.

странно, что innodb_file_per_table OFF и он требует ibd файлы...

-~{}~ 26.07.06 17:46:

Заработало!
Нашел на одном из англоязычных форумов, что такой баг бывает в 4-ой версии. после установки 5-ки и перезаписи папки data все заработало!!!
 

4m@t!c

Александр
странно, что innodb_file_per_table OFF и он требует ibd файлы...
конечно требует. При innodb_file_per_table=On, MySQL создает файл табличного пространства для каждой таблицы, иначе все табличное пространство хранится в одном файле - общем для все таблиц.

Не понял, как решили проблему.
 

Tsep

Новичок
4m@t!c
просто поставил mysql 5.0.22 и переписал из старой папку data. все заработало:)

ну и ibdata1 оставил старым.

-~{}~ 26.07.06 18:12:

http://forums.mysql.com/read.php?22,34050,52933#msg-52933
 

domino

Новичок
спасибо за топик. но того же эффекта можно добиться и не переустанавливая базу. вроде бы.
 
Сверху