Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - Хелен Борри
Шрифт:
Интервал:
Закладка:
Программа Guardian называется fbguard.exe в Firebird 1.5 и idguard.exe в более ранних версиях. Используйте следующую команду для старта Guardian:
fbguard.exe -a
ibguard.exe -а /* для версии 1.0.x */
Guardian размещает свою иконку на системной панели и автоматически стартует Суперсервер.
Имя программы сервера для Суперсервера fbserver.exe (ibserver.exe в Firebird l.O.x). Для запуска Суперсервера напрямую, минуя защиту Guardian, используйте команду:
fbserver.exe -a
ibserver.exe -а /* для версии 1.0.x */
Сервер стартует и размещает свою собственную иконку на системной панели.
Классический сервер! ! !
ПРИМЕЧАНИЕ. Этот текст относится к Firebird 1.5 и следующим. Классический сервер для Windows не поддерживается в более ранних версиях.
. ! .
Основное преимущество выполнения Классического сервера в Windows - его возможность использовать мультипроцессорные системы. Эта функция недоступна в случае Суперсервера для многих систем SMP. Тем не менее, поскольку использование памяти Классическим сервером находится в прямой зависимости от количества одновременных подключений, может оказаться невозможным устанавливать систему на сайтах, где ресурсы сервера не обеспечивают поддержки большого количества пользователей в системе.
Процесс, который является "ушами" для запросов клиентов на соединение с Классическим сервером, является начальным экземпляром программы fb_inet_server.exe. Если начальный экземпляр fb_inet_server.exe не запущен, то не будет возможно соединение клиент-сервер; при попытке соединения вы получите сообщение об ошибке "Unable to connect to the server. Database cannot be found" (Невозможно соединиться с сервером. База данных не может быть найдена).
Когда клиенты соединяются с базой данных, для каждого клиентского соединения запускается один экземпляр fb_inet_server.exe (1.2 Мбайт) и, если сконфигурировано, один экземпляр Guardian на все экземпляры fb_inet_server.exe. Для каждого соединения выполняется собственное выделение кэш-памяти.
Классический сервер и GuardianСлучайно или умышленно, инсталлятор Firebird 1.5.0 имеет небольшую, но приводящую в замешательство аномалию. Если вы не отметите в процессе инсталляции режим Use Guardian (Использовать Guardian), инсталлятор поместит версию для Суперсервера программы Guardian в каталог bin, и он никогда не будет работать с Классическим сервером. Если вы отметите этот режим, то в процессе инсталляции получите сообщение об ошибке, однако инсталлированная версия Guardian будет прекрасно работать с Классическим сервером. Вы можете проверить, правильная ли у вас версия, попытавшись запустить Guardian. Если вы увидите диалоговое окно сообщения об ошибке, содержащее слово "fbserver", значит, вы не выбрали поддержку Guardian в процессе инсталляции.
В любом случае Guardian является лишним для Классического сервера. Вы ничего не потеряете, если не будете его инсталлировать. Я рекомендую игнорировать Guardian для Классического сервера.
Для запуска начального экземпляра Классического сервера как приложения вручную вызовите окно командной строки, перейдите в каталог bin и наберите:
fb_inet_server.exe -a
Иконка сервера должна появиться на системной панели. Ваш сервер теперь готов к получению запросов на соединение.
Вы можете альтернативно выбрать режим Use Guardian в процессе инсталляции. Вы также можете стартовать Guardian из того же каталога:
fbguard.exe -с -a
В этом случае иконка Guardian появится на системной панели, однако она не может быть использована для отмены инициализации сервера (см. ранее в разд. "Классический сервер" замечание о Классическом сервере).
Останов сервера
Останов сервера- операция, которая по-разному воздействует на Суперсервер и Классический сервер.
СуперсерверЩелкните правой кнопкой мыши по иконке Guardian или сервера и выберите в контекстном меню Shutdown (Остановить). Если выполняется Guardian, то сначала он остановит сервер, а затем закроется сам. Подключенные в этот момент пользователи потеряют всю неподтвержденную работу.
Классический серверВ большинстве случаев нет необходимости "останавливать" Классический сервер. Выбор варианта Shutdown в контекстном меню иконки сервера предотвратит новые соединения с сервером, но это не будет воздействовать на подключенные процессы.
! ! !
ПРИМЕЧАНИЕ. Щелчок мышью по варианту Shutdown в контекстном меню Guardian ничего не выполняет.
. ! .
Очень редко бывает нужным (если вообще бывает) останавливать Классический сервер вручную, поскольку закрытие клиентского соединения завершает этот процесс чисто и корректно. Единственный способ остановить Классический сервер, который выполняется как приложение, - применение "грубой силы", через Диспетчер задач.
Алиасы базы данных
Firebird 1.5 ввел концепцию алиасов базы данных не только для того, чтобы облегчить жизнь уставших от клавиатуры разработчиков, но и для того, чтобы улучшить переносимость приложений, а также чтобы усилить контроль над внутренним и внешним доступом к файлу базы данных.
aliases.conf
Средство алиасов включает файл конфигурации aliases.conf. Он находится в корневом каталоге вашей инсталляции сервера и не должен перемещаться оттуда.
Переносимость
До реализации 1.5 все клиентские приложения соединялись с сервером, используя строку соединения, которая включала абсолютный путь к серверу. Формат абсолютного пути меняется в зависимости от того, выполняется ли сервер под Windows или на POSlX-совместимой платформе (Linux, UNIX и т.д.), а для серверов под Windows еще и от того, какой вид сетевого соединения используют клиенты - TCP/IP или NetBEUI.
Предположим, у вашего сервера имя hotchicken. Если сервер выполняется на POSIX- совместимой платформе; клиенты TCP/IP будут соединяться с базами данных, используя строку соединения следующего формата:
hotchicken:/opt/databases/Employee.fdb
Если же сервер работает под Windows, клиенты TCP/IP должны соединяться, используя другой формат пути:
hotchicken:D:databasesEmployee.fdb
Средства алиасов базы данных делают эту разницу для клиентов TCP/IP прозрачной. Абсолютный путь строки соединения помещается в файл алиасов, связывая этот путь с простым именем алиаса. Например, в файле aliases.conf для сервера под Linux наш пример может быть сохранен как
dbl = /opt/databases/Employee.fdb
Для сервера в Windows, инсталлированного для клиентов TCP/IP, это может быть
dbl = D:databasesEmployee.fdb
Независимо от того, где установлен сервер - под Windows или POSIX - строка соединения для клиентов становится одинаковой:
hotchicken:dbl
Тем не менее это средство не является столь изящным, если вы хотите сделать строку соединения вашего приложения прозрачной как для соединений TCP/IP, так и NetBEUI. Нотация UNC для сервера под Windows для клиентов NetBEUI предполагает совместимость, однако если алиас базы данных идентичен, то серверная часть не является переносимой:
\hotchickendbl в сравнении с:
hotchi cken:dbl
Управление доступом
Основное преимущество средства алиасов в том, что оно может быть использовано в комбинации с параметром DatabaseAccess = NONE из файла firebird.conf для ограничения доступа к файлам баз данных - доступ разрешен только к файлам, указанным в aliases.conf.
Алиасы баз данных появились в Firebird 1.5. Для их использования отредактируйте файл aliases.conf в корневом каталоге инсталляции Firebird, используя текстовый редактор, такой как Блокнот (в Windows) или V1 (Linux).
Структура файла aliases.confИнсталлированный файл aliases.conf выглядит приблизительно таким образом:
#
# List of known database aliases
# ---------------------------------------------
#
# Examples:
#
# dummy = c:datadummy.fdb
#
Как и во всех файлах конфигурации Firebird, символ # является маркером комментариев. Для конфигурирования алиаса просто удалите символ # и замените строку dummy на соответствующий путь к базе данных:
# fbdbl и aliases.conf находится на сервере Windows:
fbdbl = c:Firebirdl5sampleEmployee.fdb
# fbdb2 и aliases.conf находится на сервере Linux
fbdb2 = /opt/databases/killergames.fdb
#
При каждом запросе на соединение, содержащем путь, заданный в формате алиаса, сервер обращается к файлу aliases.conf. Вы можете редактировать aliases.conf и когда сервер выполняется. Изменения не будут влиять на текущие соединения, но новые соединения будут использовать новые или измененные алиасы.
Соединение с использованием алиаса пути к базе данныхДля соединений TCP/IP, использующих предыдущий пример aliases.conf, измененная строка соединения в вашем приложении будет иметь следующий формат:
Имя_сервера:имя_алиаса
Например,
hotchicken:fbdb2
Для соединений Windows Named Pipes строка выглядит следующим образом:
\hotchickenfbdb2
Для локального соединения просто используйте собственный алиас.
Администрирование баз данных
Множество прекрасных графических инструментов - свободно распространяемых и коммерческих- доступны для администрирования баз данных Firebird. Информацию о подобных предложениях см. в приложении 5. Обновляемый каталог поддерживается на страницах Contributed Downloads на http://www.ibphoenix.com.