Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Средства локального соединения клиент-сервер являются ограниченными и не должны использоваться при поставках программ. Распространяйте автономные приложения клиент-сервер, Web-приложения и другие уровни серверов с использованием для соединения локально закольцованного протокола TCP/IP.
* Прямое локальное соединение в POSIX. Может ли локальный клиент соединяться с базой данных в Linux и в некоторых других системах POSIX, зависит, в первую очередь, от варианта сервера, который вы инсталлировали (Классический сервер или Суперсервер), и, во вторую очередь, от типа клиентского соединения.
Суперсервер совсем не принимает локальных соединений через обычный клиентский API. Путь для соединения всегда должен включать имя хоста TCP/IP. Тем не менее он принимает локальные соединения от "встроенных приложений" (приложений, написанных с использованием встроенного SQL - Embedded SQL, ESQL). Инструменты командной строки, gsec, gfix, gbak и gstat, которые являются встроенными приложениями, могут выполнять локальные соединения с Суперсервером.
Если у вас запущен Классический сервер, с локального клиента возможно прямое соединение.
Встраиваемый сервер
Начиная с Firebird 1.5, пакеты Firebird для Windows включают полную функциональность встраиваемого сервера (клиент и сервер соединяются как динамическая библиотека). Это идентично обычной модели клиент-сервер, за исключением того, что здесь не поддерживается сетевой протокол: соединение осуществляется в стиле "локальной Windows" для эмуляции сетевого соединения.
! ! !
ВНИМАНИЕ! Встраиваемый сервер не поддерживает пароль безопасности доступа Firebird.
. ! .
Смешанные платформы
Архитектура Firebird позволяет клиентам, запущенным в одной операционной системе, получить доступ к серверу Firebird, выполняющемуся на платформе и в операционной системе, отличных от клиентских. Часто используемый вариант- одновременный запуск нескольких недорогих персональных компьютеров с Windows 98 в качестве клиентских рабочих станций, имеющих доступ к главному серверу, выполняющемуся под Windows NT/2000/XP, Linux или под некоторой версией UNIX.
База данных, которая была создана для использования на одной модели сервера, может работать на любом из них. Например, когда приложение встраиваемого сервера неактивно, его база данных может находиться под управлением другого приложения встраиваемого сервера или полного сервера Firebird, обслуживающего удаленных клиентов. Та же база данных может быть без изменений перенесена с одной платформы на другую[4].
К тому же платформы Windows и Linux, реализации сервера Firebird (Классический, Суперсервер или оба) работают также в Mac OS X (Darwin), FreeBSD, Sun Solaris (Intel и SPARC), HP-UX, потенциально в AIX и могут быть созданы для множества дополнительных платформ UNIX.
Firebird в настоящее время не поддерживает ни платформу Novell NetWare, ни другие виды сетей, которые используют устаревший протокол IPX/SPX. С прекращением со стороны Novell поддержки этого протокола сайты часто используют серверы Firebird в системе Linux с сетевыми клиентами, подключенными к этой подсистеме через TCP/IP.
Сетевой адрес для сервера
Для связи через TCP/IP вы должны соединяться с хостом, который имеет известный адрес IP. Определение того, какой это адрес IP (или каким должен быть, если он отсутствует), зависит от вида сетевого оборудования вашей хост-машины.
* Если вы находитесь в управляемой сети, получите IP-адрес сервера у вашего системного администратора.
* Если у вас простая сеть из двух машин, соединенных кабелем с перекрестными проводниками, или малая переключаемая сеть, вы можете установить для вашего сервера любой подходящий уникальный адрес IP, какой вам нравится, за исключением 127.0.0.1 (который резервируется для локальной заглушки TCP).
* Если вам известны "родные" адреса IP ваших сетевых карт, и они различны, вы можете просто использовать их.
* Если вы собираетесь пробовать инсталляцию на одной машине и для клиента, и для сервера, вы должны использовать адрес локально закольцованного сервера - localhost или его IP-адрес 127.0.0.1.
! ! !
ВНИМАНИЕ! В Windows один пользователь может локально соединиться с сервером без использования локального TCP/IP как внешний или как встроенный клиент. Серверный адрес не требуется для такого соединения и не может быть использован для проверки того, правильно ли работает TCP/IP при вашей инсталляции.
. ! .
Файл HOSTS
Если в вашей TCP/IP-сети не запущен сервис имен доменов, то необходимо проинформировать индивидуально каждый узел о распределении адресов IP в именах хоста вашей сети. Для этого измените файл HOSTS для каждого узла (сервер и клиент).
При установке узлов Firebird вашей TCP/IP-сети рекомендуется конфигурировать файлы имен хоста на клиентах и использовать имена, а не напрямую адреса IP при подключении к серверу. Хотя большинство последних операционных систем могут использовать IP-адрес хоста в строке соединения вашего клиента вместо имени хоста, соединение через имя хоста гарантирует, что адрес сервера остается статичным, несмотря на динамическое изменение адресов в сети.
! ! !
ВНИМАНИЕ! Для рабочих станций, работающих под Windows 95 и ранней версии Windows 98, где клиентские станции работают в старой 32-битовой версии Windows, сетевая поддержка вовсе не распознает IP-адрес в строке соединения, потому что эти версии инсталлировались с Winsock 1. В любом случае инсталляция Winsock 2 более соответствует требованиям текущих версий Firebird. Свободно распространяемые пакеты обновлений могут быть загружены с сайтов поддержки пользователей Microsoft.
. ! .
Местонахождение файла HOSTS
Перечислим, где можно найти файл HOSTS.
* В Linux и многих версиях UNIX файл HOSTS обычно расположен в /etc/. Помните, что имена файлов являются чувствительными к регистру на платформах семейства UNIX.
* В Windows NT/2000 файл HOSTS располагается в C:WMNTsystem32driversetc.
* В Windows 95/98/ME/XP/Server2003 файл HOSTS располагается в C:Windows.
! ! !
СОВЕТ. Если файл HOSTS отсутствует, вы найдете файл с именем Hosts.SAM в том же месте. Скопируйте этот файл и переименуйте в HOSTS.
. ! .
Примеры записей файла:
10.12.13.2 db_server # Firebird-сервер (в LAN)
65.215.221.149 apress.com # (сервер в WAN)
127.0.0.1 localhost # локальная заглушка (в Windows)
127.0.0.1 localhost.localdomain # локальная заглушка(в Linux)
Откройте и отредактируйте файл HOSTS в текстовом редакторе. Создание записей простое. Тем не менее обеспечьте, чтобы:
* IP-адрес, если это не 127.0.0.1 (localhost), был действительным, сконфигурированным для хоста в вашей сети;
* имя сервера было любым уникальным именем в вашей сети;
! ! !
СОВЕТ. Серверная машина под Windows, которая была установлена в Windows Networking (Named Pipes) с именем хоста //Server_name, будет распространять это имя как имя хоста TCP/IP.
. ! .
* комментарии после символа # необязательны, но рекомендуются;
* формат записей одинаков, независимо от того, под какой системой запущен хост - Windows или Linux/UNIX.
! ! !
ВНИМАНИЕ! После того как вы отредактировали файл HOSTS, проверьте, что ваш редактор сохранил HOSTS без расширения имени файла. Если необходимо, удалите любое расширение, переименовав файл.
. ! .
Имя сервера и путь к нему
При создании или перемещении базы данных убедитесь, что она располагается на жестком диске, который физически соединен с вашей серверной машиной. Файлы базы данных, расположенные на разделенных, назначенных дисках или (для UNIX) смонтированных как файловая система SMB (Samba), невидимы для сервера.
Начиная с Firebird 1.5, у вас есть возможность сохранять пути к базам данных на вашем сервере с использованием алиасов путей к базе данных. Это не только упрощает дело с установкой изменяемой строки соединения в ваших приложениях, но также добавляет дополнительный уровень безопасности для ваших удаленных соединений. Алиасы путей к базам данных не дают возможности чужим программам определить, где расположены ваши базы данных, и использовать эту информацию для разрушения ваших файлов.
Об алиасах базы данных см. главу 4.
Синтаксис строки соединения
Это строки соединения, очевидные для каждой платформы, которые нужны вам для конфигурирования алиасов и для соединения клиентов с базой данных, через сервер Firebird тех версий, которые не поддерживают алиасов базы данных.
TCP/IPСтрока соединения TCP/IP содержит два элемента: имя сервера и абсолютный путь диска/файловой системы, такой, как его видит сервер. Формат следующий:
* для соединения с сервером Linux:
имя-сервера: /путь-файловой-системы/файл-базы-данных
Вот пример для Linux или другой операционной системы семейства UNIX для сервера с именем hotchicken:
hotchicken:/opt/firebirdl5/examples/LeisureStore.fdb
! ! !
ВНИМАНИЕ! Помните, что для этих платформ все имена файлов являются чувствительными к регистру.
. ! .
* для соединения с сервером Windows: