- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - Хелен Борри
Шрифт:
Интервал:
Закладка:
Windows:
bin> gfix -w sync customer.fdb -pas heureuse -user SYSDBA
Пользователь и пароль при локальном соединенииПеред стартом сервера для расширенной локальной работы с копией проблемной базы данных или для восстановления транзакции вы можете добавить две системные переменные ISC_USER и ISC PASSWORD для исключения необходимости набора имени и пароля пользователя SYSDBA или владельца базы данных в каждой команде:
shell prompt> SET ISC_USER=SYSDBA
shell prompt> SET ISC_PASSWORD=heureuse
Из соображений безопасности вы должны удалить эти переменные окружения, как только завершите вашу работу. Не рекомендуется конфигурировать эти переменные за пределами видимости вашего текущего окна командной строки или делать их постоянными в системе.
Чистка базы данных
Многоверсионная архитектура Firebird порождает ситуацию, когда множество версий строк данных хранится непосредственно на страницах базы данных. Firebird сохраняет старые версии при изменении или удалении строки. При нормальном ходе событий устаревшие версии записей, созданные изменениями данных, вычищаются фоно- вой сборкой мусора. Однако при некоторых условиях эти старые версии могут оставаться "застрявшими" и накапливаться, приводя к росту файла (файлов) базы данных пропорционально размеру данных, к которым происходит обращение. Иногда застрявшие транзакции могут сильно влиять на производительность.
Чистка базы данных является способом систематического удаления устаревших строк из базы данных и предотвращает ее слишком интенсивный рост. По умолчанию базы данных Firebird всегда установлены в режим автоматически выполняемой чистки при возникновении некоторых условий. Однако, поскольку процесс чистки может влиять на производительность, чистка может быть настроена для оптимизации ее преимуществ при минимизации воздействия на пользователей.
Неплохая стратегия - отключение автоматической чистки и управление чисткой вручную. Вы можете отслеживать статистику базы данных и выполнять ручную чистку или "по потребности", или по составленному графику. Например, можно включить команду очистки в скрипт стоп или в выполняемый по расписанию пакетный файл.
Информацию о том, как статистический отчет по базе данных может помочь в анализе требований к чистке вашей базы данных, см. в разд. "Получение статистики по индексам" главы 18.
Сборка мусора
Firebird выполняет сборку мусора в фоновом режиме для ограничения роста базы данных из-за устаревших версий записей. Сборка мусора освобождает память, отведенную устаревшим версиям строк, насколько это возможно, после освобождения строк транзакциями, их использующими. Транзакции начинают сборку мусора, когда они встречают старые версии строк, отмененные другими транзакциями. Удаленные строки и версии, оставленные после отката транзакции, избегают такой сборки мусора. Строки, к которым редко происходит обращение, также накапливают старые версии.
Еще сборка мусора происходит при резервном копировании базы данных с использованием утилиты gbak, поскольку задача gbak имеет дело с каждой строкой в каждой таблице. Однако gbak не выполняет полной чистки. Как и обычная сборка мусора, она оставляет версии удаленных и отмененных по rollback записей. Чистка является единственным способом избавиться от этого, она выполняется быстрее, чем восстановление базы данных из резервной копии.
Интервал чистки
Интервалом чистки (sweep interval) является установленное для базы данных целое число, которое определяет предел для некоторого набора условий, что приведет к выполнению автоматической чистки.
Сервер Firebird ведет список транзакций. Любая транзакция, находящаяся в любом состоянии, кроме подтвержденного, называется заинтересованной транзакцией. Самая старая из этих "заинтересованных" транзакций (старейшая заинтересованная транзакция, Oldest Interesting Transaction, OIT) отмечает начальную точку для условия, называемого "зазором".
Противоположным концом этого зазора является старейшая транзакция, которая все еще активна: самая старая активная транзакция (Oldest Active Transaction, OAT). Зазор, следовательно, является разностью между OIT и OAT[153]. Когда величина зазора достигает числа, указанного как интервал чистки, то автоматически запускается чистка во время запуска новой транзакции.
Базы данных создаются с интервалом чистки 20 000.
Существует маленькое, но важное различие: автоматическая чистка не появляется каждые 20 000 транзакций. Она появляется, когда разница между OIT и OAT - зазор - достигает заданного предела. Если приложения базы данных аккуратно подтверждают каждую транзакцию, OAT будет увеличиваться, пока не достигнет предела интервала чистки, и тогда будет запущена чистка.
Изменение интервала чисткиИзменение интервала чистки мало влияет на размер базы данных, если только база данных не накопила очень большого количества отмененных транзакций. Однако если вы замечаете увеличение времени запуска транзакции с момента последней чистки, то уменьшение интервала чистки может помочь сократить накопление объектов, вызванных откатом транзакций.
Если интервал чистки слишком мал, производительность приложения может иметь тенденцию к ухудшению, по причине слишком частого выполнения чистки. В этом случае увеличение интервала чистки может помочь улучшить общую производительность.
Переключателем режима для установки интервала чистки является -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:dataaccounts.fdb -user SYSDBA-pas masterkey
Выполнение ручной чистки
Ручная чистка может быть выполнена в любое время для освобождения пространства, занимаемого старыми версиями, особенно версиями записей, оставшихся от отмены транзакций и после удалений. Общим правилом является выполнение чистки во время низкой активности сервера базы данных, что исключает конкуренцию с клиентами за ресурсы.
Вы можете выполнять вашу собственную чистку, если:
* вы отслеживаете зазор и собираетесь выбрать подходящее время для устранения "застрявших" старых версий;
* вы считаете, что редкие изменения нечасто посещаемых записей создали запасы несобранного мусора;
* выполнялось большое количество удалений, и вы хотите быстро убрать мусор. Для немедленного запуска чистки:
gfix -sweep С:dataaccounts.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

