MySQL & mSQL



              

Запуск mSQL - часть 2


Хотя mSQL является очень устойчивой программой, иногда случаются какие-то неполадки, и сервер «умирает». В особенности ранние версии mSQL имели проблемы с устойчивостью, приводившие к неожиданному краху сервера. На этот случай желательно запустить какое-либо средство для проверки состояния сервера баз данных.

Приведенный ниже сценарий Unix старательно проверяет, работает ли еще демон msql2d. Если сервер не активен, он перезапускается, и администратору машины посылается сообщение.

#!/bin/sh

# Извлечь ID процесса демона базы данных

# Это годится для mSQL 2; для mSQL 1

# Строка должна быть другой:

# PID='cat /usr/local/Minerva/msqld.pid' PID='cat /usr/local/Hughes/msq!2d.pid'

# Далее проверяется активность процесса сервера.

# Эта строка пригодна для систем BSD (Linux)

ALIVE='ps aux grep $PID | grep -v grep | awk '{print $2}"

# Для систем SysV (Solaris) раскомментируйте следующую строку

#ALIVE='ps -et grep $PID | grep -v grep | awk '{print $2}"

if [ $ALIVE ]

then

REALLY_ALIVE='msqladmin version' DATE='date'

#Если 'ERROR', или если

# выдачи вообще не было, msqladmin

# не могла подключиться к серверу баз данных

if ! echo $REALLY_ALIVE | grep "^ERROR"

then

exit

fi

if [ ! $REALLY_ALIVE ]

then exit;

fi

else

# Для mSQL 1 должно быть /usr/local/Minerva/hin/msqld &

# for mSQL installations /usr/local/Hughes/bin/msql2d &

mail -s "mSQL daemon restarted" root@yourmachine.com <<EOM

The mSQL daemon died unexpectedly and was restarted on $DATE.

Sincerely,

The mSQL Watchdog

EOM

fi

После запуска mSQL может обмениваться данными с окружающим миром двумя способами. Связь с Интернетом происходит через порт TCP/IP. По умолчанию mSQL слушает порт 1112. mSQL2 слушает порт 1114. Вы можете при желании изменить номер порта либо во время компиляции (mSQL 1), либо через файл конфигурации (mSQL 2).

Локальная связь происходит через сокеты Unix. Сокеты Unix выглядят обычными файлами файловой системы Unix. От обычных файлов их можно отличить по символу, следующему за именем при использовании флага `F` в команде Is. mSQL использует файл /deu/msql, в то время как mSQL 2 использует файл /usr/local/Hughes/msql2.sock.




Содержание  Назад  Вперед