Изменение параметров конфигурации

Изменение параметров конфигурации

Нет необходимости изменять значения по умолчанию, если только вы не собираетесь настроить некоторые из них. Это не рекомендуется делать, если вы не в полной мере понимаете, к чему это может привести.

Отдельные установки конфигурации по умолчанию, которые могут быть полезными для некоторых существующих приложений или инсталляций не по умолчанию, обсуждаются здесь вкратце. Полное описание параметров конфигурации см. в главе 36. Файл конфигурации можно редактировать любым текстовым редактором (например, vim в Linux или Блокнот в Windows). Не копируйте этот файл с машины Windows в Linux и наоборот, поскольку эти системы по-разному сохраняют символы перевода строки.

Записи параметров в файле firebird.conf представлены в форме:

имя_параметра = значение

где имя_параметра - строка, содержащая имя параметра (без пробелов), а значение - это число, логическая константа (1=Истина, 0=Ложь) или строка, которые задают значение параметра.

Для задания параметру значения, отличающегося от значения по умолчанию, удалите символ примечания (#) и отредактируйте значение.

Имена параметров и синтаксис в файле ibconfig/isc_config для Firebird 1,0.x отличаются от того, что может содержаться в firebird.conf. Формат, размер и количество параметров являются более ограниченными.

Формат в ibconfig/isc conflg:

имя_параметра значение

где промежуток между именем и значением может быть символами табуляции и пробелами (по желанию, как больше нравится). Каждая строка в файле ограничена 80 символами. Неиспользуемые параметры и инсталляционные значения по умолчанию закомментированы с помощью символа #.

Помните, что в Linux параметры чувствительны к регистру.

! ! !

ПРИМЕЧАНИЕ. Вы можете редактировать файл конфигурации и когда сервер запущен. Для активации изменений нужно остановить и заново запустить сервер.

. ! .

Корневой каталог Firebird

Корневой каталог инсталляции Firebird может использоваться в разных ситуациях - при инсталляции как используемый сервером атрибут, для параметров конфигурации и для клиентов. Поскольку есть разные способы сообщения серверу, где можно найти значение этого атрибута, разработчики и системные администраторы для его правильного определения должны знать, в каком порядке сервер находит это значение.

1. На любой платформе сервер в первую очередь смотрит глобальную переменную окружения FIREBIRD. Если он находит эту переменную, ее значение будет использовано без всяких условий.

2. Если переменная окружения FIREBIRD отсутствует, то для платформ Windows сервер отыскивает ключ в реестре

HKEY_LOCAL_MACHINESOFTWAREFirebird ProjectFirebird ServerInstances

и смотрит поле oefauitinstance. Если он находит в данном поле правильный путь к каталогу, то использует это значение. Другие платформы не имеют подобного указателя.

3. Если корневой каталог все еще не найден, то предполагается, что временный корневой каталог располагается на один уровень выше каталога запущенного процесса (,. для Windows и ../ или ссылка на /proc/self/exe для POSIX, если доступно).

4. Теперь процедура запуска ищет в этом каталоге файл firebird.config. Если файл firebird.config найден, то процедура отыскивает параметр RootDirectory. Если параметр присутствует, его значение становится окончательно корневым каталогом, иначе промежуточное значение из n.3 становится окончательным значением.

! ! !

ВНИМАНИЕ! Если файл firebird.config не был найден на уровне, предшествующем запускаемому процессу, это может означать, что корневой каталог не был определен по причине нестандартной инсталляции. Сервер должен найти корневой каталог файлов. Если вам встретилась ошибка безопасности или ошибка файловой системы в процессе соединения или во время выполнения, вы должны пересмотреть ваши пути инсталляции, чтобы убедиться, что все действия, описанные в данном разделе, правильно определили корневой каталог файлов и подкаталоги.

. ! .

Параметры, связанные с доступом к файлам

Firebird имеет несколько параметров для защиты его файлов и баз данных от разрушающего или неавторизованного доступа. Если вы перемещаете приложение работы с базой данных или используете инструмент администратора для Firebird 1.5, вам следует обратиться к разд. "Файл конфигурации Firebird" в главе 36 для получения детальной информации об указанных далее параметрах.

* RootDirectory - может быть использован для изменения абсолютного пути к корневому каталогу в локальной файловой системе. Он должен оставаться закомментированным, если только вы не захотите изменить процедуру запуска, перекрыв путь к корневому каталогу инсталляции сервера Firebird (см. n. 3 в предыдущем разделе).

* DatabaseAccess - в Firebird 1.0.x сервер может соединяться с любой базой данных в его локальной файловой системе и всегда доступен приложениям, передающим абсолютный путь к файлу в файловой системе. Этот параметр был введен в версии 1.5, чтобы обеспечить более четкое управление безопасностью при доступе к файлам базы данных, а также для поддержки средства алиасов баз данных.

Инсталляция по умолчанию устанавливает значение параметра в Full, чтобы имитировать поведение Firebird версии 1,0.x. Альтернативные режимы могут ограничить доступ сервера только к базам данных с алиасами или к базам данных, размещенных в указанных каталогах файловой системы.

! ! !

ВНИМАНИЕ! Настоятельно рекомендуется установить этот режим и сделать доступным средство алиасов баз данных. Информацию об алиасах базы данных см. в главе 4.

. ! .

* ExtemaiFiieAccess - заменяет параметр EXTERNAL_FILE_DIRECTORY, введенный в версии 1,0. Этот параметр обеспечивает три уровня безопасности для External Files (внешние файлы - текстовые файлы фиксированного формата, к которым возможен доступ, как и к таблицам базы данных). Если вы переносите базу данных, в которой определены внешние файлы таблиц, вам нужно установить этот параметр для версии 1.5, потому что он отключен по умолчанию. Конфигурация необязательная, тем не менее рекомендуется для версии 1.0.x.

* UDFAccess - предназначен для защиты местоположения кода внешних модулей. Он заменяет не только необязательный параметр версии 1.0.x externai_function_ directory, но также и форму представления значения. Firebird 1.5 инсталлируется с отключенным по умолчанию доступом к библиотекам внешних функций, в то время как большинство серверов до этого давали полный доступ.

* TempDirectories (TMP_DIRECTORY в версии 1.0.x)- конфигурирование этого параметра является одним из способов задания размещения временного пространства сортировки для сервера, указав местоположение на диске. Синтаксис Firebird 1.5 отличается от синтаксиса Firebird 1.0.x.

Другие полезные параметры

Следующие параметры могут быть полезными в некоторых аппаратных конфигурациях.

* cpuAffinityMask (CPU_AFFINITY в версии 1.0.x)- может быть использован для назначения процессоров, которые Суперсервер в Windows будет использовать на машинах SMP. Эта проблема известна как эффект "see-saw", когда операционная система постоянно переключает выполнение Суперсервера между процессорами на некоторых машинах SMP. Свойство CPU должно быть установлено для одного процессора, если вам встретилась такая проблема.

По умолчанию маска свойств устанавливается для использования первого процессора в массиве.

* LockMemSize- параметр специфичен для Классических серверов; он определяет количество байтов разделяемой памяти, которая отводится для таблицы памяти, используемой менеджером блокировки. Вам может понадобиться изменить это количество, если вы встретите в Классическом сервере ошибку "Lock manager is out of room" (Менеджеру блокировки не хватает памяти). В связи с этой проблемой см. также параметр LockHashsiots.

* sortMemBiocksize и sortMemOpperLimit - эти два параметра были добавлены в версию 1.5, чтобы позволить устанавливать и ограничивать объем оперативной памяти, которую использует сервер при внутренней сортировке. Для Классического сервера этот размер по умолчанию слишком велик, чтобы поддерживать достаточно большое количество соединений.

* DummyPacketinterval(DUMMY_PACKET_INTERVAL в 1.0.x)- параметр - пережиток 16-битовых систем; он может стать причиной проблем в 32-битовых Windows. Это был старый параметр времени ожидания InterBase, предполагалось устанавливать количество секунд (целое число), в течение которых сервер должен был ожидать от клиента сообщений, после чего сервер должен был посылать пустой пакет для получения подтверждения. По умолчанию он установлен в 0 для Firebird 1.5(неактивен) и в 60 для Firebird 1.0.x. Он должен быть неактивным (установленным в 0) для всех систем Windows. Также настоятельно рекомендуется отключать его для других операционных систем[5].

* RemoteBindAddress - по умолчанию могут соединиться клиенты из любой сети, из которой сервер принимает трафик. Этот параметр позволяет связать сервис Firebird с исходными запросами через один IP-адрес (например, сетевая карта) и отклонять запросы соединения от любых других сетевых интерфейсов. Это помогает решать проблемы некоторых сетей, где сервер является хостом для нескольких подсетей. Не поддерживается в версии 1.0.x.

* compieteBooieanEvaiuation - параметр может быть использован для преобразования логики вычисления логических значений в виде сокращенного вычисления булевских выражений, используемой в Firebird 1.5 и выше, в полное вычисление булевских выражений, используемое в Firebird 1.0.x.

* oldparameterordering- восстанавливает старый способ обработки порядка параметров для запросов с подзапросами - сначала параметры подзапроса, затем параметры внешнего запроса. Firebird 1.5 по умолчанию обрабатывает параметры в точном порядке их следования, что может быть несовместимо со старыми версиями различных компонентов доступа, которые ориентировались на поведение InterBase/Firebird 1.0.

Пора дальше

Теперь нам больше ничего не осталось, кроме как соединиться с базой данных и начать выполнять серьезные эксперименты. Глава 4, последняя в нашем "учебном лагере", даст вам возможность соединиться с примером базы данных или с любой другой совместимой с Firebird базой данных, которая может находиться на вашем сервере.