Последние комментарии

4. Описание выполнения задания

Внесение изменений в работу репликатора.

Приведем краткое описание алгоритма создания тиражирования без фрагментации на примере таблицы “личность”.

1. Сначала нужно включить таблицу в процесс перехвата операций модификации

(insert, update, delete). Включение обеспечивается триггерной функцией transact_out().

При выполнении над таблицей операций внесения необходимо в нее включить

два системных поля: node и id.

Поле node должно содержать номер узла (или номер БД, если на одном узле

располагается несколько БД), уникальный среди других номеров узлов

распределенной БД.

Поле id должно содержать номер записи, который будет уникальный в рамках

одной БД.

Для включения этих полей и подключения триггера с именем tr_<иям таблицы>

необходимо выполнить утилиту

replic_make_struct <имя таблицы> <номер узла>

2. Описать область тиражирования для таблицы через добавление записи

в таблицу replic_pattern

Например:

insert into replic_pattern

values(

1, -- уникальный номер области тиражирования

'select личность.*

from личность', -- SQL-запрос описания диапазона тиражируемых данных

'личность', -- имя таблицы-приемника на узле-приемнике обновлений

'ok', -- имя БД-приемника

'dekanat.lins.ospu.odessa.ua' -- имя узла-приемника

);

3. Описать пути прохождения операций модификации по узлам. Для этого

выполнить редактирование таблицы replic_topology с полями:

t_dbms_d - имя БД-приемника

t_site_d - имя узла-приемника

t_dbms_p - имя БД-источника

t_site_p - имя узла-источника

t_dbms_r - имя БД-посредника

t_site_r - имя узла-посредника

Если посредника нет, то его имя совпадает с именем приеника.

4. Составить расписание передачи операций модификации. Для этого выполнить

редактирование таблицы replic_scheduler с полями:

relname - имя таблицы-источника, если необходимо передавать все операции

на какой-то узел, то вместо имени таблицы можно указывать символ '*';

dbname - имя БД-приемника;

hostname - имя узла-приемника;

send_type - форма передачи ( в настоящий момент поддеживается тип = 'oper';

period - период перидачи в форме ЧЧ:ММ:СС - часы,минуты,секунды.

Пример содержимого таблицы

select * from replic_scheduler ;

relname |   dbname   |         hostname         | send_type |  period

--------+------------+--------------------------+-----------+----------

*       | ok         | subd.lins.ospu.odessa.ua | oper      | 00:10:00

*       | kafedra_as | subd.lins.ospu.odessa.ua | oper      | 00:10:00

*       | kafedra_am | subd.lins.ospu.odessa.ua | oper      | 00:10:00

*       | kafedra_at | subd.lins.ospu.odessa.ua | oper      | 00:10:00

Pages: 1 2 3

Оставить комментарий