Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / Lij / Распределение и тиражирование данных.doc
Скачиваний:
56
Добавлен:
16.04.2013
Размер:
165.89 Кб
Скачать

Сети и системы распределенных баз данных

Большинство систем распределенных баз данных состоит из нескольких баз данных, управляемых разными серверами, расположенными в различных местах. При этом для установления линий связи между серверами требуется сеть. Кроме того, все серверы (и клиенты) в системе распределенной базы данных 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;