Задача: у приятеля сервер под Windows server 8 (в Hyper-V), после сбоя он откатился до полной копии сделанной на горячем сервере. Итог, mysqld перестал запускаться ругаясь на InnoDB и предлагая почитать http://dev.mysql.com/doc/refman/5.5/en/innodb-backup.html
Плюс у него не было свежей копии баз mysql надеялся на полные резервные копии Hyper-V 🙂
И еще у него создавался один общий файл ibdata1, а хочется что бы у каждой базы были отдельные файлы.
(далее…)
Archive for the ‘mysql’ Category
Восстановление mysql под Windows после сбоя по питанию.
Четверг, 9 октября, 2014Восстановление (repair) баз mysql
Вторник, 16 декабря, 2008Сегодня ночью случилась беда, переполнился партиция /var на которой находились базы mysql.
После того как я почистил /var сервер продолжил работу в штатном режиме, кроме одной проблемы перестала работать сортировка в mysql таблицах. То есть была нарушена структура таблиц mysql. Я с подобным уже сталкивался, для восстановления необходимо перейти в однопользовательский режим и выполнить fsck. Но ехать к серверу не было ни желания, ни времени и я решил воспользоваться возможностями mysqlcheck.
Так как у меня была одна очень большая mysql база хранящая логи apache (HTTPD_LOGS), то использовать ключ —all-databases не хотелось (слишком долго). Пришлось написать коротенький скрипт:
#!/bin/sh p="root_password_mysql" echo "show databases;" | mysql -u root --password="$p" | grep -v "^Database" \ | grep -v "HTTPD_LOGS" \ | awk -v p="$p" '{system ("mysqlcheck -u root --password=\""p"\" -e --auto-repair --databases "$0)}' \ | grep -v "OK"
Затем перезагрузил mysql-server и на всякий случай прогнал скрипт еще раз.
Все, сортировка заработала. Но надо все таки съездить к серверу и отчекать файловую систему.
P.S. я еще раз убеждаюсь в могуществе awk, если интересуют другие примеры можно глянуть тут.