|
С-программист исправит места, создающие несовместимость. Дистрибутив для Unix
находится по адресу http://www.hughes.com.au.
Если вы работаете под Windows или OS/2, для вас тоже не все потеряно:
переложения для Win32 и OS/2 также активно поддерживаются. Последние версии
mSQL для PC находятся по адресу http://blnet.com/ msqlpc/. Хотя эти приложения
относительно новые, они всегда немного отстают от самых свежих версий,
предоставляемых Хьюзом. В момент написания книги номер текущей версии для Unix
был 2.0.7, текущей версии для Win32 - 2.0.4.1, и текущей версии для OS/2 - 2.06.
Меньше повезло пользователям Мае. На Макинтош перенесены только клиентские
средства для mSQL.
Процедура установки зависит от платформы. Пользователям Unix придется
компилировать свой дистрибутив, а для Win32 и OS/2 поставляются
прекомпилированные двоичные файлы. Поскольку процедура установки меняется от
одной версии к другой, мы не станем здесь останавливаться на ее подробностях.
Вам следует изучить документацию, предоставленную вместе с вашим дистрибутивом,
поскольку она наверняка соответствует точной процедуре установки для вашей
версии.
Запуск mSQL
mSQL - это действительно единственное ядро базы данных типа «завел и поехал».
Иными словами, можно установить mSQL, запустить сервер и сразу заняться делом.
Серверный процесс mSQL называется msql2d (для серверов mSQL 1 он называется
msqld). Этот исполняемый файл и все утилиты, поступающие с дистрибутивом mSQL,
находятся в каталоге bin. Запустить экземпляр mSQL можно, просто введя msql2d
без всяких параметров командной строки.
Такая реализация по умолчанию не всегда вас удовлетворит. В большинстве случаев
потребуется отредактировать файл msql.conf в каталоге дистрибутива mSQL. Этот
файл конфигурации mSQL 2 (в mSQL 1 он отсутствует) позволяет определить
несколько часто используемых параметров. Его изменение обычно необходимо тогда,
когда вы используете какой-нибудь прекомпилированный дистрибутив.
Демон mSQL - не ветвящийся процесс. Это означает, что запуск его из командной
строки оставит процесс работать на терминале, пока вы явно не нажмете CTRL-C,
чтобы прекратить его, или не переведете процесс в фоновый режим. Под Unix можно
запустить сервер mSQL из командной строки в фоновом режиме, введя команду:
msqld2 &
Следующий сценарий запускает процесс сервера mSQL при запуске системы и
корректно завершает его при остановке системы:
#!/bin/sh
if [ $1 - "start" ]; then
if [ -x /usr/local/Hughes/bin/msql2d ]; then
su msql -c '/usr/local/Hughes/bin/nisql2d &'
fi
else
if [ $1 = "stop" ]; then
if [ -x /usr/local/Hughes/bin/msqladmin ]; then
su msql -c '/usr/local/Hughes/bin/msqladmin shutdown'
fi
fi
fi
В этом сценарии предполагается, что вы запускаете mSQL в Unix с идентификатором
пользователя msql. Разумеется, его нужно заменить конкретным ID пользователя, а
также заменить /usr/'local/Hughes именем каталога, в который вы установили mSQL.
Поскольку версия для Win32 не работает пока как служба NT, можно запускать mSQL
из папки Автозагрузка (StartUp), просто поместив ярлык для файла msql2d.exe в
папку Автозагрузка (использование команды msqladmin мы опишем ниже в данной
главе).
Хотя 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
# не могла подключиться к серверу баз данных
|
|