Archive for the ‘mysql’ Category

Восстановление mysql под Windows после сбоя по питанию.

Четверг, 9 октября, 2014

Задача: у приятеля сервер под Windows server 8 (в Hyper-V), после сбоя он откатился до полной копии сделанной на горячем сервере. Итог, mysqld перестал запускаться ругаясь на InnoDB и предлагая почитать http://dev.mysql.com/doc/refman/5.5/en/innodb-backup.html
Плюс у него не было свежей копии баз mysql надеялся на полные резервные копии Hyper-V 🙂
И еще у него создавался один общий файл ibdata1, а хочется что бы у каждой базы были отдельные файлы.
(далее…)

Восстановление (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, если интересуют другие примеры можно глянуть тут.