Автоматический перезапуск MySQL сервера в случае сбоя

При использовании micro instance на Amazon AWS EC2 часто возникает проблема с сервисом MySQL. По той причине что micro instance не рассчитан на сколько-нибудь значительную нагрузку и имеет всего 1GB RAM часто служба MySQL останавливается по причине исчерпания всей доступной оперативной памяти в системе.
Чтобы в автоматическом режиме перезапускать сервис MySQL достаточно добавить правило в crontab. Согласно этому правилу каждую минуту будет выполняться скрипт, проверяющий запущен ли сервис MySQL (если на момент выполнения команды сервис MySQL уже запущен, то второй раз сервис MySQL запускаться уже не будет, т.е. дублирование исключено).
Если сервис не запущен, то bash скрипт инициирует команду старта MySQL сервиса.

1. Запускает редактор правил cron:
root@hostname:/home/user#crontab -e

2. Добавляем в конец файла строку с правилом ежеминутного запуска bash скрипта
* * * * * /home/user/mysql.sh > /dev/null

3. Текст bash скрипта, проверяющий запущен ли MySQL сервис:


cat mysql.sh
#!/bin/bash
number=$(ps -ef | grep -v grep | grep mysqld | wc -l)
if (( number > 0));
then
echo "mysql is running!!!"
else
/etc/init.d/mysql start
echo "MySQL reloaded !" | mail -a "From: Amazon AWS " -s "Amazon AWS MySQL restarted" receiver@mail.com
fi

При необходимости скрипт через Cron можно запускать реже чем один раз минуту.

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.