Проверка размера кэша
Для проверки величины используемого кэша базы данных выполните следующие команды в 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, аналог зеркалирования) является внутренним процессом, который поддерживает физическую копию базы данных в реальном времени. Всякий раз, когда изменения записываются в базу данных, теневая копия одновременно получает те же самые изменения.
Активная теневая копия всегда отображает текущее состояние базы данных. При этом, хотя теневое копирование является очевидным преимуществом в качестве препятствия против аппаратных сбоев, оно не является системой онлайновой репликации.
Преимущества и ограничения теневого копирования
Основным преимуществом теневого копирования является то, что оно дает быстрый способ восстановления базы данных в случаях сбоев в аппаратном обеспечении. Активация теневой копии делает ее доступной немедленно. Теневое копирование выполняется незаметно для пользователей как дополнительный цикл в процессе записи данных с минимальным вниманием со стороны администратора базы данных.