Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Шрифт:
– tr[an] n используется для предотвращения запуска новых транзакций. Это не закрывает существующих транзакций, но не позволяет запускать новые. Если не будет никаких соединений по прошествии времени ожидания n секунд, то база данных будет переведена в закрытое состояние. Если еще остаются соединения, то закрытие будет отменено.
– f[orce] n форсированно переведет базу данных в закрытое состояние по прошествии n секунд, независимо от существования соединений или активных транзакций. Это радикальная операция, которая может привести к тому, что пользователи потеряют свою проделанную работу. Она должна быть использована с осторожностью.
! ! !
СОВЕТ.
. ! .
Примеры:
gfix -sh -at 300
инициирует закрытие базы данных, что произойдет через 5 минут, если все пользователи отключатся от базы данных.
gfix -sh -f 600
отключит всех пользователей от системы через 10 минут. Любые еще выполняющиеся транзакции будут отменены, а пользователи потеряют проделанную и неподтвержденную работу.
Когда база данных находится в закрытом состоянии, пользователь SYSDBA или ее владелец могут соединиться с ней и получить исключительный доступ. Однако остерегайтесь следующих моментов:
* если владелец или SYSDBA были соединены с базой данных в момент ее закрытия, то сервер не будет блокировать другие подключения к базе данных, даже когда выполнено закрытие;
* когда владелец или SYSDBA соединяется с базой данных после ее закрытия, то другому будет заблокирован к ней доступ - это хорошо. Если тот же пользователь захочет снова к ней подключиться, ему это будет разрешено, что уже не столь хорошо [154] .
Это накладывает ответственность на SYSDBA или на владельца, кому нужен исключительный доступ гарантировать, что ни они, ни кто-либо другой не будет соединен с базой данных с использованием визуального административного инструмента, монитора SQL, другого инструмента командной строки или даже другого режима gfix, например. Когда вы получили исключительный доступ, сохраните его исключительным - не запускайте более одного приложения [155] .
154
После того как база данных переведена в состояние shutdown, к ней могут подключиться только пользователи SYSDBA и владелец базы данных (owner). Всем другим пользователям при попытке соединения с такой базой данных будет выдано соответствующее сообщение об ошибке.
– Прим. науч. ред.
155
Количество соединений SYSDBA при состоянии базы данных shutdown ничем не ограничено. Только в Firebird 2.0 есть режим монопольноrо (только одноrо) подсоединения SYSDBA - Прuм, науч, ред.
Используйте 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.