Архитектура баз данных
Оценить
(0 голоса)
Все модификации в базе данных регистрируются в ее журнале (журнализация изменений). Транзакция считается выполненной, если модификации успешно записаны на журнальный диск, после чего возвращается commit (сообщение о завершении транзакции). Таблицы базы данных на диске могут быть обновлены позднее. В случае фатального сбоя системы информация, зарегистрированная в журнале БД, может быть использована для гарантированного применения всех модификаций к данным в таблицах на диске. Пользовательские процессы базы данных непосредственно не пишут в файл журнала. Вместо этого данные, предполагаемые для файла журнала, сохраняются в области памяти, называемой буфером журнала. Регистратор процесса или потока записывает данные в файл журнала при заполнении буфера журнала или…
Оценить
(0 голоса)
Как было замечено ранее, модифицированные страницы остаются в буферном кэше, а не записываются немедленно в таблицы данных на диске. Задача выгрузки (сброса) модифицированных, или "грязных", страниц данных на диск осуществляется очистителями страниц {редакторами ваз данных в терминологии Oracle). Очистители страниц (pagecleaners) периодически "просыпаются” и решают, производить ли опорожнение грязных страниц. Решение о выгрузке страниц на диск обычно основывается на следующих факторах: •             Процент грязных (модифицированных) страниц в буферном кэше. •             Процент свободных (неиспользуемых) страничных буферов, оставшихся в буферном кэше. •             Истекшее время с момента записи на диск самой старой, еще не выгруженной страницы данных. Время от времени большинство реляционных баз…
Оценить
(0 голоса)
После фатального сбоя системы процесс или поток восстановления БД находит в журнале самую последнюю запись контрольной точки, от которой можно производить восстановление, поскольку страницы базы данных на диске были обновлены в завершении этой контрольной точки. Затем процесс восстановления начинает фазу прокрутки вперед: для каждой транзакции в журнале после записи контрольной точки с диска в буферный кэш считываются соответствующие страницы базы данных и производится проверка, были ли они обновлены перед фатальным сбоем. Если нет, то к транзакции повторно прикладываются изменения. В завершение прокрутки вперед база данных будет восстановлена почти до того состояния, в котором она находилась непосредственно перед сбоем. Утрачены будут…
Оценить
(0 голоса)
Если несколько пользователей одновременно желают модифицировать одну и ту же страницу данных, то системе СУБД необходим способ, гарантирующий, что изменения не будут взаимно противоречивы. Системы баз данных имеют сложные подсистемы блокирования для необходимого пользователю уровня захвата ресурса. Перед выполнением изменения по команде пользователя производится захват либо строки базы данных, либо страницы (блока данных), а иногда и всей таблицы. Остальным пользователям, желающим модифицировать ту же страницу, необходимо подождать, пока не произойдет разблокировка. Блокировка снимается после выполнения модификаций. Для различных целей используются разные типы блокировок. Блокировка Share lock - разделяемая, или совместного использования - помечает строку или таблицу, которая считывается одним приложением,…
Оценить
(0 голоса)
Системный монитор гарантирует, что экземпляр базы данных будет закрыт контролируемым образом в случае любого ее отказа, такого, например, как аварийное завершение системного процесса. Аналогично, монитор процессов гарантирует, что в случае отказа пользовательский процесс управляется должным образом, освобождая любые блокировки или другие ресурсы, удерживаемые пользователем. Командный интерфейс Современные базы данных позволяют использовать команды либо в GUI (graphical user interface - графическом интерфейсе пользователя), либо посредством CLI (command-line interface - интерфейса командной строки). GUI более всего подходит для интерактивных сеансов; версия CLI более полезна для административных задач, которые могут быть закодированы в виде сценария, запускаемого как пакетное задание. Оба типа интерфейса прежде…
Оценить
(0 голоса)
Возможны случаи, когда базы данных становятся самоконтролируемыми и даже сами себя настраивают. В некоторых базах данных уже предприняты шаги в этом направлении, однако полностью автоматизированная настройка все еще далека от реальности. Вместо этого большинство баз данных связывает в узел изощренные инструменты мониторинга, часто с простыми в использовании GUIs, которые обеспечивают наблюдение за "здоровьем и поведением" базы данных. Попадания в буферный кэш БД, частота и продолжительность событий ожидания в системе, а также распределение операций чтения и записи среди различных файлов базы данных - это все примеры разновидностей мониторинга, обычно реализуемых либо интерактивно, либо автоматически в сценариях. Модели процессов Несмотря на то,…
Оценить
(1 голос)
Многопотоковые архитектуры отличаются от двухпроцессных (2п) тем, что на каждое подключение пользователя приходится не более двух процессов. Процесс агента заменяется потоком агента в многопотоковом сервере агента. Каждый многопотоковый сервер поддерживает множество агентских подключений, что приводит к значительному сокращению количества процессов на сервере и потребности в памяти на одного пользователя. Каждая связь пользователя с базой данных поддерживается двумя компонентами: 1.            Прикладным процессом, который запускает логику приложения. 2.            Агентским потоком, запускающимся в многопотоковом процессе сервера. Процесс сервера связывается с памятью совместного доступа БД и обращается к месту хранения данных со стороны приложения пользователя. Многопотоковый процесс сервера запускается в системе сервера БД. Как…
Оценить
(0 голоса)
На имеющихся в наличии многопроцессорных серверах поставщики баз данных обращают свое внимание на использование параллельной обработки для ускорения задач. Разрешая разделение нескольких ЦП в ключевых операциях баз данных, продавцы смогли сократить время выполнения операций, а иногда даже весьма существенно. Сегодня в параллельном режиме могут выполняться многие задачи, к которым относятся: •             Загрузка БД и создание индекса. •             Массовая вставка и обновление данных. •             Выполнение большого запроса. •             Резервирование и восстановление БД. Распределенные базы данных Не всегда на практике все данные сохраняются в одном месте. Учетная информация могла быть сохранена в головном офисе, данные производства и продукции - на заводе-изготовителе. инвентарь…
Оценить
(0 голоса)
Базы данных могут быть настолько полезными, что люди иногда решают иметь их две! Вторая копия базы данных часто используется для следующих целей: •             В качестве резервной копии, вызываемой при чрезвычайном восстановлении. Иногда вторая копия хранится на расстоянии для защиты от таких внезапных бедствий как землетрясение, наводнение, ураган. •             Для обеспечения второй копии данных, которая будет использована для запросов, поступающих от опытных пользователей с повышенными требованиями к производительности. Результат деятельности запросов впоследствии может быть выгружен из реальной базы данных. Репликационная технология обычно включает пересылку на дистанционную систему либо транзакций обновления, либо записей журналов. Журнальные записи могут пересылаться либо индивидуально, либо как…
Оценить
(0 голоса)
Transaction monitors - TP monitors - мониторы транзакций, или TP-мониторы, используются в средах OLTP как эффективный механизм управления транзакциями и их маршрутизацией внутри сети. (Смотрите главу 6 для ознакомления с рабочими нагрузками OLTP.) TP-мониторы часто используются в конъюнкциях (операциях логичес- кого умножения) баз данных, особенно при необходимости поддержки загрузок сложных транзакций. Мониторы транзакций могут значительно уменьшить потребности в ресурсах процессора, необходимых для обработки транзакций, хотя они обычно требуют от разработчика приложения, чтобы тот использовал APIs, связанные с монитором транзакций. Примерами коммерческих мониторов транзакций являются Tuxedo, поддерживаемый BEA Systems, Transarc. Encina, Topend, а также CICS, основанный на мэйнфрейм фирмы IBM. Транзакции…