Команда gfix -shut
Команда gfix -shut
Синтаксис команды gfix -shut следующий: POSIX:
./gfix -sh[ut] {-at n |-t n |-f n } база-данных Windows:
gfix -sh[ut] {-at n |-t n |-f n } база-данных
Определение аргументов
Переключатель gfix -shut поступает с гремя квалификаторами, которые уточняют стратегию закрытия: -at[tach] n, -tr[an] n и -f[orce] n. В любом случае n устанавливает период ожидания в секундах. Вы должны использовать один аргумент.
-at[tach] n употребляется для предотвращения новых соединений с базой данных. Он не отключает существующие соединения, но блокирует любые новые соединения. Если не будет никаких соединений по прошествии времени ожидания n секунд, то база данных будет переведена в закрытое состояние. Если же еще остаются соединения, то закрытие будет отменено.
-tr[an] n используется для предотвращения запуска новых транзакций. Это не закрывает существующих транзакций, но не позволяет запускать новые. Если не будет никаких соединений по прошествии времени ожидания n секунд, то база данных будет переведена в закрытое состояние. Если еще остаются соединения, то закрытие будет отменено.
-f[orce] n форсированно переведет базу данных в закрытое состояние по прошествии n секунд, независимо от существования соединений или активных транзакций. Это радикальная операция, которая может привести к тому, что пользователи потеряют свою проделанную работу. Она должна быть использована с осторожностью.
! ! !
СОВЕТ. Если вам нужно прибегнуть к переключателю -f[orce], чтобы убить дефектный запрос, то, по крайней мере, будьте вежливы с вашими "хорошо себя ведущими" пользователями и сначала используйте -at[tach] или -tr[an], чтобы дать им возможность сохранить работу и элегантно выйти из своих приложений.
. ! .
Примеры:
gfix -sh -at 300
инициирует закрытие базы данных, что произойдет через 5 минут, если все пользователи отключатся от базы данных.
gfix -sh -f 600
отключит всех пользователей от системы через 10 минут. Любые еще выполняющиеся транзакции будут отменены, а пользователи потеряют проделанную и неподтвержденную работу.
Исключительный доступ
Когда база данных находится в закрытом состоянии, пользователь SYSDBA или ее владелец могут соединиться с ней и получить исключительный доступ. Однако остерегайтесь следующих моментов:
* если владелец или SYSDBA были соединены с базой данных в момент ее закрытия, то сервер не будет блокировать другие подключения к базе данных, даже когда выполнено закрытие;
* когда владелец или SYSDBA соединяется с базой данных после ее закрытия, то другому будет заблокирован к ней доступ - это хорошо. Если тот же пользователь захочет снова к ней подключиться, ему это будет разрешено, что уже не столь хорошо[154].
Это накладывает ответственность на SYSDBA или на владельца, кому нужен исключительный доступ гарантировать, что ни они, ни кто-либо другой не будет соединен с базой данных с использованием визуального административного инструмента, монитора SQL, другого инструмента командной строки или даже другого режима gfix, например. Когда вы получили исключительный доступ, сохраните его исключительным - не запускайте более одного приложения[155].
Завершение закрытия
Используйте gfix -o[nline] для отмены закрытия и перевода базы данных в оперативное состояние для доступа множества пользователей. Вы также можете применять это для отмены закрытия по расписанию.
Останов и запуск сервера
Имейте в виду, что останов или запуск сервера не оказывает никакого воздействия на состояние закрытия любой базы данных. Если база данных закрыта, когда сервер остановлен, она будет оставаться в закрытом состоянии и при последующем запуске сервера. Останов сервера не переведет никакую базу данных в закрытое состояние.
! ! !
ПРИМЕЧАНИЕ. Если вы скопировали файл базы данных, которая находится в закрытом состоянии, а затем пытаетесь соединиться с копией, то копия будет в закрытом состоянии.
. ! .