Базы данных - ЛИНТЕР - статьи

         

Проверяем не запущен ли сервер


#################################################### #!/bin/sh
#Включаем файл с описанием переменных LINTER_BIN=/linter/bin . $LINTER_BIN/constants
#И файл с паролем . $LINTER_BIN/private_passwd
#NET_MBX=1458 #Любой не используемый в дальнейшем #export NET_MBX # Проверяем не запущен ли сервер $LINTER_BIN/chklinter -u $USER'/'$PASSWORD if [ $? -ne 0 ]; then echo "Linter already runnig" exit 1 fi
#Проверяем наличие каталога блокировочного файла if [ ! -d $SY00/lock ]; then mkdir $SY00/lock #создаем каталог if [ $? -ne 0 ];then echo "Error create locking directory" exit 1; fi fi
#Проверяем наличие блокировочного файла if [ -f $SY00/lock/lock ];then echo "Linter not correct shutdown" exit 1 fi
#стартуем SQL сервер $LINTER_BIN/linter /BASE=$SY00 /POOL=$POOL /SPOOL=$SPOOL
#ждем 60 сек запуска ЛИНТЕРа $LINTER_BIN/chklinter -u $USER'/'$PASSWORD -t 60 if [ $? -eq 0 ]; then echo "Error Running linter" exit 1 fi
#Создаем блокировочный файл touch $SY00/lock/lock if [ $? -ne 0 ]; then echo "Error create locking file" exit 1 fi
#Синхронизируем файловый кеш ОС с диском sync
#стартуем сетевой сервер $LINTER_BIN/dbs_tcp /P=$PORT ####################################################
В этой программе использовано несколько дополнительных программ из дистрибутива СУБД ЛИНТЕР и несколько технических приемов. Рассмотрим работу этого файла подробнее.
После включения описанных выше файлов – constants и privare_passwd, производится проверка наличия запущенной копии ядра с тем же LINTER_MBX, что и указанный в нашей программе. Это делается с помощью программы chklinter. Аргументы этой программы берутся из private_passwd. Если программа вернула код завершения 0, то ЛИНТЕР уже запущен. В противном случае – нет.
В данной shell-программе применяется механизм блокировки для предотвращения запуска базы данных в случае некорректного завершения (ниже будет приведена программа, завершающая работу СУБД, она удаляет блокировочный файл).


В конце стартового файла производится запуск сетевого драйвера для обеспечения доступа к данной базе по сети.
Теперь рассмотрим примерный файл на останов СУБД.
#################################################### #!/bin/sh # stoplin #Включение файла с описанием настроек
LINTER_BIN=/linter/bin . $LINTER_BIN/constants
#Включение файла с описанием имени пользователя и пароля . $LINTER_BIN/private_passwd
#Проверка работы ЛИНТЕРа $LINTER_BIN/chklinter -u $USER'/'$PASSWORD if [ $? -eq 0 ]; then echo "Linter not running" exit 1 fi
#Остановка сервера echo -e $USER'\n'$PASSWORD | $LINTER_BIN/shut
#ожидаем завершения работы for i in 1 3 5 10 20 30;do $LINTER_BIN/chklinter -u $USER'/'$PASSWORD if [ $? -ne 0 ];then sleep $i else
#удаление файла блокировки rm -f $SY00/lock/lock if [ $? -ne 0 ]; then echo "Error delete locking file" exit 1 fi exit 0 fi done
echo "Error shutdown linter" exit 1 ################################################
Используя программы для старта ЛИНТЕР, можно запускать СУБД при старте прикладной системы. Здесь приводится пример для Linux дистрибутивов, совместимых с RedHat. Для этого в каталоге /etc/rc.d/init.d необходимо создать новый файл с названием, к примеру, linter примерно следующего содержания:

Содержание раздела