Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Название:Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2006
- Город:Санкт-Петербург
- ISBN:5-94157-609-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ краткое содержание
Рассмотрены вопросы, необходимые разработчику для создания клиент-серверных приложений с использованием СУБД Firebird, явившейся развитием СУБД Borland Interbase 6. Содержится обзор концепций и моделей архитектуры клиент/сервер, а также практические рекомендации по работе с клиентскими библиотеками Firebird. Детально описаны особенности типов данных SQL, язык манипулирования данными (Data Manipulation Language, DML), а также синтаксис и операторы языка определения данных ( Data Definition Language, DDL). Большое внимание уделено описанию транзакций и приведены советы по их использованию при разработке приложений. Описано программирование на стороне клиента и сервера написание триггеров и хранимых процедур, создание и использование событий базы данных, обработка ошибок в коде на сервере и многое другое. Материал сопровождается многочисленными примерами, советами и практическими рекомендациями.
Для разработчиков баз данных
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
После этого снова запустите мониторинг. Если описанная процедура не привела к улучшению дел, повторите упражнение.
Проверка размера кэша
Для проверки величины используемого кэша базы данных выполните следующие команды в 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] Сервис API предоставляет доступ к обоим методам для перевода базы данных в режим только для чтения. Чтобы получить информацию, изучите доступную документацию по различным группам параметров действий сервиса (isc_action_svc_xxx), которые могут передаваться в функцию isc_service_start О . Множество компонентов доступа к базе данных реализуют эти функции для использования в различных языковых средах.
:
* Используя 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] К сожалению, теневое копирование не обеспечивает восстановление, если база данных была случайно удалена оператором DROP DATABASE. Когда вы удаляете таким образом базу данных, ее теневая копия (shadow) также удаляется.
. Теневое копирование (shadowing, аналог зеркалирования) является внутренним процессом, который поддерживает физическую копию базы данных в реальном времени. Всякий раз, когда изменения записываются в базу данных, теневая копия одновременно получает те же самые изменения.
Активная теневая копия всегда отображает текущее состояние базы данных. При этом, хотя теневое копирование является очевидным преимуществом в качестве препятствия против аппаратных сбоев, оно не является системой онлайновой репликации.
Преимущества и ограничения теневого копирования
Основным преимуществом теневого копирования является то, что оно дает быстрый способ восстановления базы данных в случаях сбоев в аппаратном обеспечении. Активация теневой копии делает ее доступной немедленно. Теневое копирование выполняется незаметно для пользователей как дополнительный цикл в процессе записи данных с минимальным вниманием со стороны администратора базы данных.
Создание теневой копии не требует исключительного доступа к базе данных. Теневая копия может находиться в одном или более файлах в контролируемой сервером системе хранения.
При этом теневое копирование не является защитой от разрушения данных. Данные, записанные в теневую копию, являются точной копией того, что записывается в базу данных со всеми изъянами и недостатками. Если пользователь ошибается, появляется ошибка диска или ошибки программного обеспечения приводят к разрушению данных, то те же самые неверные данные будут помещаться в теневую копию.
Теневое копирование является методом восстановления "все или ничего". Оно не обеспечивает восстановления отдельных фрагментов или возврата к конкретной временной точке. Оно может существовать только в той же файловой системе, что и сервер; теневая копия должна находиться на фиксированных дисках, расположенных на сервере. Она не может записываться на совместно используемые, не относящиеся к локальной файловой системе или удаленные устройства.
! ! !
ПРИМЕЧАНИЕ. На системах, поддерживающих NFS (Networking File System), возможна поддержка теневых копий на файловой системе NFS. Причем это не рекомендуется, поскольку теневая копия станет изолированной - а следовательно, бесполезной - при потере соединения.
Читать дальшеИнтервал:
Закладка: