- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - Хелен Борри
Шрифт:
Интервал:
Закладка:
hotchicken:/opt/firebirdl5/examples/LeisureStore.fdb
! ! !
ВНИМАНИЕ! Помните, что для этих платформ все имена файлов являются чувствительными к регистру.
. ! .
* для соединения с сервером Windows:
имя-сервера:Диск: путь-файловой-системыфайл-базы-данных
Пример:
hotchicken:С:Program FilesFirebirdl5examplesLeisureStore.fdb
Прямая наклонная черта также допустима в Windows:
hotchicken:С:/Program Files/Firebirdl5/examples/LeisureStore.fdb
Локальное соединение в WindowsСоединение встроенного клиента или локального внешнего клиента в локальном режиме Windows:
C:Program FilesFirebirdl5examplesLeisureStore.fdb
Сеть Windows (Named Pipes/WNet)Соединение удаленного клиента сервера Windows с использованием протокола Named Pipes:
\имя-сервераДиск:путьфайл-базы-данных
где \имя-сервера - правильный идентификатор имени узла серверной машины в сети Windows, не может быть разделяемым или назначенным диском. Например,
\hotchickenc:databasesLeisureStore.fdb
Несовместимые строки соединения для подключений WindowsСуперсервер для Windows устанавливает исключающую блокировку на файл базы данных, когда активируется первое клиентское подключение, чтобы защитить базы данных от старой ошибки.
Ошибка в пути соединенияWindows воспринимает две формы абсолютного локального пути к файлу - один (правильный в соответствии со стандартом DOS), имеющий вид устройство:путь- к-базе-данных, и другой: Устройство: путь-к-базе-данных (отсутствует обратная наклонная черта после обозначения дискового устройства).
Если сервер получил два клиентских запроса на соединение, первое, использующее стандартную форму пути, и второе, с использованием второй формы, он будет трактовать эти два соединения, как если бы они были соединениями с двумя разными базами данных. Результатом параллельных операций DML в подобном случае будет разрушение базы данных.
Для соединений с Суперсервером исключающая блокировка решает проблему требования для всех соединений применения того же формата пути, что был использован при первом соединении. То же решение не может применяться в случае Классического сервера, потому что каждое соединение работает с собственным экземпляром сервера. Позаботьтесь о том, чтобы ваше приложение всегда передавало согласованные строки пути.
! ! !
СОВЕТ. Настоятельно рекомендуется использовать алиасы базы данных (см. разд. "Алиасы базы данных" е главе 4) для всех соединений. Убедитесь также, что файл aliases.conf содержит один и только один алиас для каждой базы данных.
. ! .
Конфигурирование сервиса порта TCP/IP
По умолчанию Firebird прослушивает порт 3050 при запросе соединения от клиентов TCP/IP. Зарегистрированное имя сервиса этого порта gds_db. Хорошая новость - вы можете использовать эти установки по умолчанию и ничего не делать с конфигурацией сервиса порта ни для сервера, ни для клиента.
Вы можете использовать другой порт, другое имя сервиса порта или и то, и другое. Вам может понадобиться это сделать, если порт 3050 требуется для другого сервиса, например, если параллельно используемый gds_db сконфигурирован для другой версии Firebird или для сервера InterBase. Есть несколько способов перекрыть значения по умолчанию. Сервер и клиенты оба должны быть сконфигурированы для изменения имени сервиса или номера порта (или и того, и другого) по меньшей мере одним из следующих способов:
* в строке соединения клиента;
* в команде запуска исполняемой программы сервера;
* активацией параметров RemoteServicePort или RemoteServiceName В firebird.config (версия 1.5 и выше);
* в демоне конфигурации (для Классического сервера в POSIX);
* в записи файла services.
Прежде чем проверять каждую из этих техник, будет полезным взглянуть на логику, используемую сервером для установки прослушиваемого порта, и порядок установки клиентом используемого порта.
Как сервер устанавливает прослушиваемый порт
Исполняемая программа сервера имеет необязательный переключатель в командной строке (-р), который можно использовать для указания номера порта или имени сервиса порта, который будет прослушиваться сервером. Если присутствует этот переключатель, то номер порта 3050 или имя сервиса порта (gds_db) будут заменены на значение аргумента, указанного в переключателе -р.
Затем- или вначале, если не установлен переключатель -р,- сервер версии 1.5 проверяет наличие параметров RemoteServicePort и RemoteServiceName В firebird.config.
* Если оба параметра закомментированы с использованием #, то принимаются значения по умолчанию, и никакие дальнейшие изменения не выполняются. Любой аргумент -р игнорируется, и "отсутствующие" аргументы сохраняют значение по умолчанию.
* Если RemoteServiceName (но не RemoteServicePort) не закомментирован, то имя сервиса порта заменяется, только если это имя не было уже перекрыто переключателем -р.
* Если RemoteServicePort и RemoteServiceName не закомментированы, ТО RemoteServiceName получает приоритет, если он не был перекрыт аргументом -р. Если же имя сервиса порта уже было изменено, то значение RemoteServiceName будет проигнорировано, и новое значение RemoteServicePort заменит предыдущее значение 3050.
* В этой точке, если замена номера порта или имени сервиса была выполнена, то оба сервера версий 1.0 и 1.5 выполняют проверку файла services на наличие записи с корректной комбинацией имени сервиса и номера порта. Если соответствие найдено, то все в порядке. Если нет, и имя сервиса порта не gds db, то сервер выдаст исключение и отменит запуск. Если имя сервиса порта gds db и ему не может быть назначен никакой другой порт, он будет использовать порт 3050 автоматически.
Если значение по умолчанию для номера порта или имени сервиса было изменено, то вам может понадобиться создать запись в файле services. Для понимания того, нужно ли это делать, выполните шаги, описанные далее в этой главе в разд. "Конфигурирование файла services".
Использование переключателя -pЗапуск сервера с необязательным переключателем -р дает вам возможность перекрывать значение по умолчанию для номера порта (3050) или имя сервиса порта (gds db), которые используются сервером для прослушивания запросов на соединение. Переключатель может перекрывать одно значение, но не оба. В Firebird 1.5 и следующих вы можете использовать переключатель -р в комбинации с конфигурацией в файле firebird.conf для получения возможности перекрывать и номер порта, и имя сервиса порта.
Синтаксис для TCP/IPШаблон синтаксиса для команд:
Команда-сервера <другие переключатели< -р номер-порта j имя-сервиса
Например, для запуска Суперсервера как приложения и замены имени сервиса с gds_db на fb_db введите:
fbserver -а -р fb_db
Для замены порта 3050 на 3051 введите:
fbserver -а -р 3051
Синтаксис для WnetДля сети Wnet замените аргумент переключателя -р на обратная черта-обратная черта-точка[email protected]:
fbserver -а -р \[email protected]_db
ИЛИ
fbserver -а -р \[email protected]
Классический сервер в POSIX: демон inetd или xinetdВ Классическом сервере Firebird для Linux или UNIX демон inetd или xinetd сконфигурирован на прослушивание порта по умолчанию и имя сервиса по умолчанию. Инсталляционный скрипт запишет соответствующую запись в файл конфигурации /etc/inetd.conf или /etc/xinetd.conf.
Проблемы с подключением к Классическому серверу часто происходят по причине отсутствия или неправильной записи сервиса порта в этом файле. Вы можете проверить текущую запись, открыв файл в текстовом редакторе (например, vim) и скорректировав ее при необходимости. Следующий пример показывает, что вы должны увидеть в файле /etc/inetd.conf или /etc/xinetd.conf после инсталляции Классического сервера Firebird в Linux:
# default: on
# description: FirebirdSQL server
#
service gds_db
(
flags = REUSE KEEPALIVE
socket_type = stream
wait = no
user = root
# user = @[email protected]
log_on_success += USER1D
log_on_failure += USER1d
server = /opt/firebird/bin/fb_inet_server
disable = no
)
Если вы изменили сервис порта на значение, отличное от значения по умолчанию, вы должны соответственно изменить /etc/inetd.conf или /etc/xinetd.conf. Заново стартуйте xinetd (или inetd) с аргументом kill -HUP, чтобы убедиться, что демон будет использовать новую конфигурацию.
! ! !
ВНИМАНИЕ! Запросы на соединения будут неуспешными, если xinetd (или inetd) и fbserver (или ibserver) оба пытаются прослушивать один и тот же порт. Если ваша хост-машина имеет подобную дублирующую конфигурацию, то необходимо сделать такие установки, при которых каждая версия сервера имела бы свой собственный порт.
. ! .
Использование параметров файла конфигурацииВ Firebird 1.5 и выше вы можете конфигурировать или RemoteServiceName, или RemoteServicePort в файле firebird.config для изменения номера порта по умолчанию (3050), или имени сервиса порта по умолчанию (gds_db), которые использует сервер для прослушивания запросов на соединение.
Сервер будет использовать один параметр Remoteservice*, но не оба. Если вы сконфигурировали оба, то он будет игнорировать RemoteServicePort во всех ситуациях, за исключением того случая, когда команда запуска сервера была вызвана с переключателем -р, перекрывающим имя сервиса порта. Следовательно, вы можете использовать в комбинации переключатель -р и параметр Remoteservice* для изменения номера порта и имени сервиса.

