- •Распределение и тиражирование данных
- •Архитектура распределенной базы данных
- •Взаимодействие и автономность
- •Расширение модели клиент/сервер
- •Сети и системы распределенных баз данных
- •Сервисы базы данных и именование в распределенной базе данных
- •Связи баз данных
- •Связи баз данных фиксированного пользователя, соединенного пользователя и текущего пользователя
- •Общие, частные и глобальные связи баз данных
- •Разделяемые связи баз данных
- •Неоднородные распределенные базы данных
- •Вызовы удаленных процедур (rpc)
- •Удаленные транзакции
- •Распределенные транзакции
- •Алгоритм двухфазного завершения Oracle
- •Прозрачность распределенной базы данных
- •Безопасность распределенной базы данных
- •Глобальные пользователи и роли
- •Введение в тиражирование данных
- •Польза тиражирования данных
- •Типы тиражирования данных
- •Базовое тиражирование и моментальные снимки "только для чтения"
- •Сложные моментальные снимки
- •Хранение информации моментальных снимков
- •Регенерация моментальных снимков
- •Виды регенерации моментальных снимков
- •Журналы моментальных снимков
- •Группы регенерации моментальных снимков
- •Автоматическая регенерация моментальных снимков
- •Автоматическая регенерация моментальных снимков и очереди заданий
- •Ручная регенерация моментальных снимков
- •Среды усовершенствованного тиражирования
- •Многоабонентское тиражирование
- •Узлы моментальных снимков и обновляемые моментальные снимки
- •Сравнение вариантов усовершенствованного тиражирования
- •Архитектура системы усовершенствованного тиражирования Объекты тиражирования и группы тиражирования
- •Основные узлы и узлы моментальных снимков
- •Каталоги тиражирования
- •Интерфейс прикладных программ управления тиражированием
- •Программные алгоритмы усовершенствованного тиражирования Oracle
- •Тиражирование на уровне строк
- •Асинхронное распространение данных
- •Принудительная рассылка отложенных транзакций в очереди
- •Уничтожение очереди отложенных транзакций
- •Последовательное и параллельное распространение
- •Уникальные алгоритмы распространения моментальных снимков
- •Конфликты тиражирования в системах усовершенствованного тиражирования
- •Типы конфликтов тиражирования
- •Предотвращение конфликтов
- •Распознавание и устранение конфликтов
- •Группы столбцов и методы устранения конфликтов
- •Другие варианты усовершенствованного тиражирования
- •Процедурное тиражирование
- •Распознавание конфликтов и процедурное тиражирование
- •Синхронное распространение данных
- •Конфликты тиражирования и синхронное тиражирование данных
Связи баз данных фиксированного пользователя, соединенного пользователя и текущего пользователя
При создании связи баз данных можно указывать информацию о соединении, используемую сервером локальной базы данных для установления сеанса связи с удаленной базой данных. Тип выбранной связи влияет на обеспечение безопасности информации. Сначала посмотрим, что такое связь баз данных фиксированного пользователя (fixed user database link).Это связь, в описание которой включены имя и пароль конкретного пользователя. Например, с помощью следующего оператораCREATEDATABASELINKсоздается связь баз данных фиксированного пользователя с удаленной базой данныхEAST.COMPWORLD:
CREATE DATABASE LINK east.compworld
CONNECT sales IDENTIFIED BY person;
Для установления сеанса с удаленной базой данных локальный сервер указывает сведения о существующем пользователе. При установлении сеанса связь фиксированного пользователя передает удаленному серверу информацию о соединении открытым текстом, поэтому при использовании связи такого вида рекомендуется шифровать серверные пакеты регистрации.
Напротив, в описание связей баз данных соединенного пользователя (connected user database links)и связей баз данных текущего пользователя(current user database links)не включается имя и пароль пользователя. Вместо этого для установления сеанса и обращения к удаленному серверу сервер локальной базы данных использует сведения о соединенном пользователе или о текущем пользователе. Для того чтобы отличать связи соединенного и текущего пользователей, сначала нужно понять различие между терминами “соединенный пользователь” и “текущий пользователь”.
Соединенный пользователь (connected user) —это пользователь, который соединен с локальной базой данных и выполняет приложение. Например, если я запускаю приложение в своей локальной базе данных, то соединяюсь с ней какSBOBROWS. В этом контексте соединенный пользователь -SBOBROWS.
Текущий пользователь (current user) —это пользовательский контекст, в котором выполняется некоторая операция. Например, если я соединяюсь с базой данных какSBOBROWSи запускаю приложение, которое вызывает методTOTAL_ORDERобъектного типаSALES.ORDER_TYPE, то текущим пользователем, вызывающим метод, являетсяSALES, а неSBOBROWS.
Связи соединенного пользователя можно применять в распределенной базе данных любой конфигурации. Такие связи полезны при составлении отчетности по операциям, выполняемым с удаленным сервером, так как позволят отследить работу удаленных пользователей и выполняемые ими операции в системе распределенной базы данных.
Связи текущего пользователя позволяют в точности следовать контекстам безопасности при выполнении операций локально или на удаленном сервере. Однако при применении глобальной аутентификации пользователей базы данных можно устанавливать только связи текущего пользователя. Об аутентификации глобальных пользователей и ролей в системе распределенной базы данных Oracleбудет рассказано ниже в разделе “Глобальные пользователи и роли”.
Общие, частные и глобальные связи баз данных
В Oracleможно создавать связи баз данных — общие, частные и глобальные - в пределах трех различных доменов системы распределенной базы данных.
Частная связь баз данных (private database link) —это связь, которая создается в конкретной схеме базы данных. Применять частную связь баз данных для доступа к информации и объектам удаленной базы данных может только владелец частной связи и подпрограммыPL/SQLсхемы (модули, процедуры, функции, триггеры и методы объектных типов). Таким образом, частные связи баз данных безопаснее, чем общие и глобальные связи.
Общая связь баз данных (public database link) —это связь, создаваемая в доменеPUBLICбазы данных. Применять общую связь баз данных для доступа к информации и объектам удаленной базы данных могут все пользователи, модули, методы базы данных и т.д. Применение общих связей упрощает процесс управления связями базы данных, когда доступ к удаленной базе данныхOracleнужен всем пользователям локальной базы данных.
Глобальная связь баз данных (global database link) —это связь, управляемая сервером именOracle. При создании этого сервера для сетиNet8 автоматически строятся глобальные связи для каждой базы данныхOracle, имеющейся в сети, и сервер именOracleуправляет этими связями. Применять глобальную связь баз данных для доступа к информации и объектам удаленной базы данных могут все пользователи и программы в любой базе данных. Когда в большой распределенной системе для работы с глобальными связями всех баз данных используется сервер именOracle, управление такими связями осуществляется централизовано и достаточно просто.