Это накладывает ответственность на SYSDBA или на владельца, кому нужен исключительный доступ гарантировать, что ни они, ни кто-либо другой не будет соединен с базой данных с использованием визуального административного инструмента, монитора SQL, другого инструмента командной строки или даже другого режима gfix, например. Когда вы получили исключительный доступ, сохраните его исключительным - не запускайте более одного приложения[155].
Используйте gfix -o[nline] для отмены закрытия и перевода базы данных в оперативное состояние для доступа множества пользователей. Вы также можете применять это для отмены закрытия по расписанию.
Имейте в виду, что останов или запуск сервера не оказывает никакого воздействия на состояние закрытия любой базы данных. Если база данных закрыта, когда сервер остановлен, она будет оставаться в закрытом состоянии и при последующем запуске сервера. Останов сервера не переведет никакую базу данных в закрытое состояние.
! ! !
ПРИМЕЧАНИЕ. Если вы скопировали файл базы данных, которая находится в закрытом состоянии, а затем пытаетесь соединиться с копией, то копия будет в закрытом состоянии.
. ! .
Множество режимов команды gfix позволяет установить или изменить различные установки базы данных. Для выполнения таких команд требуются полномочия SYSDBA или владельца базы данных, а также исключительный доступ.
Использование gfix является предпочтительным способом установки размера кэша по умолчанию для базы данных. Важно помнить некоторые моменты.
* Если вы увеличиваете размер страницы, размер кэша соответственно увеличится. Вы должны гарантировать, что вы получите количество физической памяти машины в соответствии с измененным размером кэша. Когда кэш достигнет размера, который слишком велик для хранения в RAM, он начнет записываться на диск, что полностью уберет все преимущества использования кэша.
* В Классическом сервере каждый клиент получает свой собственный кэш. Даже размер кэша по умолчанию в 75 страниц будет слишком большим, если база данных использует большой размер страницы.
Синтаксис:
gfix -b[uffers] n база-данных
Здесь n- размер резервируемого кэша (количество буферов с размером, равным размеру страницы).
Пример:
gfix -b 5000 d:\data\accounts.fdb
Если размер страницы базы данных 8192, то кэш в 5000 страниц займет примерно 40 Мбайт.
В настоящий момент переключатель -с[ache] n не используется; он зарезервирован для дальнейших реализаций.
Используйте вариант gfix -mo[de] для переключения режима доступа любого соединения с базой данных между "только для чтения" и "для чтения/записи". В базу только для чтения нельзя совсем выполнить запись - даже пользователю SYSDBA, ее владельцу или любому серверному процессу.
Синтаксис:
gfix -mo[de] {read_write | read_only} база-данных
Для переключения базы данных из режима чтения/записи в режим только для чтения:
./gfix -mo read_only /data/accounts.fdb
Для переключения базы данных из режима только для чтения в режим чтения/записи:
./gfix -mo read_write /data/accounts.fdb
С переключателем -s[qi_diaiect] вы можете изменить диалект! базы данных на родной для Firebird диалект 3. После этого база данных перестает использовать диалект 1 и начинает подчиняться полным синтаксическим правилам SQL Firebird и может использовать все типы данных Firebird.
Но база данных продолжает хранить все существующие данные и определения в соответствии с диалектом 1. Здесь существует несколько ловушек, в особенности в отношении числовых типов с фиксированной точкой.
Короче говоря, изменение диалекта с помощью gfix не будет ни тактикой быстрой миграции, ни надежным способом миграции из диалекта 1 в диалект 3. Быстрое изменение средствами gfix означает медленный способ полной миграции. Опытные пользователи предлагают вместо этого извлечь скрипт схемы вашей базы данных диалекта 1, изменить подходящим образом определения, а затем использовать инструмент перекачки данных для перемещения старых данных в новую базу.
Если же вы все-таки хотите использовать этот способ, вот синтаксис:
gfix -s[ql_dialectj n база-данных
Здесь n равно 1 или 3.
Например, для изменения диалекта базы данных на 3 выполните:
./gfix -s 3 /data/accounts.fdb
Под Windows вы можете выполнить следующее:
gfix -sql_dialect 3 d:\data\accounts.fdb