Подготовка БД к репликации

Материал из FrigatWiki

Перейти к: навигация, поиск

Инструкция по использованию модуля для подготовки БД к репликации.
Данная инструкция предназначена для «разведения» БД на 2 удалённых рабочих места по схеме «полная» (один в один).

Содержание

ВНИМАНИЕ!!!

ПЕРЕД НАЧАЛОМ ВЫПОЛНЕНИЯ НИЖЕСЛЕДУЮЩИХ ДЕЙСТВИЙ ВСЕ ПОЛЬЗОВАТЕЛИ, КРОМЕ ПОЛЬЗОВАТЕЛЯ, ОСУЩЕСТВЛЯЮЩЕГО ПРОЦЕСС ПОДГОТОВКИ БАЗЫ ДАННЫХ К РЕПЛИКАЦИИ, ДОЛЖНЫ ВЫЙТИ ИЗ ПРОГРАММЫ.
ВСЕ НИЖЕПЕРЕЧИСЛЕННЫЕ ДЕЙСТВИЯ ДОЛЖНЫ ВЫПОЛНЯТЬСЯ ПОЛЬЗОВАТЕЛЕМ ПРОГРАММЫ ФРЕГАТ ПОД УЧЁТНОЙ ЗАПИСЬЮ SYSDВA.
ОБЯЗАТЕЛЬНО ПЕРЕД ЗАПУСКОМ МОДУЛЯ ПОДГОТОВКИ К РЕПЛИКАЦИИ В КОПИЮ ПРОИЗВЕСТИ ДЕФРАГМЕНТАЦИЮ БАЗЫ ДАННЫХ.

Действия по «разведению» базы данных

  1. Запустить программу Фрегат.
  2. В программе Фрегат запустить команду
    Главное Меню - Службы - Модули - Модуль подготовки базы данных для репликации в копию.
  3. После окончания работы модуля выйти из программы и после этого скопировать файл базы данных(БД).
  4. Подключить скопированный файл БД через Фрегат Консоль.
  5. В меню ПУСК - ПРОГРАММЫ - ФРЕГАТ - ИНСТРУМЕНТЫ запустить IBX SQL.
  6. В IBX SQL подключить скопированный файл БД.
  7. В IBX SQL набрать команду: update sys$info set ip='9-ти значное число'
    (Например: update sys$info set ip='123456789')
    Выполнить её, нажав молнию на панели инструментов.
    Подтвердить транзакцию, нажав вторую кнопку справа на панели инструментов.
    Зайти во Фрегат, подключиться к скопированной базе данных.
    В Фрегате Главное Меню - Службы - Обмен_Данными, код узла должен быть тот, который установлен командой update sys$info set ip='9-ти значное число'.
  8. В каждой из БД создать по узлу. В качестве кода при создании узла указывать код того узла, которому предназначается пакет. В разделе Что передавать указать то, что необходимо передавать.
  9. В меню ПУСК - ПРОГРАММЫ - ФРЕГАТ - ИНСТРУМЕНТЫ запустить IBX SQL.
  10. В IBX SQL подключить скопированный файл БД.
  11. В IBX SQL набрать команду: update xchgnodes set send_time='сегоднящняя дата'
    (Например: update xchgnodes set send_time='19.01.2005 или update xchgnodes set send_time=’now’)
    Дата(число,месяц,год) в обеих базах должна быть одинаковой!!!.
    Выполнить её, нажав молнию на панели инструментов.
    Подтвердить транзакцию, нажав вторую кнопку справа на панели инструментов.
    Для контроля, что всё прошло успешно, выполнить запрос:
    SELECT send_time FROM XCHGNODES
    и в результате выполнения посмотреть поле send_time - там должна стоять дата, которая была указана в send_time='сегодняшняя дата'.
  12. В IBX SQL отключить скопированный файл БД.
  13. В IBX SQL подключить исходный файл БД.
  14. В IBX SQL набрать команду: update xchgnodes set send_time='сегоднящняя дата'
    (Например: update xchgnodes set send_time='19.01.2005' 2005 или update xchgnodes set send_time=’now’)
    Дата (число,месяц,год) в обеих базах должна быть одинаковой!!!
    Выполнить её.
    Подтвердить транзакцию.
    Для контроля, что всё прошло успешно, выполнить запрос:
    SELECT send_time FROM XCHGNODES
    и в результате выполнения посмотреть поле send_time - там должна стоять дата, которая была указана в команде update xchgnodes send_time='сегодняшняя дата'.


Базы данных готовы к обмену данными.

Проверка

  1. Выйти из программы Фрегат.
  2. Скопировать полученные базы данных и на этих копиях произвести следующие действия:
  3. Для проверки создать накладные в каждой базе.
  4. Обменяться пакетами.

После обмена пакетами накладные, созданные в каждой из БД, должны присутствовать в обеих базах.
Если накладные появились, базы готовы к работе. Копии баз данных, созданные ранее, можно удалить

Ситуация с задвоением товара.

Примечание. Сценарий репликации не стандартный, а написан самостоятельно.
Когда товар или документ передаётся по репликации, то ему в момент передачи присваивается уникальный идентификатор, называемый GUID. Если эти GUID отличаются в двух базах, то происходит задвоение товаров и документов. В результате в базе-приёмнике есть два абсолютно одинаковых товара, у которых одинаково всё, кроме поля ID. Каждый товар имеет свою товарную историю.

Предпосылки возникновения такой ситуации:

  1. Неуникальность товара по имени (например, товары уникальны по артикулу, а называются одинаково)
  2. База-приёмник сделана с копии Базы-источника путем репликации - заведен GUID на товар в базе-приёмнике, и при передаче из источника на этот товар генерируется НОВЫЙ УНИКАЛЬНЫЙ GUID
Личные инструменты