Читаем Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ полностью

* выполнялось большое количество удалений, и вы хотите быстро убрать мусор. Для немедленного запуска чистки:

gfix -sweep С:\data\accounts.fdb -user SYSDBA-pas masterkey

или (POSIX):

./gfix -sweep /data/accounts.fdb -user SYSDBA-pas masterkey

Исключительный доступ для ручной чистки

Чистка базы данных не требует, чтобы база данных была обязательно закрыта - она может выполняться в любое время - однако она может ухудшить производительность системы и не должна проводиться во время большой загрузки сервера.

Существуют преимущества выполнения чистки с исключительным доступом и когда вся работа клиентов подтверждена. При этих условиях не только больше доступной памяти для операции чистки, но чистка также способна выполнить полное очищение записей данных и состояния транзакций. Зависшие при явных или неявных обрывах соединений транзакции под конец будут переведены в устаревшие, а используемые ими ресурсы будут освобождены.

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

<p>Закрытие базы данных</p>

Закрытие базы данных (shutdown) не является тем же самым, что и завершение работы сервера. Сервер продолжает работать и когда база данных закрыта.

База данных неявно находится "в закрытом состоянии", когда не существует активных соединений. Явное закрытие может быть выполнено при использовании gfix с переключателем -sh[ut], чтобы пользователь SYSDBA или владелец базы данных получили к ней исключительный доступ. Когда такое явное закрытие базы данных было выполнено, база данных остается закрытой, пока явно не будет выполнено gfix -о [niine]. Эти две операции называются "закрытие базы данных" и "перевод базы данных в оперативное состояние".

<p>Закрытие базы данных перед остановом сервера</p>

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

<p>Команда gfix -shut</p>

Синтаксис команды 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].

Перейти на страницу:

Похожие книги

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Майерс , Скотт Мейерс

Программирование, программы, базы данных / Программирование / Книги по IT