Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Шрифт:
Конечно, нереально планировать информационную систему предприятия, выполняющуюся под Windows 95. Тем не менее проще простого запустить минимально сконфигурированный сервер, а по необходимости в дальнейшем масштабировать его как по вертикали, так и по горизонтали. Серверы Firebird существуют в двух вариантах - Суперсервер и Классический сервер для удовлетворения различных потребностей пользователя. Оба могут быть масштабированы как вверх, так и вниз для обработки от самых простых до наиболее сложных конфигураций.
Программное обеспечение сервера Firebird эффективно использует системные ресурсы хост-компьютера. Суперсервер использует приблизительно 2 Мбайта памяти. Каждое клиентское соединение Суперсервера добавляет примерно 115
Требуемая серверу кэш-память зависит от конфигурации и от выбранного варианта Firebird. Обычная конфигурация кэша для сети при одновременно работающих 20-40 пользователях, скорее всего, будет 16, 32 или 64 Мбайта для Суперсервера, использующего общий пул для всех соединений. Для каждого Классического сервера назначается статический кэш с размером по умолчанию 75 Кбайт. Серверы версии 1.5 также будут использовать RAM для ускорения сортировки, если память доступна. Требуемое дисковое пространство для минимальной инсталляции Firebird составляет от 9 до 12 Мбайт в зависимости от платформы. Дополнительное дисковое пространство требуется для временного хранения данных в процессе выполнения операций, дополнительная память также требуется для кэширования страниц базы данных. Эта память конфигурируется в соответствии с запросами обработки данных и вероятного объема и типа обрабатываемых данных.
Роль сервера
Работа сервера включает:
* управление хранением данных базы данных и выделение дискового пространства;
* управление всеми транзакциями, запущенными клиентами, гарантирование, что каждая получит и сохранит непротиворечивый образ постоянно хранимых данных, требуемых клиенту;
* управление подтверждением транзакций, данными и сборкой мусора;
* поддержку блокировок и статистики для каждой базы данных;
* обработку запросов на добавление, изменение или удаление строк и поддержку текущих и устаревших версий записей;
* поддержку метаданных каждой базы данных и обслуживание запросов клиентов по созданию новых баз данных и объектов базы данных, изменение структур, проверку и компиляцию хранимых процедур и триггеров;
* обслуживание клиентских запросов на получение результирующих данных и выполнение хранимых процедур;
* маршрутизацию сообщений для клиентов;
* поддержку кэшированных данных для хранения часто используемых наборов данных и индексов;
* отдельную поддержку безопасности баз данных для проверки доступа пользователей.
Платформы для операционных систем
Платформы сервера Firebird включают следующие операционные системы, но не ограничиваются только ими.
* Linux, FreeBSD и другие варианты ОС UNIX.
* Платформы Microsoft Windows, поддерживающие сервисы: NT 4, Windows 2000 (сервер или рабочая станция), XP Professional и Server 2003. Операционные системы Windows 9х, ME и XP Home могут быть использованы как сервер, который прослушивает порты протокола TCP, но не Named Pipes (NetBEUI).
* Mac OS X (Darwin).
* Sun Solaris SPARC и Intel.
* HP-UX.
Примеры топологий
Сервер Firebird существует в нескольких "моделях", которые обеспечивают множество режимов масштабирования - от однопользовательского варианта, независимой настольной системы, до мощного сервера.
Двухуровневая архитектура клиент-сервер
На рис. 6.1 изображена гибкая система, где множество серверов Firebird выполняются на платформах с различными операционными
Сервер Linux может обслуживать системы сетевой защиты, шлюзы, вспомогательные базы данных и другие системы клиент-сервер, включая электронную почту, Интернет и сервисы файлов, такие как NFS и Samba.
Рис. 6.1. Двухуровневая топология клиент-сервер в Firebird
Неоднородная сеть обслуживания баз данных является общей средой для Firebird. В небольших сетях с единственным сервером, где местный администратор может не входить в штат сотрудников, существует тенденция переносить сервер базы данных с одного узкоспециализированного хоста, работающего под Windows, на дешевую машину Linux с хорошей оперативной памятью и быстрым доступом к данным. Поддержка недорогая, что делает возможным передачу большинства административных функций другим организациям. Системы, подобные этой, могут расти без каких-либо сложностей.
Однопользовательская модель
Все серверы Firebird могут работать с локальными клиентами. Протоколы соединения и режимы меняются в соответствии с выбранной вами моделью сервера. Однопользовательские инсталляции делятся на две категории:
* Независимый сервер. В этой модели сервер инсталлируется и запускается на машине. Локальные соединения осуществляются с использованием протоколов в стиле сетевых, используя обычные клиентские библиотеки.
* Встраиваемый сервер. Никакой сервер не инсталлируется. Сервер находится в DLL, похожей на клиентскую библиотеку, и загружается приложением. Приложение вместе с DLL сервера выполняется как единственный процесс на одно соединение. Когда приложение завершается, то фактически завершается и работа сервера.
В автономной модели клиент-сервер локализованное клиентское подключение к выполняющемуся серверу выполняется с использованием локального протокола. Сервер может прослушивать подключения от удаленных клиентов во время подключенного локального клиента. Рис. 6.2 иллюстрирует этот режим.
Рис. 6.2. Автономные серверы
Первый пример показывает модель локального подключения. В Firebird 1.5 и ниже подсистема IPSERVER моделирует сетевое подключение в том же блоке пространства общения между процессами. В версии 1.5 и выше вместо локального протокола используется более быстрая и надежная подсистема XNET. Функциональный эквивалент локального подключения используется Классическим сервером в POSIX.
В двух других примерах в Windows, Linux или на любой другой поддерживаемой платформе Суперсервер использует локальную "заглушку" (loopback) протокола TCP/IP. Это обычное подключение TCP/IP к специальному IP-адресу 127.0.0.1, который большинство подсистем TCP/IP инсталлирует по умолчанию для локального хоста (localhost). В Linux Классический сервер версии 1.5 может применяться в этом режиме при использовании клиентской библиотеки libfbclient.so.