Введение

Служба репликации  входит в состав сервера функции отчетов RK7 и устанавливается вместе с ним: непосредственно служба репликации RPL8_Lib.dll и файл мэппинга репликации DB_RPL8.ucs (создается для каждого продукта UCS, формируется  (создаётся) разработчиком соответствующего продукта). 
 
Для настройки репликации должно быть:
 
- установлен и настроен RK7 + БД  SQL;
- установлен и настроен Common  Server;
- установлен и настроен сервер функции отчетов;
- скачана утилита настройки узлов репликации RPL_Manager.exe (http://tracker.ucs.ru/redmine/attachments/download/371291/RPL_Manager1.8.1.42.rar ). При отсутствии доступа утилиту можно взять из вложенного файла.
 
Внимание! Работающая служба репликации не равно работающей репликации. Служба - это механизм, а команда на старт процесса репликации подается вручную. Однажды получив такую команду, служба репликации будет постоянно поддерживать процесс репликации запущенным, и остановит его только в случае возникновения критических ошибок, отражаемых в логе службы. В дальнейшем, программа настройки репликации должна быть запущена в единственном экземпляре, т.е. если она уже запущена на машине главного узла, то недопустимо запускать еще одну копию этой программы на машинах с локальными узлами.

1 Настройка репликации на главном узле

Настройки всех узлов репликации делаются с одной машины, на которой запущена программа настройки.
1 Запустить RPL_Manager.exe (см. рис. 1).

Рис. 1 - RPL_Manager.exe


2. После подключения к Common Server развернуть список служб, зарегистрированных на сервере, открыть службу репликации главного узла, перейти на вкладку «Settings», нажав кнопку «Load settings from file» загрузить мэппинг из файла DB_RPL8.ucs (см. рис. 2).

Рис. 2 - Загрузка мэппинга

3. После загрузки мэппинга перейти на вкладку «Install» и настроить свойства узла репликации и доступ к БД (см. рис. 3). 

Рис. 3 - Настройки свойств главного узла репликации и доступ к БД


Тип узла - "MASTER", имя узла - заданное имя для данного узла, хост  - IP адрес, по которому служба будет доступна (для главного узла репликации рекомендуется задать 0.0.0.0, чтобы служба была доступна на всех сетевых интерфейсах машины), порт, протокол и прочее в этом блоке оставить по умолчанию.
Параметр "Количество отправляемых транзакций" (Count transaction sending) позволяет регулировать размер пакет с данными. По умолчанию - 1000 транзакций. Если скорость передачи данных в сети позволяет быстро (1-5 сек) передавать файлы большого (от 3 до 10 Мб) размера, то можно увеличить это значение. На простых БД, не содержащих в таблицах большие бинарные данные (BLOB-поля), можно поднять этот параметр до 2000-3000 транзакций. При медленной скорости передачи данных в сети или наличии в БД заполненных BLOB-полей это значение лучше уменьшить до 100-200 транзакций.
В блоке настроек соединения с БД задается соединение с БД главного узла репликации. Указываем произвольное уникальное название соединения, реквизиты доступа к серверу БД и настраиваем строку подключения к базе. При этом удобнее всего воспользоваться кнопкой «Generate» и сформировать строку визуально выбрав необходимый сервер и БД. Если с машины, на которой проводится настройка, невозможно соединится с сервером БД, рекомендуется создать на сервере БД UDL файл с подключением к нужной базе, и скопировать из него получившуюся строку подключения.
Настройки пула подключений на чтение/запись в этом блоке задают максимальное количество потоков обращения к БД в службе репликации. Менее 10 указывать не следует, т.к. некоторое количество потоков из этого лимита расходуется на внутренние нужды, а остаток — на создание подключений к БД, непосредственно загружающих пакеты.
На главном узле следует указать количество потоков по формуле 10+([количество локальных узлов]*2). Меньшие значения приведут к образованию очереди пакетов на главном узле, сервер не будет успевать их загружать. В системах с большим количеством локальных узлов количество потоков на запись можно увеличить в 2-3 раза от значения, полученного по указанной выше формуле. При достаточном быстродействии оборудования это поможет поднять скорость загрузки пакетов. Слишком больших значений тоже следует избегать, т.к. излишнее количество потоков приводит большой загрузке ресурсов ПК сервером БД. Пример корректных настроек главного узла см. рис. 3.


4. По завершению настроек нажать кнопку «Install», сохраняем настройки,  запускаем репликацию. В окне лога событий в нижней части экрана должна появится надпись об успешном запуске механизма репликации для этого узла (см. рис. 4).

Рис. 4 - Запись об успешном запуске механизма репликации


После запуска репликации на главном узле с помощью кнопки "Extract pure mapping" (см. рис. 5) необходимо сохранить в файл (откроется стандартный диалог с возможностью выбрать папку назначения и имя файла) настройки данного главного узла. Эти настройки уникальны для главного узла и будут использоваться для загрузки настроек главного узла на каждый новый локальный узел.

Рис. 5 - Extract pure mapping

Теперь настройка главного узла репликации завершена, можно переходить к настройкам локальных узлов.

2 Настройка репликации на локальном узле    


Настройка в RPL_Manager локального узла репликации аналогична главному, за исключением нескольких моментов.
Настройка осуществляется из  программы RPL_Manager, запущенной на машине главного узла репликации.
Для настройки:
1. Открыть необходимый локальный узел. Если он зарегистрирован на другом CS, то необходимо его добавить аналогично с главным узлом (см. рис.1), при этом загрузить из файла не «Оригинал мэппинга», который получили от разработчика, а из файла с настройками главного узла репликации, сохраненного кнопкой "Extract pure mapping" после запуска главного узла репликации (см.рис.6).
После загрузки настроек так же переходим на вкладку «Install» и настраиваем свойства узла репликации и доступ к БД.
Тип узла - "SLAVE", имя узла = заданному в п. 1 имени для данного узла, "Мaster server name" = имя главного узла репликации, настроенного в п. 1, хост = IP адрес главного узла репликации, порт, протокол и прочее в этом блоке оставить по умолчанию, при необходимости указав количество транзакций в пакете, адаптированное к условиям сети. Так же при необходимости - явно указать №№ стартовой транзакции в случае использования на локальном узле архива БД главного узла.
2. В блоке "Настройка соединения с БД" задать соединение с БД локального узла репликации. Указать произвольное уникальное название соединения, реквизиты доступа к серверу БД, настроить строку подключения к базе. Пул на чтение и запись БД — в большинстве случаев достаточно по 10 соединений.
Пример корректных настроек см. рис. 6.

Рис. 6 - Настройки свойств главного узла репликации и доступ к БД


3. По завершению настроек нажать кнопку «Install», сохранить настройки,  запускаем репликацию.
4. В окне лога событий в нижней части экрана должна появится надпись об успешном запуске механизма репликации для этого узла (см. рис. 4).
На этом настройка локального узла репликации завершена, можно переходить к следующему локальному узлу.

3 Перезапуск и повторный запуск репликации, контроль активности репликации


Для повторного запуска уже настроенной на узлах репликации нет необходимости загружать настройки  из файла мэппинга или файла настроек главного узла репликации.
Все настройки сохраняются в БД узла репликации, и могут быть загружены нажатием кнопки «Load Settings from server» (см. рис. 7).

Рис. 7 - Загрузка настроек


После загрузки настроек необходимо нажать кнопку «Start» в верхней части окна настроек узла репликации.
Внимание!  Первым запускается главный узел репликации, затем в любой последовательности — локальные узлы.
При сбое и перезапуске службы RPL8_SERVICE (например, при перезагрузке ПК узла репликации) процесс репликации запускается автоматически.
В RPL_Manager предусмотрена возможность группового запуска и останова репликации. Для этого нужно в панели кнопок приложения необходимо выбрать «Group settings», в открывшемся окне выбрать нужные узлы, и нажать кнопку «Start» или «Stop».
 
Контролировать активность репликации можно с помощью встроенных в Common Server и службу репликации web-серверов.
Для контроля CS необходимо зайти браузером по адресу:
http:\\[IP адрес Common Server]:[порт Common Server]/?info
Здесь, для просмотра узлов репликации, среди списка узлов выбрать любое по порядку вхождение нужного узла репликации, и перейти по ссылке на web-сервер службы репликации узла (см. рис. 8)

Рис. 8 - Контроль активности репликации


На рис. 9 отображена страница состояния службы репликации:

Рис. 9 - Страница состояния службы репликации


Если репликация запущена, отображается зеленая надпись «State - This server is running», если остановлена — красная «State - This server is stopped».
Параметр «Time watchdog» отображает самодиагностику службы, в нормальном состоянии текст тоже зеленый, при зависаниях потоков службы показывает время, оставшееся до перезапуска службы, красным цветом. Таймаут, в течении которого не ответивший поток считается зависшим, и служба перезапускается, устанавливается в минутах параметром AlarmTime(m) в секции [FS_TYPE] ini-файла службы, по умолчанию — 15 минут.
На web-сервере службы репликации главного узла отображаются номера последнего переданного пакета и дата/время последней операции, по которым так же можно установить, работает ли репликация (см. рис. 9)
Анализируем каждую пару «главный узел (MASTER)-локальный узел (SLAVE)».
В данном примере текущий номер пакета и время последней операции для локального узла позволяют понимать, какое количество пакетов передано (и записано в БД) с главного на локальный узел к указанному моменту времени.
Текущий номер пакета и время последней операции для главного узла позволяют понять,  какое количество пакетов передано (и записано в БД) с локального на главный узел к указанному моменту времени.
Так же в папке установки службы репликации, в подпапке LOGS находятся протоколы работы службы репликации. Если номер пакета и дата изменений в web-сервере главного узла репликации не появляется или не изменяется, то следует проверить последний по дате создания файл в этой папке.