Перейти к содержимому
Калькуляторы

Повреждение базы данных MySQL после BAD секторов

Всем привет!

Сервак с FreeBSD 8.1 и mysql-server-5.0.92

Еще стоит биллинг NoDeny и Zabbix

 

В общем перестало работать ядро биллинга, понял что нет связи с мускулем. Он не запущен. Обратил внимание что на мониторе сообщения об ошибках, точно не помню что писало, но понял что пипец винту приходит. Купил новый винт, смонтировал его, но при переносе базы не скопировался файл ibdata1. В общем долго мучался что да как потому что не знал что с этим всем делать, первый раз такое. В итоге с помощью mysqldump сдампил базу биллинга, мускуля, но при сохранении zabbix выпала ошибка:

 

mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM `dchecks`': Los connection to MySQL server during query (2013)

 

Походу все это из за поврежденного жесткого диска.

 

Попытки дропнуть базу заббикса не удались.

 

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

 

 

Прикладываю логи server.err

 

InnoDB: Some operating system error numbers are described at
InnoDB: [url="http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html"]http://dev.mysql.com...rror-codes.html[/url]
InnoDB: File operation call: 'read'.
InnoDB: Cannot continue operation.
121014 22:39:41 mysqld restarted
121014 22:39:41 InnoDB: Started; log sequence number 14 2359723208
InnoDB: !!! innodb_force_recovery is set to 4 !!!
121014 22:39:41 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: '5.0.92' socket: '/tmp/mysql.sock' port: 3306 FreeBSD port: mysql-server-5.0.92
121014 22:52:49 [Note] /usr/local/libexec/mysqld: Normal shutdown

121014 22:52:51 InnoDB: Starting shutdown...
121014 22:52:52 InnoDB: Shutdown completed; log sequence number 14 2359723208
121014 22:52:52 [Note] /usr/local/libexec/mysqld: Shutdown complete

121014 22:52:52 mysqld ended

121014 23:35:12 mysqld started
121014 23:35:12 InnoDB: Started; log sequence number 14 2359723208
InnoDB: !!! innodb_force_recovery is set to 4 !!!
121014 23:35:12 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: '5.0.92' socket: '/tmp/mysql.sock' port: 3306 FreeBSD port: mysql-server-5.0.92
InnoDB: Error: tried to read 16384 bytes at offset 0 999424.
InnoDB: Was only able to read -1.
121014 23:42:02 InnoDB: Operating system error number 5 in a file operation.
InnoDB: Error number 5 means 'Input/output error'.
InnoDB: Some operating system error numbers are described at
InnoDB: [url="http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html"]http://dev.mysql.com...rror-codes.html[/url]
InnoDB: File operation call: 'read'.
InnoDB: Cannot continue operation.
121014 23:42:02 mysqld restarted
121014 23:42:03 InnoDB: Started; log sequence number 14 2359723208
InnoDB: !!! innodb_force_recovery is set to 4 !!!
121014 23:42:03 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: '5.0.92' socket: '/tmp/mysql.sock' port: 3306 FreeBSD port: mysql-server-5.0.92
InnoDB: Some operating system error numbers are described at
InnoDB: [url="http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html"]http://dev.mysql.com...rror-codes.html[/url]
InnoDB: File operation call: 'read'.
InnoDB: Cannot continue operation.
121014 22:39:41 mysqld restarted
121014 22:39:41 InnoDB: Started; log sequence number 14 2359723208
InnoDB: !!! innodb_force_recovery is set to 4 !!!
121014 22:39:41 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: '5.0.92' socket: '/tmp/mysql.sock' port: 3306 FreeBSD port: mysql-server-5.0.92
121014 22:52:49 [Note] /usr/local/libexec/mysqld: Normal shutdown

121014 22:52:51 InnoDB: Starting shutdown...
121014 22:52:52 InnoDB: Shutdown completed; log sequence number 14 2359723208
121014 22:52:52 [Note] /usr/local/libexec/mysqld: Shutdown complete

121014 22:52:52 mysqld ended

121014 23:35:12 mysqld started
121014 23:35:12 InnoDB: Started; log sequence number 14 2359723208
InnoDB: !!! innodb_force_recovery is set to 4 !!!
121014 23:35:12 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: '5.0.92' socket: '/tmp/mysql.sock' port: 3306 FreeBSD port: mysql-server-5.0.92
InnoDB: Error: tried to read 16384 bytes at offset 0 999424.
InnoDB: Was only able to read -1.
121014 23:42:02 InnoDB: Operating system error number 5 in a file operation.
InnoDB: Error number 5 means 'Input/output error'.
InnoDB: Some operating system error numbers are described at
InnoDB: [url="http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html"]http://dev.mysql.com...rror-codes.html[/url]
InnoDB: File operation call: 'read'.
InnoDB: Cannot continue operation.
121014 23:42:02 mysqld restarted
121014 23:42:03 InnoDB: Started; log sequence number 14 2359723208
InnoDB: !!! innodb_force_recovery is set to 4 !!!
121014 23:42:03 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: '5.0.92' socket: '/tmp/mysql.sock' port: 3306 FreeBSD port: mysql-server-5.0.92

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в пишем mysql.cnf

innodb_force_recovery=6

запускаемся и делаем mysqldump --all-databases

 

старые файлы перемещаешь в другое место(на всякий случай), убираешь параметр, запускаешь чистый mysql и восстанавливаешь то, что удалось слить.

 

Если и так не получится. то винт просканировать и ремапнуть в MHDD\Viktoria. После этого повторить дамп.

Изменено пользователем XeonVs

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Есть еще такой инструмент, мне один раз пригодилось: https://launchpad.net/percona-data-recovery-tool-for-innodb

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

 

Сначала образ винта, а уж потом пытаться лечить, на клоне образа. Ну и mhdd мне ни разу не повредил, но сначала образ, а уж потом все лечения. Для начала вылечить файловую систему fsck, а уж затем всякие советы от mysql на тему recovery. И я надеюсь - хотя бы вчерашний бакап бд биллинга был ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.