Базы данных Oracle - статьи

         

Построение в рамках распределенной БД: тиражирование данных


Эта разновидность materialized views в ранних версиях Oracle существовала под названием snapshots. В ряде случаев Oracle продолжает поддерживать старое название snapshot на равных правах с более поздним materialized view.

Возможны два варианта использования materialized views для тиражирования данных: одностроннее тиражирование (хранимый результат доступен для выборки и закрыт для изменений приложением) и двустороннее тиражирование (хранимый результат может изменяться приложением). Для простоты здесь будет рассматриваться первый вариант, одностороннего тиражирования.

Подготовка примера

Для иллюстрации использования materialized view для тиражирования данных необходимо перевести БД на глобальную систему имен и создать связь с удаленной БД.

Назначим для БД REM_BASE домен CLASS. Пусть логическое имя соединения с этой БД - REMOTE_DB.

(1) Проставим в INIT.ORA DB_DOMAIN="class" и перезапустим СУБД для этой базы по этому файлу параметров

(2) Выдадим от имени SYS в REM_BASE:

ALTER DATABASE RENAME GLOBAL_NAME TO rem_base.class;

(3) Выдадим от имени SCOTT в локальной БД:

CREATE DATABASE LINK rem_base.class CONNECT TO scott IDENTIFIED BY tiger USING 'remote_db';

Убедиться, что созданная связь работает, можно выдав:

SELECT * FROM emp@rem_base.class;

Построение примера

Выдадим от имени SCOTT:

CREATE MATERIALIZED VIEW loc_emp AS SELECT * FROM emp@rem_base.class;

Пявившиеся в результате новые объекты схемы SCOTT можно посмотреть так:

SELECT object_name, object_type FROM user_objects;

Просмотр "локальных" данных об "удаленных" сотрудниках:

SELECT * FROM loc_emp;



Содержание раздела