Чтение онлайн

на главную - закладки

Жанры

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

Интервалом чистки (sweep interval) является установленное для базы данных целое число, которое определяет предел для некоторого набора условий, что приведет к выполнению автоматической чистки.

Сервер Firebird ведет список транзакций. Любая транзакция, находящаяся в любом состоянии, кроме подтвержденного, называется заинтересованной транзакцией. Самая старая из этих "заинтересованных" транзакций (старейшая заинтересованная транзакция, Oldest Interesting Transaction, OIT) отмечает начальную точку для условия, называемого "зазором".

Противоположным концом этого зазора является старейшая транзакция, которая все еще активна: самая старая активная

транзакция (Oldest Active Transaction, OAT). Зазор, следовательно, является разностью между OIT и OAT [153] . Когда величина зазора достигает числа, указанного как интервал чистки, то автоматически запускается чистка во время запуска новой транзакции.

Базы данных создаются с интервалом чистки 20 000.

Существует маленькое, но важное различие: автоматическая чистка не появляется каждые 20 000 транзакций. Она появляется, когда разница между OIT и OAT - зазор - достигает заданного предела. Если приложения базы данных аккуратно подтверждают каждую транзакцию, OAT будет увеличиваться, пока не достигнет предела интервала чистки, и тогда будет запущена чистка.

153

Это справедливо для InterBase 7.1/7.5 и Firebird 2.0. Для всех предыдущих версий InterBase и Firebird "зазор", выше которого стартует автоматический sweep, определяется как разница между OIT и OST (Oldest snapshot).
– Прим. науч. ред.

Изменение интервала чистки

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

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

Переключателем режима для установки интервала чистки является -h[ousekeeping] n, где n представляет новое значение счетчика (интервала).

gfix -h 10000 /data/accounts.fdb -user SYSDBA-pas masterkey

устанавливает новое значение интервала чистки для accounts.fdb в 10 000.

Отмена автоматической чистки

Вы можете решить отменить автоматическую чистку, если вам нужно исключить случайные, непредсказуемые задержки, возникающие из-за автоматической чистки. Такая отмена не рекомендуется, если только управление старыми версиями записей эффективно не осуществляется альтернативными средствами, такими как отслеживание статистики и регулярное выполнение ручной чистки.

Автоматическая чистка может быть отменена установкой интервала чистки в 0:

./gfix -h 0 /data/accounts.fdb -user SYSDBA-pas masterkey или (Windows):

gfix -h 0 d:\data\accounts.fdb -user SYSDBA-pas masterkey

Выполнение ручной чистки

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

низкой активности сервера базы данных, что исключает конкуренцию с клиентами за ресурсы.

Вы можете выполнять вашу собственную чистку, если:

* вы отслеживаете зазор и собираетесь выбрать подходящее время для устранения "застрявших" старых версий;

* вы считаете, что редкие изменения нечасто посещаемых записей создали запасы несобранного мусора;

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

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

или (POSIX):

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

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

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

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

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

Закрытие базы данных

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

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

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

Когда вам понадобится остановить сервер, находящийся в промышленной эксплуатации, возможно вам потребуется применить 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 секунд, то база данных будет переведена в закрытое состояние. Если же еще остаются соединения, то закрытие будет отменено.

Поделиться:
Популярные книги

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник

Двойник Короля

Скабер Артемий
1. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Двойник Короля

Его нежеланная истинная

Кушкина Милена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Его нежеланная истинная

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Измена. Наследник для дракона

Солт Елена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Измена. Наследник для дракона

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9

Мастер темных Арканов

Карелин Сергей Витальевич
1. Мастер темных арканов
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Мастер темных Арканов

Адвокат империи

Карелин Сергей Витальевич
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Адвокат империи

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

Законы Рода. Том 3

Flow Ascold
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 3

Наследник

Шимохин Дмитрий
1. Старицкий
Приключения:
исторические приключения
5.00
рейтинг книги
Наследник