Репликация ИБИС — различия между версиями
(→Настройка) |
(→Настройка) |
||
| Строка 10: | Строка 10: | ||
Так же в данном модуле начата разработка пошагового механизма первоначальной настройки репликации. Он доступен в меню "Настройки". | Так же в данном модуле начата разработка пошагового механизма первоначальной настройки репликации. Он доступен в меню "Настройки". | ||
| − | == Настройка == | + | == Настройка и прицип работы == |
Для использования механизма репликации необходимо: | Для использования механизма репликации необходимо: | ||
* 1. Создать схему "replication" в месте со всеми объектами (таблицами и функциями). | * 1. Создать схему "replication" в месте со всеми объектами (таблицами и функциями). | ||
| Строка 32: | Строка 32: | ||
В данной таблице, поле "tbl_name" должно быть указано имя таблицы вместе с именем схемы, например: "mm.emp". В поле "enable_b" должно быть установлено значение True. Если занчение False, то указанная таблица исключается из репликации. | В данной таблице, поле "tbl_name" должно быть указано имя таблицы вместе с именем схемы, например: "mm.emp". В поле "enable_b" должно быть установлено значение True. Если занчение False, то указанная таблица исключается из репликации. | ||
| − | [[ВАЖНО знать]], что при присвоении полю "enable_b" значения True, для указанной таблицы автоматически создаются два тригера: "replication_triger_row" и "replication_triger_stmnt". Таким образом на таблице (включенной в репликацию) тригер "replication_triger_row" добавляет все изменяемые данные таблицы в буфер репликации, в таблицу "replication.ibis_to_send". | + | [[ВАЖНО знать]], что при присвоении полю "enable_b" значения True, для указанной таблицы автоматически создаются два тригера: "replication_triger_row" и "replication_triger_stmnt". Таким образом на таблице (включенной в репликацию) тригер "replication_triger_row" добавляет все изменяемые данные таблицы в буфер репликации, в таблицу "replication.ibis_to_send", а тригер "replication_triger_stmnt" (по окнчании изменения данных) запускает процедуру "replication.ibis_start_send()". Данная процедура, в свою очередь, запускает функцию "replication.send_data()", которая читает данные из буфера и отправляет их на удалённые БД. |
Версия 11:35, 10 ноября 2015
Общие сведения
Репликация ИБИС представляет из себя механизм передачи изменяемой в БД информации с одной базы в другую, с использованием DBLink. Вся изменяемая в БД информация накапливается в буфере, а затем из буфера передеётся на удалённые БД. В буфер информация попадает при срабатывании тригера "Репликации".
Для удобного мониторинга репликации создан модуль: aReplicationMon.exe
На первой закладке он отображает состояние подключений к удалённым БД и список ошибок, возникших при репликации. Список ошибок отображается отдельно для каждой БД вернего списка. На второй закладке он отображает полный список ошибок (ошибок всех БД). Из этого списка можно удалять ошибки вместе с данными (находящимися в буфере для отправки) на которых данная ошибка произошла. Таким образом можно очистить буфер передачи подготовленных данных. Так же в данном модуле начата разработка пошагового механизма первоначальной настройки репликации. Он доступен в меню "Настройки".
Настройка и прицип работы
Для использования механизма репликации необходимо:
- 1. Создать схему "replication" в месте со всеми объектами (таблицами и функциями).
Последняя версия всех объектов находится в MIS3
- 2. Создать пользователя БД "IBIS_REPLICATION" и "LINK2SELF".
Пользователи создаются таким скриптом:
DROP USER IF EXISTS "LINK2SELF"; CREATE USER "LINK2SELF" INHERIT LOGIN; ALTER USER "LINK2SELF" PASSWORD 'IbisPticaZloy'; GRANT "MIS_USER" to "LINK2SELF"; ALTER ROLE "MIS_USER" CREATEROLE;
DROP USER IF EXISTS "IBIS_REPLICATION"; CREATE USER "IBIS_REPLICATION" INHERIT LOGIN; ALTER USER "IBIS_REPLICATION" PASSWORD 'IbisPticaZloy'; GRANT "MIS_USER" to "IBIS_REPLICATION"; ALTER ROLE "MIS_USER" CREATEROLE;
- 3. Настроить список реплицируемых таблиц. Все таблицы подлежащие репликации хрянться в "replication.table_name_list".
В данной таблице, поле "tbl_name" должно быть указано имя таблицы вместе с именем схемы, например: "mm.emp". В поле "enable_b" должно быть установлено значение True. Если занчение False, то указанная таблица исключается из репликации.
ВАЖНО знать, что при присвоении полю "enable_b" значения True, для указанной таблицы автоматически создаются два тригера: "replication_triger_row" и "replication_triger_stmnt". Таким образом на таблице (включенной в репликацию) тригер "replication_triger_row" добавляет все изменяемые данные таблицы в буфер репликации, в таблицу "replication.ibis_to_send", а тригер "replication_triger_stmnt" (по окнчании изменения данных) запускает процедуру "replication.ibis_start_send()". Данная процедура, в свою очередь, запускает функцию "replication.send_data()", которая читает данные из буфера и отправляет их на удалённые БД.