Служба MySQL предоставляет данные приложению базы данных, обеспечивая при этом высокую степень доступности. Приложение может в свою очередь предоставить сетевой доступ к базе данных клиентским системам, например Web-серверам. В случае отказа службы, приложение обращается к данным общей базы данных, используя другую кластерную систему. Доступной по сети службе базы данных обычно назначается IP адрес, который переносится вместе со службой, таким образом сохраняется прозрачное подключение клиентов к данным.
Ниже приведён пример настройки службы базы данных MySQL:
Пакеты сервера MySQL устанавливаются на всех узлах кластера, которые будут выполнять эту службу. Каталог базы данных MySQL располагается в файловой системе, размещённой в дисковом разделе общего хранилища. Это позволяет всем узлам кластера получать доступ к данным базы. В этом примере, в точку /var/lib/mysql подключена файловая система, расположенная в разделе общего диска /dev/sda1.
Службе MySQL присваивается IP адрес, для сетевого подключения клиентов к службе базы данных. Этот IP адрес автоматически передаётся другим узлам кластера в случае отказа службы. В приведённом примере, этот IP адрес равен 10.1.16.12.
Сценарий, используемый для запуска и остановки базы данных MySQL – это стандартный сценарий init, названный mysqld. Если требуется регистрировать в журнале подключения и запросы, измените сценарий mysqld и добавьте параметр --log=/var/log/mysqld.log в качестве последнего параметра команды safe_mysqld. При этом должна получиться примерно такая строка (Заметьте, обратная косая черта (\) обозначает продолжение одной строки):
/usr/bin/safe_mysqld --defaults-file=/etc/my.cnf --log=/var/log/mysqld.log \ >/dev/null 2>&1 & |
Если вы добавите параметр --log в сценарий mysqld, полученный сценарий mysqld следует скопировать на остальные узлы кластера, способные выполнять службу MySQL, чтобы они могли регистрировать подключения и запросы, если служба MySQL будет перенесена на эти узлы.
По умолчанию, подключение клиента к базе данных MySQL разрывается после восьми часов бездействия. Этот интервал можно изменить, установив значение переменной wait_timeout в файле /etc/my.cnf. Например, чтобы установить таймаут, равный четырём часам, добавьте следующую строку в раздел [mysqld] файла /etc/my.cnf:
set-variable = wait_timeout=14400 |
Перезапустите службу MySQL. Заметьте, что после этих изменений новый файл /etc/my.cnf следует скопировать на все остальные узлы кластера, способные выполнять службу MySQL.
Определить, произошёл ли таймаут при работе с сервером MySQL, можно, выполнив команду mysqladmin и посмотрев время работы. Если произошёл таймаут, автоматически подключиться к серверу можно, выполнив тот же запрос снова.
В зависимости от версии Linux, при таймауте MySQL-сервера генерируется одно из сообщений:
CR_SERVER_GONE_ERROR CR_SERVER_LOST |
Чтобы добавить службу MySQL в Настройке кластера (Cluster Configuration Tool), выполните следующее:
Запустите Настройку кластера (Cluster Configuration Tool), выбрав Главное меню (Main Menu) => Системные параметры (System Settings) => Настройка сервера (Server Settings) => Кластер (Cluster) или выполнив в приглашении оболочки redhat-config-cluster. По умолчанию запускается Состояние кластера (Cluster Status Tool).
Запустите Настройку кластера (Cluster Configuration Tool), выбрав Кластер (Cluster) => Настройка (Configure) в меню программы Состояние кластера (Cluster Status Tool).
Перейдите на вкладку Службы (Services).
Добавьте службу MySQL.
Щёлкните Создать (New). На экране появится диалог Служба (Service).
Введите имя службы MySQL в поле Имя службы (Service Name).
Выберите в поле Домен переноса (Failover Domain) домен переноса или оставьте в нём значение None.
Введите интервал (в секундах) в поле Интервал проверки (Check Interval), если вы хотите проверять жизнедеятельность службы MySQL с помощью указания status сценарию инициализации mysqld.
Введите в поле Сценарий пользователя (User Script) имя сценария, например /etc/init.d/mysqld.
Нажмите OK.
Добавьте IP-адрес службы MySQL .
Выберите службу MySQL и щёлкните Добавить потомка (Add Child).
Выберите пункт Добавить IP-адрес службы (Add Service IP Address) и нажмите OK. На экране появится диалог IP-адрес службы (Service IP Address).
Заполните поле IP-адрес (IP Address).
Введите в поле Маска подсети (Netmask) маску или оставьте в нём значение None.
Введите в поле Широковещательный (Broadcast Address) широковещательный адрес или оставьте в нём значение None.
Нажмите OK.
Добавьте устройство для службы MySQL.
Выберите службу MySQL и щёлкните Добавить потомка (Add Child).
Выберите пункт Добавить устройство (Add Device) и нажмите OK. На экране появится диалог Устройство (Device).
Заполните поле Специальный файл устройства (Device Special File) (введите, например, /dev/sdc3).
В поле Точка монтирования (Mount Point) введите /var/lib/mysql.
В поле Тип ФС (FS Type) выберите тип файловой системы или оставьте его пустым.
В поле Параметры (Options) укажите все параметры подключения, включая rw (чтение-запись).
Поставьте или снимите флажок Принудительно отмонтировать (Force Unmount).
Нажмите OK.
Выберите Файл (File) => Сохранить (Save), чтобы сохранить параметры службы MySQL.