Шрифт:
Интервал:
Закладка:
После этого снова запустите мониторинг. Если описанная процедура не привела к улучшению дел, повторите упражнение.
Проверка размера кэша
Для проверки величины используемого кэша базы данных выполните следующие команды в isql:
ISQL> CONNECT имя-базы-данных;
ISQL> SET STATS ON;
ISQL> COMMIT;
Current memory = 415768
Delta memory = 2048
Max memory = 419840
Elapsed time = 0.03 sec
Buffers = 2048
Reads = 0
Writes 2
Fetches = 2
ISQL> QUIT;
После SET STATS ON пустая команда COMMIT указывает утилите isql на необходимость отображения информации об использовании памяти и буфера. Прочтите значение Buffers для определения текущего размера кэша в страницах.
Базы данных только для чтения
Базы данных по умолчанию создаются в режиме чтения/записи. Базы данных для чтения/записи не могут находиться на файловых системах только для чтения, даже если они используют только операторы SELECT, потому что Firebird записывает информацию о состоянии транзакций в структуру данных в файл базы данных. -
База данных Firebird может поставляться как файл только для чтения, при размещении каталогов, файлов и других, не относящихся к базе данных объектов, на ком- пакт-диски или другие файловые системы только для чтения. Конечно, к базам данных только для чтения могут также обращаться системы чтения/записи.
! ! !
ПРИМЕЧАНИЕ. База данных только для чтения - это не то же самое, что файл базы данных, у которого установлен атрибут только для чтения. Копирование файла базы данных для чтения/записи на компакт-диск не сделают ее базой данных только для чтения.
. ! .
Может потребоваться разработка приложения, которое не использует запросы, включающие запись в базу данных, или приложения, вызывающего исключение при попытках записи в базу данных. Следующие действия вызовут ошибку "Attempt to write to a read-only database" (Попытка записи в базу данных только для чтения):
* операции UPDATE, INSERT или DELETE;
* изменения метаданных;
* операции, которые пытаются увеличить генераторы.
Внешние файлы
Любые файлы, связанные с базой данных путем объявления
CREATE TABLE имя-таблицы EXTERNAL FILE 'имя-файла'
будут так же открываться, как файлы только для чтения, даже если для файла не установлен атрибут только для чтения.
Преобразование базы данных в режим только для чтения
Требуется исключительный доступ для переключения базы данных между режимами чтения/записи и только для чтения- см. разд. "Исключительный доступ" главы 39. Переключение режима может быть выполнено владельцем базы данных или пользователем SYSDBA.
Могут быть использованы утилиты gfix или gbak[37]:
* Используя gbak, выполните резервное копирование базы данных и восстановите ее в режиме только для чтения посредством опции -c[reate], например:
gbak -create -mode read_only dbl.fbk dbl.fdb
* Используя gflx, выдайте команду-m[ode] read-only, например: gfix -mode read_only dbl. fdb
! ! !
СОВЕТ. Восстанавливайте базы данных только для чтения с полностраничным заполнением - используйте переключатель -use для указания "использовать полное пространство". В базе данных для чтения/записи страницы по умолчанию заполняются примерно на 80 процентов, поскольку это может помочь в оптимизации повторного использования страниц. Резервирование пространства не имеет смысла для базы данных только для чтения, а полностью заполненные страницы являются более компактными и более быстрыми.
. ! .
! ! !
СОВЕТ. Хотя сервер Firebird может управлять напрямую базами данных InterBase 5.x, эти базы данных не могут быть переведены в режим только для чтения. Вы можете обновить базу данных InterBase 5 до базы данных только для чтения Firebird, сделав транспортабельную резервную копию в gbak InterBase 5 и восстановив с использованием gbak Firebird, с переключателями -c[reate] и -mode read_only.
. ! .
Теневые копии базы данных
Firebird имеет возможность немедленно восстанавливать базу данных в случае сбоя диска, сбоя сети, случайного удаления базы данных файловой системой[38]. Теневое копирование (shadowing, аналог зеркалирования) является внутренним процессом, который поддерживает физическую копию базы данных в реальном времени. Всякий раз, когда изменения записываются в базу данных, теневая копия одновременно получает те же самые изменения.
Активная теневая копия всегда отображает текущее состояние базы данных. При этом, хотя теневое копирование является очевидным преимуществом в качестве препятствия против аппаратных сбоев, оно не является системой онлайновой репликации.
Преимущества и ограничения теневого копирования
Основным преимуществом теневого копирования является то, что оно дает быстрый способ восстановления базы данных в случаях сбоев в аппаратном обеспечении. Активация теневой копии делает ее доступной немедленно. Теневое копирование выполняется незаметно для пользователей как дополнительный цикл в процессе записи данных с минимальным вниманием со стороны администратора базы данных.
Создание теневой копии не требует исключительного доступа к базе данных. Теневая копия может находиться в одном или более файлах в контролируемой сервером системе хранения.
При этом теневое копирование не является защитой от разрушения данных. Данные, записанные в теневую копию, являются точной копией того, что записывается в базу данных со всеми изъянами и недостатками. Если пользователь ошибается, появляется ошибка диска или ошибки программного обеспечения приводят к разрушению данных, то те же самые неверные данные будут помещаться в теневую копию.
Теневое копирование является методом восстановления "все или ничего". Оно не обеспечивает восстановления отдельных фрагментов или возврата к конкретной временной точке. Оно может существовать только в той же файловой системе, что и сервер; теневая копия должна находиться на фиксированных дисках, расположенных на сервере. Она не может записываться на совместно используемые, не относящиеся к локальной файловой системе или удаленные устройства.
! ! !
ПРИМЕЧАНИЕ. На системах, поддерживающих NFS (Networking File System), возможна поддержка теневых копий на файловой системе NFS. Причем это не рекомендуется, поскольку теневая копия станет изолированной - а следовательно, бесполезной - при потере соединения.
. ! .
Важные предостереженияТеневое копирование не является заменой резервного копирования. Не успокаивайте себя верой в то, что теневое копирование является способом замены регулярного резервного копирования и периодического восстановления базы данных.
* Файл теневой копии не менее уязвим от "бросков и стрел жестокой фортуны", чем любые другие файлы вашей файловой системы.
* Одна потеря или повреждение файла теневой копии делает все теневое копирование бесполезным.
* Смерть диска или ненадежный модуль памяти способны принести огромный вред до того, как они полностью разрушат вашу базу данных. Каждый ошибочный фрагмент будет точно записан в теневую копию.
В дополнение нужно сказать, что теневая копия не может принимать соединения. Никогда не пытайтесь соединяться с теневой копией или влиять на нее при использовании инструментов системы или базы данных. Сервер "знает", что он должен сделать с теневой копией для ее преобразования в активную базу данных.
! ! !
СОВЕТ. Не будет серьезных проблем, если теневая копия случайно повреждена или удалена. Пока вы знаете, что случайности могут произойти, теневая копия для здоровья базы данных может быть восстановлена в любое время просто удалением копии и новым ее созданием.
. ! .
Реализация теневого копирования
В Firebird существует синтаксис DDL для создания и удаления теневых копий с различными предложениями для задания размещения, режима работы и размера файла. Изменение теневой копии требует удаления существующей копии и создания новой с новыми спецификациями.
Теневая копия, которая является одним дисковым файлом, называется файлом теневой копии. Теневая копия, состоящая из нескольких файлов, - которые могут располагаться более чем на одном диске, - называется набором теневых копий. Наборы теневых копий группируются в множество наборов теневых копий[39].
Размещение и распределение файлов теневой копииТеневая копия должна быть создана на жестком диске, отличном от диска размещения файлов активной базы данных, поскольку одной из главных целей теневого копирования является восстановление работоспособности при сбоях диска.
Дисковое устройство должно быть физически подключено к машине, на которой выполняется сервер Firebird. Файлы в наборе теневых копий могут находиться на разных дисках для улучшения ввода/вывода и выделения дискового пространства. Как и спецификации файлов базы данных, спецификации для теневых копий являются зависимыми от платформы.
- Delphi. Учимся на примерах - Сергей Парижский - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Психбольница в руках пациентов - Алан Купер - Программирование