- •Распределение и тиражирование данных
- •Архитектура распределенной базы данных
- •Взаимодействие и автономность
- •Расширение модели клиент/сервер
- •Сети и системы распределенных баз данных
- •Сервисы базы данных и именование в распределенной базе данных
- •Связи баз данных
- •Связи баз данных фиксированного пользователя, соединенного пользователя и текущего пользователя
- •Общие, частные и глобальные связи баз данных
- •Разделяемые связи баз данных
- •Неоднородные распределенные базы данных
- •Вызовы удаленных процедур (rpc)
- •Удаленные транзакции
- •Распределенные транзакции
- •Алгоритм двухфазного завершения Oracle
- •Прозрачность распределенной базы данных
- •Безопасность распределенной базы данных
- •Глобальные пользователи и роли
- •Введение в тиражирование данных
- •Польза тиражирования данных
- •Типы тиражирования данных
- •Базовое тиражирование и моментальные снимки "только для чтения"
- •Сложные моментальные снимки
- •Хранение информации моментальных снимков
- •Регенерация моментальных снимков
- •Виды регенерации моментальных снимков
- •Журналы моментальных снимков
- •Группы регенерации моментальных снимков
- •Автоматическая регенерация моментальных снимков
- •Автоматическая регенерация моментальных снимков и очереди заданий
- •Ручная регенерация моментальных снимков
- •Среды усовершенствованного тиражирования
- •Многоабонентское тиражирование
- •Узлы моментальных снимков и обновляемые моментальные снимки
- •Сравнение вариантов усовершенствованного тиражирования
- •Архитектура системы усовершенствованного тиражирования Объекты тиражирования и группы тиражирования
- •Основные узлы и узлы моментальных снимков
- •Каталоги тиражирования
- •Интерфейс прикладных программ управления тиражированием
- •Программные алгоритмы усовершенствованного тиражирования Oracle
- •Тиражирование на уровне строк
- •Асинхронное распространение данных
- •Принудительная рассылка отложенных транзакций в очереди
- •Уничтожение очереди отложенных транзакций
- •Последовательное и параллельное распространение
- •Уникальные алгоритмы распространения моментальных снимков
- •Конфликты тиражирования в системах усовершенствованного тиражирования
- •Типы конфликтов тиражирования
- •Предотвращение конфликтов
- •Распознавание и устранение конфликтов
- •Группы столбцов и методы устранения конфликтов
- •Другие варианты усовершенствованного тиражирования
- •Процедурное тиражирование
- •Распознавание конфликтов и процедурное тиражирование
- •Синхронное распространение данных
- •Конфликты тиражирования и синхронное тиражирование данных
Сети и системы распределенных баз данных
Большинство систем распределенных баз данных состоит из нескольких баз данных, управляемых разными серверами, расположенными в различных местах. При этом для установления линий связи между серверами требуется сеть. Кроме того, все серверы (и клиенты) в системе распределенной базы данных Oracleдолжны использоватьNet8 — сетевое программное средствоOracleдля взаимодействия друг с другом по сети.
Сервисы базы данных и именование в распределенной базе данных
Все сервисы (очереди печати, серверы электронной почты и т.д.), доступные в сети, должны иметь уникальные имена, чтобы пользователи и приложения знали, как к ним обращаться. В распределенной системе сервер базы данных, или экземпляр является просто сервисом базы данных (database service), доступным в сети. Сервис базы данных в системе распределенной базы данных должен иметь уникальное имя, чтобы приложения и другие серверы баз данных могли обращаться к информации, за которую отвечает этот сервер. В распределенной средеOracleуникальное имя каждого сервиса базы данных является глобальным именем его базы данных(global database name).Глобальное имя базы данных состоит из двух частей:
Основное имя базы данных, назначаемое ей при создании. Имя базы данных не должно содержать больше восьми символов.
Сетевой домен базы данных. Сетевой домен базы данных показывает логическое местонахождение базы данных в сети.
На рис.2 представлена сеть баз данных гипотетической компании COMPWORLD. СетьCOMPWORLDсостоит из трех баз данных:EAST,CENTRALиWEST. Им соответствуют глобальные имена (имена сервисов)EAST.COMPWORLD,CENTRAL.COMPWORLDиWEST.COMPWORLD.
Для того чтобы ссылаться на конкретные объекты схемы базы данных, не являющейся локальной, нужно дополнить имя объекта глобальным именем базы данных. Например, на рис.2 показано, что в каждой из баз данных EAST,CENTRALиWESTсодержится таблицаPARTS. Если запустить приложение, скажемSQL*Plus, и соединиться с базой данныхCENTRAL, то можно обратиться с запросом к таблицеPARTSбазы данныхEAST, идентифицировав этот объект с помощью его составного имени в распределенной базе данных:
SELECT * FROM sales.parts@east.compworld;
Выполняя этот запрос, сервер локальной базы данных CENTRALнеявно использует связь баз данных, соединяющую базы данныхCENTRALиEAST. Связи баз данных представлены ниже.
Связи баз данных
Для того чтобы предоставить доступ к удаленным базам данных в распределенной системе, необходимо установить в локальной базе данных связи баз данных. Связь баз данных (database link)обозначает однонаправленную линию связи между двумя базами данныхOracle. Связь двух баз данныхOracleпоказана на рис. 3.
В обычной конфигурации имя связи баз данных должно соответствовать глобальному имени базы данных, на которую указывает связь. Поэтому с помощью связей баз данных можно создать эффективную схему именования глобальных объектов в системе распределенной базы данных. Например, с помощью следующего SQL-оператора в локальной базе данных CENTRALможно создать связь, описывающую путь к удаленной базе данныхEAST.COMPWORLD:
CREATE DATABASE LINK east.compworld ...;
После создания связи баз данных приложения, соединенные с локальной базой данных CENTRAL, смогут обращаться к информации удаленной базы данныхEAST.COMPWORLD. Например, с помощью следующего оператораUPDATEобновляется строка в таблицеPARTSудаленной базы данныхEAST:
UPDATE sales.parts@east.compworld
SET unit_price = 100.50
WHERE id = 1;