3. Подготовка к процессу репликации

advertisement
Terrasoft CRM
РУКОВОДСТВО ПО РЕПЛИКАЦИИ
ДЛЯ СУБД MS SQL SERVER
Содержание
Содержание
Об этом руководстве ........................................................................................... 4
1.
Понятие репликации .................................................................................. 5
2.
Механизм репликации ................................................................................ 6
3.
4.
5.
Подготовка к процессу репликации ........................................................... 7
3.1.
Размещение файлов ......................................................................... 7
3.2.
Настройка подключения к БД ........................................................... 8
3.3.
Подготовка базы данных на Центральном сервере ........................ 10
3.4.
Подготовка базы данных в точках репликации .............................. 19
Настройка offline репликации................................................................... 22
4.1.
Настройка почтовых параметров .................................................... 22
4.2.
Регистрация точек обмена .............................................................. 23
4.3.
Настройка разрешения конфликтов ............................................... 24
4.4.
Отчет о процессе репликации ........................................................ 26
4.5.
Просмотр истории репликации ....................................................... 27
Работа с утилитой репликации ................................................................ 28
5.1.
Параметры репликации .................................................................. 28
5.1.1.
Прием и отправка данных ........................................................... 28
5.1.2.
Работа с точками обмена ............................................................ 29
5.1.3.
Операции с буфером ................................................................... 29
5.1.4.
Операции с файлами................................................................... 29
5.1.5.
Операции с файлом настроек ..................................................... 29
5.1.6.
Отчет о процессе репликации ..................................................... 30
5.1.7.
5.2.
Справка ....................................................................................... 30
Использование утилиты репликации .............................................. 30
5.2.1.
Работа с утилитой репликации на Центральном сервере ............ 30
5.2.2.
Работа с утилитой репликации на точках обмена ....................... 31
5.2.2.1.
Получение данных с сервера ........................................... 33
5.2.2.2.
Отправка данных на сервер ............................................. 34
5.2.3.
5.3.
Примеры использования репликации.......................................... 35
Дополнительные возможности репликации .................................... 36
5.3.1.
Отправка SQL-скриптов............................................................... 37
5.3.2.
Создание исполняемых файлов репликации ............................... 38
5.3.3.
Управление изменением метаданных ......................................... 38
5.3.3.1.
Особенности подготовки таблицы к репликации ............. 38
5.3.3.2.
Добавление пользовательского поля ............................... 39
5.3.4.
Terrasoft CRM
Пользовательское управление репликацией ............................... 41
3
Руководство по репликации для MS SQL Server
Об этом руководстве
Данный
документ
является
подробным
справочным
пособием,
описывающим репликацию в системе Terrasoft CRM X25 под MS SQL Server.
Документ состоит из отдельных глав, в которых подробно рассматриваются
этапы подготовки и настройки offline репликации в Terrasoft CRM,
описываются параметры репликации и приводятся примеры использования
репликации.
В главе «Понятие репликации» приводятся общие сведения о репликации и
инструменте, с помощью которого она осуществляется.
В главе «Механизм репликации» на наглядном примере рассматриваются
особенности алгоритма репликации.
Глава «Подготовка к процессу репликации» содержит описание всех
необходимых действий, которые следует совершить для подготовки базы
данных на Центральном сервере и в точках репликации к процессу
репликации.
В главе «Настройка offline репликации» рассмотрены все настройки
утилиты репликации.
Глава «Использование утилиты репликации» посвящена особенностям
работы с утилитой репликации на Центральном сервере и на точках
обмена, содержит примеры использования репликации.
В главе «Дополнительные возможности репликации» приводятся примеры
использования ряда дополнительных возможностей, доступных при работе
с утилитой репликации.
4
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
1. Понятие репликации
Под репликацией понимается обмен данными между двумя и более
точками обмена с целью синхронизации информации, накапливаемой в
различных точках обмена.
В репликации могут использоваться только данные, хранящиеся в
пользовательских таблицах базы данных. Для каждой таблицы,
участвующей в репликации, в процессе установки утилиты репликации с
помощью «Мастера установки» создаются необходимые элементы. Все
таблицы, участвующие в репликации, должны иметь первичный ключ с
именем ID и типом данных uniqueidentifier.
Модуль репликации представляет собой утилиту offline репликации,
осуществляющую обмен данными через E-mail-сервер.
!
В версии Terrasoft CRM 3.2 по репликации не передаются таблицы логирования,
пользователи, роли, права на группы таблиц, права на поля таблиц, а также
вхождения пользователя в роль и роли в роль на сервере.
!
Профиль пользователя при использовании репликации необходимо хранить на
сервере, а не локально.
Важно понимать,
планирования.
что
репликация
требует
тщательного
анализа
и
Прежде чем приступать к работе, рекомендуется полностью прочитать этот
документ, поскольку управление распределенной базой данных намного
сложнее управления централизованной базой данных
Terrasoft CRM
5
Руководство по репликации для MS SQL Server
2. Механизм репликации
По умолчанию репликация в Terrasoft CRM X25 осуществляется через
SMTP/POP3 сервера.
Чтобы лучше разобраться в алгоритме работы, рассмотрим пример. У
некоторой компании есть сотрудник, который работает с базой данных
Terrasoft CRM X25, и офис, где несколько человек работают с Центральной
базой данных Terrasoft CRM X25. Сотрудник часто бывает в командировках,
поэтому ему всегда нужна его база данных, а также оперативные данные
из Центрального офиса. На Рис. 2.1 представлена схема работы
репликации:
Рис. 2.1 – Схема работы репликации
Точки обмена – это серверы баз данных, которые участвуют в репликации.
Обозначение «Центральный офис» условно, так как каждая точка обмена
может обмениваться данными с любой другой точкой обмена.
Обмен данными происходит следующим образом:
!
6
1.
Для того чтобы сотрудник получил данные, Центральному офису
необходимо выслать информацию по изменению базы данных на
электронный адрес сотрудника, который указан в настройках
точки обмена.
2.
Для того чтобы Центральный офис получил информацию,
сотруднику необходимо выслать информацию по изменению базы
данных на электронный адрес Центрального офиса.
Для
организации
процесса
репликации
необходимо
наличие
зарегистрированных электронных почтовых ящиков и доступ к данным
почтовым ящикам в момент репликации. Регистрация почтовых ящиков описана
в главе 4.1.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
3. Подготовка к процессу репликации
Общий алгоритм подготовки Terrasoft CRM к процессу репликации на
Центральном сервере и в точке обмена аналогичен:
1.
Разместить на компьютере все необходимые для работы файлы
(глава 3.1).
2.
Настроить соединение с рабочей базой Terrasoft CRM с помощью
утилиты «Администратор offline репликации» SetOffline.exe
(глава 3.2).
3.
Запустить «Мастер подготовки к репликации» RepWizard.exe
(главы 3.3-3.4).
!
Для корректной работы утилиты репликации необходимо использовать в
качестве СУБД MS SQL Server 2000 Service Pack 4 или MS SQL Server 2005 Service
Pack 1.
!
Так как процесс настройки репликации подразумевает под собой внесение
определенных изменений в рабочую базу данных, то выполнять его может
только пользователь с правами Системного администратора.
3.1.
1.
Размещение файлов
Из папки «Files» пакета репликации скопировать все исполняемые
файлы в каталог «Bin» инсталляционной директории приложения
Terrasoft CRM (по умолчанию <C:\Program Files\Terrasoft CRM X25\
Bin>).
В результате, в рабочей директории
находиться следующие файлы:
приложения
должны
«RepOffline.exe» – утилита репликации;
«RepOffline.mld» – настройки языка утилиты
«RepOffline.exe»;
«SetOffline.exe» – утилита «Администратор offline
репликации»;
«SetOffline.mld» – настройки языка утилиты
«SetOffline.exe»;
«Admin.mdb» – настройки утилиты «SetOffline.exe»;
«RepWizard.exe» – утилита «Мастер подготовки к
репликации»;
«RepWizard. mld» – настройки языка утилиты
«RepWizard.exe»;
«Settings.ini» - настройки параметров утилит.
Terrasoft CRM
7
Руководство по репликации для MS SQL Server
Также необходимо скопировать каталог «Lib» - библиотеку для
работы с почтовыми сообщениями.
2.
В каталог «Bin» инсталляционной директории приложения следует
скопировать
расширением
папку
«SQL»,
<*.sql>),
содержащую
необходимые
скрипты
для
(файлы
создания
с
схемы
репликации на рабочей базе.
3.2.
Настройка подключения к БД
После размещения на компьютере всех необходимых файлов следует
зарегистрировать библиотеки из каталога «Lib», как на Центральном
сервере, так и на точках репликации.
Затем можно переходить к настройке соединения с рабочей базой Terrasoft
CRM. Для этого используется утилита «Администратор offline репликации»
(SetOffline.exe).
Запустить утилиту можно из каталога
«Bin»
рабочей
директории
приложения
Terrasoft
CRM
(по
умолчанию
<C:\Program
Files\
Terrasoft CRM X25\Bin >).
После запуска утилиты нужно перейти
на закладку [Настройка подключения]
и нажать на кнопку [Настроить…].
ПОДСКАЗКА
Изменить язык интерфейса утилиты
«SetOffline.exe» можно после
настройки соединения с БД, прописав в
файле «Settings.ini» параметры:
Language =russian
Charset = 204 (для русского языка) или
Language =english
Charset = 0 (для английского языка).
В результате откроется окно свойств
связи с данными. В этом окне следует перейти на закладку [Поставщик
данных] и выбрать подключаемые
данные (Рис. 3.1).
Далее следует перейти на закладку
[Подключение] окна свойств связи с
данными и выполнить настройки
подключения к данным SQL Server
(Рис. 3.2).
На
этой
закладке
необходимо
указывать
данные
пользователя,
который
является
Администратором БД.
8
ПОДСКАЗКА
При запуске утилиты «SetOffline.exe»
текущая версия программы репликации
сравнивается с версией схемы
репликации на рабочей базе, а также с
версией схемы репликации базы
«cm_empty». В случае несовпадения
версий, выдается сообщение об
ошибке, и запуск «SetOffline.exe»
прекращается.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
Рис. 3.1 – Выбор подключаемых данных
Рис. 3.2 – Выбор параметров подключения
Terrasoft CRM
9
Руководство по репликации для MS SQL Server
Далее следует закрыть окно свойств связи с данными нажатием на кнопку
[ОК]. В результате, параметры настройки подключения отобразятся на
закладке [Настройка подключения] «Администратора offline репликации»
(Рис. 3.3).
Рис. 3.3 – Администратор offline репликации
Для
того
чтобы
сохранить
настройки
воспользоваться кнопкой [Сохранить…].
подключения,
следует
Проверить подключение можно с помощью кнопки [Тест…].
3.3.
Подготовка базы данных на Центральном
сервере
После того, как на Центральном
сервере
выполнены
действия,
описанные
в
главах 3.1-3.2,
дальнейшая подготовка сервера к
процессу репликации выполняется с
помощью «Мастера подготовки к
репликации».
Последовательность
действий при этом следующая:
1.
10
ПОДСКАЗКА
Изменить язык интерфейса утилиты
RepWizard.exe можно после настройки
соединения с БД, прописав в файле
«Settings.ini» параметры:
Language =russian
Charset = 204 (для русского языка) или
Language =english
Charset = 0 (для английского языка).
Запустить
«Мастер
подготовки к репликации»
(«RepWizard.exe»). Файл находится в каталоге «Bin» рабочей
директории приложения Terrasoft CRM (по умолчанию <C:\Program
Files\Terrasoft CRM X25\ Bin>). На экране появится окно
приветствия «Мастера» (Рис. 3.4).
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
Рис. 3.4 – Стартовая страница «Мастера подготовки к репликации»
2.
Далее нужно выбрать сценарий работы «Мастера». В данном
случае [Настройка репликации на центральной точке] (Рис. 3.5).
Рис. 3.5 – Выбор типа «Мастера подготовки к репликации»
3.
!
Перед внесением каких-либо изменений в рабочую базу Terrasoft
CRM необходимо создать ее резервную копию.
Создание резервной копии выполняется на компьютере, на котором установлен
MS SQL Server.
Terrasoft CRM
11
Руководство по репликации для MS SQL Server
!
Перед созданием резервной копии базы данных необходимо убедиться, что на
диске, на который будет сохранена резервная копия, есть свободное место.
Для создания резервной копии базы данных в появившемся на
экране окне «Мастера» нужно указать имя и путь к файлу, в
который будет сохранена резервная копия рабочей базы данных,
и нажать на кнопку [Выгрузить данные] (Рис. 3.6). Создание
резервной копии базы данных может занять продолжительное
время.
Рис. 3.6 – Выгрузка данных из файла
4.
После системного сообщения об успешном создании резервной
копии следует перейти к следующему шагу «Мастера».
5.
В результате, появится окно, в котором необходимо указать
каталог, содержащий файлы скриптов для создания схемы
репликации (Рис. 3.7).
6.
Далее, в случае повторной настройки репликации, необходимо
выбрать опцию [Настройка репликации проводится повторно] и
нажать на кнопку [Выполнить скрипты сброса метаданных]
(Рис. 3.8).
Если настройка ранее не проводилась, следует выбрать опцию
[Настройка репликации ранее не проводилась] и перейти к
следующему шагу «Мастера».
12
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
Рис. 3.7 – Путь к скриптам для репликации
Рис. 3.8 – Запуск скриптов сброса метаданных
7.
!
На следующем этапе необходимо создать промежуточные базы
данных «cm_empty» и «cm_clear».
Перед созданием «cm_clear» необходимо убедиться, что на диске, на который
будет сохранена база данных, есть свободное место.
По умолчанию файлы данных и логов сохраняются в каталоге, в
который установлено приложение Terrasoft CRM. Можно указать
Terrasoft CRM
13
Руководство по репликации для MS SQL Server
другой каталог для хранения данных этих файлов, нажав на
кнопку […]. Для создания баз данных «cm_empty» и «cm_clear»
следует нажать на кнопку [Создать] и перейти к следующему шагу
«Мастера» (Рис. 3.9).
Рис. 3.9 – Создание БД для репликации
8.
На этом шаге нужно запустить процесс создания схемы
репликации на Центральном сервере, нажав на кнопку [Выполнить
подготовку] (Рис. 3.10). Система сообщит об успешном завершении
подготовки.
Рис. 3.10 – Выполнение подготовки к репликации
14
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
9.
После завершения подготовки Центрального сервера к репликации
«Мастер» предложит создать ярлыки для основных действий
репликации в меню [Пуск] и на рабочем столе (Рис. 3.11).
Рис. 3.11 – Создание ярлыков
10. На следующем этапе «Мастер» завершит свою работу и предложит
перейти к процессу настройки репликации, запустив утилиту
«SetOffline.exe» (Рис. 3.12).
Рис. 3.12 – Завершение подготовки
Процесс настройки утилиты репликации рассмотрен в главе 5 данного
руководства.
Прежде, чем переходить к настройке утилиты репликации «SetOffline.exe»,
необходимо выполнить ряд дополнительных шагов:
1.
Создать пользователя TS_REPLICATION на сервере и определить
для него роль «Системный администратор».
2.
Изменить параметры подключения утилиты SetOffline.exe.
Создание пользователя на сервере будет различаться в зависимости от
используемой СУБД (MS SQL Server 2000 или MS SQL Server 2005).
Создание пользователя для MS SQL Server 2000
Создание пользователя, в данном случае, выполняется с помощью MS SQL
Server Enterprise Manager. Действия при этом следующие:
1.
Вызвать контекстное меню группы «Security» -> «Logins» и
выполнить команду [New Login…]. В результате, откроется окно,
пример которого изображен на Рис. 3.13.
2.
На закладке [General] этого окна в поле [Name] ввести имя
пользователя – TS_REPLICATION.
Terrasoft CRM
15
Руководство по репликации для MS SQL Server
Рис. 3.13 – Создание пользователя TS_REPLICATION (MS SQL 2000)
3.
В блоке [Authentication] установить признак
Authentication] и ввести пароль пользователя.
[SQL
Server
4.
На закладке [Server Roles] (Рис. 3.14) выбрать роль «System
Administrators». В случае выбора какой-либо другой роли на
закладке [DataBase Access] нужно указать, что данный
пользователь имеет доступ к рабочей базе и к базе «cm_empty».
Рис. 3.14 – Определение прав пользователя «TS_REPLICATION»
(MS SQL 2000)
16
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
5.
После нажатия на кнопку [ОК] будет создан пользователь
«TS_REPLICATION».
Создание пользователя для MS SQL Server 2005
Создание пользователя, в данном случае, выполняется с помощью Microsoft
SQL Server Management Studio. Действия при этом следующие:
1.
Вызвать контекстное меню группы «Security» -> «Logins» и
выбрать пункт [New Login…].
2.
В открывшемся окне (Рис. 3.15) на закладке [General] в поле [Login
name] ввести имя пользователя – TS_REPLICATION, установить
признак [SQL Server Authentication] и ввести пароль пользователя.
Рис. 3.15 – Создание пользователя «TS_REPLICATION» (MS SQL 2005)
3.
На закладке [Server Roles] установить опцию [sysadmin]
(Рис. 3.16). В случае выбора какой-либо другой роли на закладке
[DataBase Access] указать, что данный пользователь имеет доступ
к рабочей базе и к базе «cm_empty».
4.
После нажатия на кнопку [ОК] будет создан пользователь
«TS_REPLICATION».
После создания пользователя «TS_REPLICATION» на сервере и
определения для него роли «Системный администратор» нужно перейти на
закладку [Настройка подключения] утилиты «SetOffline.exe» и указать
пользователя «TS_REPLICATION» и его пароль в соответствующих полях
(Рис. 3.17).
Terrasoft CRM
17
Руководство по репликации для MS SQL Server
Рис. 3.16 – Определение прав пользователя «TS_REPLICATION»
(MS SQL 2005)
Рис. 3.17 – Изменение настроек утилиты «SetOffline.exe»
18
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
3.4.
Подготовка базы данных в точках репликации
Подготовка базы данных в точках репликации выполняется с помощью
«Мастера подготовки к репликации». Предварительно необходимо:
1.
!
Установить Terrasoft CRM X25 под СУБД MS SQL 2000 / MS SQL
2005 в точке репликации (см. Документ «Руководство
администратора»);
Для корректной работы утилиты репликации необходимо использовать в
качестве СУБД MS SQL Server 2000 Service Pack 4 или MS SQL Server 2005 Service
Pack 1.
2.
Скопировать
файлы
резервных
копий
базы
данных
«cm_empty.bak» и «cm_clear.bak», созданные ранее «Мастером
подготовки к репликации» на сервере, в каталог «Bin» рабочей
директории приложения Terrasoft CRM на точке обмена (по
умолчанию <C:\Program Files\Terrasoft CRM X25\Bin>);
3.
Выполнить действия, описанные в главах 3.1-3.2.
Последовательность шагов
репликации» следующая:
при
работе
с
«Мастером
подготовки
к
1.
Запустить утилиту «RepWizard.exe», которая находится в каталоге
«Bin» рабочей директории приложения Terrasoft CRM (по
умолчанию <C:\Program Files\Terrasoft CRM X25\Bin>).
2.
После окна приветствия появится окно выбора сценария работы
«Мастера подготовки к репликации», в котором следует выбрать
опцию [Настройка репликации на удаленной точке] (Рис. 3.18).
Рис. 3.18 – Выбор типа «Мастера»
Terrasoft CRM
19
Руководство по репликации для MS SQL Server
3.
Следующим шагом нужно указать каталог, в котором находятся
скопированные
файлы
резервных
копий
базы
данных
«cm_empty.bak» и «cm_clear.bak» (Рис. 3.19).
4.
Далее необходимо создать промежуточную базу данных
«cm_empty» и рабочую базу данных на точке обмена. В
появившемся окне «Мастера» (Рис. 3.20) следует указать путь к
рабочей базе данных и нажать на кнопку [Создать].
Рис. 3.19 – Выбор каталога резервной копии
Рис. 3.20 – Восстановление БД
20
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
5.
После системного сообщения об успешном восстановлении базы
нужно перейти к следующему шагу «Мастера».
6.
После завершения подготовки точки обмена к репликации
«Мастер» предложит создать ярлыки для основных действий
репликации (Рис. 3.21).
Рис. 3.21 – Создание ярлыков
7.
Далее «Мастер» сообщит о завершении своей работы и предложит
перейти к процессу настройки репликации, запустив утилиту
«SetOffline.exe».
Рис. 3.22 – Завершение работы «Мастера установки»
Прежде, чем переходить к настройке утилиты репликации «SetOffline.exe»,
следует выполнить ряд дополнительных шагов по созданию пользователя
TS_REPLICATION, аналогичных действиям на сервере, описанным выше.
Terrasoft CRM
21
Руководство по репликации для MS SQL Server
4. Настройка offline репликации
Для использования offline репликации
необходимо настроить точки обмена, а
также передачу данных через почтовый
сервер
при
помощи
утилиты
«Администратор
offline
репликации»
(«SetOffline.exe»). Запустить утилиту
можно из каталога «Bin» рабочей
директории приложения Terrasoft CRM
(по
умолчанию
<C:\Program
Files\
Terrasoft CRM X25 \ Bin>).
4.1.
ПОДСКАЗКА
При запуске утилиты «SetOffline.exe»
текущая версия программы репликации
сравнивается с версией схемы
репликации на рабочей базе, а также с
версией схемы репликации базы
«cm_empty». В случае несовпадения
версий, выдается сообщение об
ошибке, и запуск «SetOffline.exe»
прекращается.
Настройка почтовых параметров
Для каждого сервера БД, который будет участвовать в репликации,
необходимо завести почтовые ящики, через которые будут передаваться
пакеты данных. Для заведения ящиков могут быть использованы
бесплатные Internet-ресурсы или локальный почтовый сервер. Следует
учитывать, что при использовании локального почтового сервера доступ к
почтовым ящикам будет осуществляться намного быстрее.
Настройка параметры соединения с почтовым сервером для текущей точки
обмена осуществляется на закладке [Почта] утилиты «Администратор
offline репликации» (Рис. 4.1).
Рис. 4.1– Закладка [Почта]
22
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
Здесь необходимо указать параметры входящего и исходящего почтового
сервера.
Признак [Фрагментировать] позволяет задавать размер фрагментов, на
которые разбиваются пакеты передаваемых данных. Это позволяет
учитывать ограничения на максимальный размер письма почтовых
серверов передающей и принимающей стороны.
Для проверки правильности настройки параметров соединения следует
нажать на кнопку [Тест].
4.2.
Регистрация точек обмена
Для обмена пакетами данных между компьютерами необходимо
зарегистрировать все точки обмена, которые будут принимать в нем
участие. Точки обмена представляют собой компьютеры, на которых
расположены рабочие базы данных Terrasoft CRM, подготовленные к
репликации.
На закладке [Точки обмена] утилиты «Администратор offline репликации»
необходимо нажать на кнопку [Добавить…] либо [Редактировать…]
(Рис. 4.2).
Рис. 4.2 – Закладка [Точки обмена]
В результате откроется окно регистрации / редактирования точки обмена
(Рис. 4.3), содержащее следующие поля:
[Имя] – название точки обмена, которая участвует в процессе репликации.
[Имя базы данных] - название рабочей базы данных Terrasoft CRM в данной
точке обмена.
[Код] – каждая точка обмена должна иметь свой уникальный код.
Terrasoft CRM
23
Руководство по репликации для MS SQL Server
Рис. 4.3 – Окно редактирования точки обмена
[Почта] – адрес электронного почтового ящика для данной точки обмена.
[Контакт] – ответственный по процессу репликации в данной точке обмена.
[GMT] – часовой пояс, в котором находится регистрируемая точка обмена.
[Пароль для запуска SQL] – пароль для выполнения скриптов на удаленной
точке.
Опция [Текущая] – идентификация
настройка репликации.
точки,
на
которой
происходит
Опция [Активная] – идентификация точки, участвующей в репликации.
4.3.
Настройка разрешения конфликтов
Для настройки разрешения конфликтов при репликации используется
закладка [Правила репликации] утилиты «Администратор offline
репликации» (Рис. 4.4).
24
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
Рис. 4.4 – Закладка [Правила репликации]
Для разрешения конфликтов при изменении записи в двух точках обмена
используются специальные опции. Если нужно, чтобы на сервер попала
последняя по времени редакция записи, следует установить опцию
[Последнего редактирования]. Эта опция используется по умолчанию.
Опция
[Автора]
означает,
что
на
сервер
отредактированная пользователем, создавшим запись.
попадет
запись,
Опция [На текущем компьютере] означает, что на сервере останется
исходная запись.
На закладке [Правила репликации] также находится перечень таблиц базы
данных Terrasoft CRM, участвующих в репликации. По умолчанию все
таблицы включены и на прием, и на передачу данных. Если опция
[Включена] блока [При приеме] / [При отправке] для таблицы не
установлена, таблица не будет участвовать в приеме / отправке данных.
Опции [Вставка], [Обновление], [Удаление] для точек обмена включены по
умолчанию. Это означает, что если на сервере с записями таблицы будет
выполнена какая-либо из этих операций, все изменения попадут на точку
обмена.
Для сервера рекомендуется снимать опцию [Удаление], установленную по
умолчанию.
Terrasoft CRM
25
Руководство по репликации для MS SQL Server
Отдельные поля таблицы также можно включать и отключать при приеме и
отправке данных на детали [Поля].
На детали [Отношения] содержится полный перечень таблиц, с которыми
связана данная таблица, с указанием внешних ключей.
Закладка [Правила репликации] позволяет определить условия отправки
данных. Для этого следует воспользоваться полем [Редактировать фильтр],
в котором необходимо прописать условия фильтрации в виде SQL-команд,
указав ID ответственного на точке обмена. Протестировать запрос можно с
помощью кнопки [Тест].
4.4.
Отчет о процессе репликации
Автоматическая отправка детальных отчетов о процессе репликации на
заранее указанные учетные записи позволяет администратору Terrasoft
CRM в полной мере контролировать процесс репликации и оперативно
реагировать на возникающие во время передачи данных проблемы.
Настройка
отправки
отчетов
осуществляется
на
закладке
[Администрирование] утилиты «Администратор offline репликации» в блоке
полей [Оповещение репликации] (Рис. 4.5).
Рис. 4.5– Закладка [Администрирование]
26
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
В соответствующих полях необходимо указать имя и почтовый адрес
учетной записи, на которую будет отправляться отчет о репликации. Опция
[прикреплять отчет] отвечает за отправку HTML-файла, содержащего
детальную информацию о процессе репликации.
4.5.
Просмотр истории репликации
Возможность просмотра истории приема / отправки данных позволяет
отследить дату, время и состояние передачи пакетов репликации
(«удачно», «в ожидании», «ошибка»).
Просмотреть историю приема / отправки данных можно на закладке
[История] утилиты «Администратор offline репликации», выбрав в поле
[Точка обмена-получатель] точку-получатель пакета (Рис. 4.6).
Рис. 4.6 – Закладка [История]
Если отправленный пакет данных не был подтвержден до следующей
отправки данных на ту же точку обмена, то репликация с этой точкой
приостанавливается до получения подтверждения. Подтвердить отправку,
в этом случае, можно вручную, воспользовавшись командой контекстного
меню [Подтвердить отправку] блока [История отправки] на закладке
[История]. При «ручном» подтверждении отправки отосланный пакет
считается неудачным.
Terrasoft CRM
27
Руководство по репликации для MS SQL Server
5. Работа с утилитой репликации
Для корректной работы процесса репликации необходимо выработать
регламент обмена и настроить его на сервере и на точках обмена,
используя стандартную для Windows возможность назначения заданий.
Подробнее эта процедура описана в главе 5.2.1.
!
Для версий Terrasoft CRM 3.0.2-3.0.4 обязательно наличие лицензий на продукт
Terrasoft CRM X25 (модуль [X25]) у всех пользователей системы. А для версии
3.1.0-3.1.1 – на модуль [Replication] этого продукта. Лицензирование Terrasoft
CRM описано в документе «Руководство администратора».
Для запуска утилиты репликации достаточно в командной строке рабочей
директории приложения Terrasoft CRM указать путь к исполняемому файлу
«RepOffline.exe» и необходимые параметры репликации (Рис. 5.1).
Рис. 5.1 – Запуск утилиты репликации
При запуске утилиты «RepOffline.exe» текущая версия программы
репликации сравнивается с версией схемы репликации на рабочей базе, а
также с версией схемы репликации базы «cm_empty». В случае
несовпадения версий, выдается сообщение об ошибке, и запуск
«RepOffline.exe» прекращается.
5.1.
Параметры репликации
Информацию о доступных параметрах репликации можно просмотреть в
окне [Справка о программе], открыть которое можно, используя
следующую команду: Replication.exe -?
5.1.1. Прием и отправка данных
[-ro 0] – получить / отправить данные (используется по умолчанию);
[-ro 1] – только отправить;
[-ro 2] – только получить;
[-ro 3] – отправить / получить данные;
[-ro 4] – запросить обновление с главного сервера.
28
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
5.1.2. Работа с точками обмена
[-tc <код точки>] – код точки обмена, для которой будет совершено
определенное действие (если параметр не указан, то по умолчанию
задействованы все указанные точки обмена - ALL).
5.1.3. Операции с буфером
[-bo 1] – очистить буфер (cm_empty);
[-bo 2] – выгрузить последние изменения данных в буфер (cm_empty);
[-bo 3] – выгрузить содержимое буфера в файл «database.zip»;
[-bo 4] – отправить по электронной почте данные буфера в конкретную
точку обмена (обязательно указывать еще и параметр [-tc]).
5.1.4. Операции с файлами
[-fo 1] – загрузить данные из файла в базу данных (обязательно
указывать параметры [-fn] / [-ft]).
[-fo 2] – сохранить базу данных в файл (параметры [-fn] / [-tc]).
Имя файла:
[-fn <имя файла>] – указание имени файла базы данных.
Репликации предусматривает возможность загрузки файлов двух разных
типов: пакет репликации (архив с данными – «database.zip») и пакет
подтверждения (архив с уведомлением о том, что данные были успешно
загружены в удаленной точке репликации – «notify.zip»). Таким образом,
при загрузке данных из файла, обязательно необходимо указать, какой
именно тип данных будет загружаться в базу:
[-ft 0] – пакет репликации (используется по умолчанию, если параметр
не указан).
[-ft 1] – пакет подтверждения.
5.1.5. Операции с файлом настроек
Репликацию можно осуществлять между двумя разными базами данных,
расположенными на одном компьютере. Для этого при инициализации
процесса репликации используется параметр [–sf], при помощи которого
можно указать различные файлы конфигураций («Settings.ini»), в которых
хранятся строки соединения с соответствующими базами на локальной
машине.
[-sf <имя файла настроек>] – указание строки соединения с базой
данных, для которой будет инициирован процесс репликации.
Terrasoft CRM
29
Руководство по репликации для MS SQL Server
!
Данный параметр используется крайне редко, в очень специфических случаях.
Требует глубокого понимания процесса репликации и настройки соединения с
базой данных.
5.1.6. Отчет о процессе репликации
[-rn 1] – отправить отчет администратору системы (используется по
умолчанию, если параметр не указан). На закладке [Администрирование]
утилиты «Администратор offline репликации» в блоке полей [Оповещение
репликации] необходимо указать почтовый адрес администратора.
[-rn 0] – не отправлять отчет.
5.1.7. Справка
[-?] – справка о параметрах программы.
5.2.
Использование утилиты репликации
Работа с утилитой репликации на Центральном сервере и в точках обмена
имеет ряд особенностей. В этой главе рассмотрены:
Работа с утилитой репликации на Центральном сервере.
Работа с утилитой репликации на точках обмена.
!
В версии Terrasoft CRM 3.2 по репликации не передаются таблицы логирования,
пользователи, роли, права на группы таблиц, права на поля таблиц, а также
вхождения пользователя в роль и роли в роль на сервере.
!
Профиль пользователя при использовании репликации необходимо хранить на
сервере, а не локально.
5.2.1. Работа с утилитой репликации на Центральном
сервере
Настроить автоматический прием пакетов с данными на Центральном
сервере можно путем назначения заданий в ОС Windows (меню [Пуск] ->
[Программы] -> [Стандартные] -> [Служебные] -> [Назначенные
задания]). Для этого необходимо создать новую задачу, выбрав для
выполнения программу «RepOffline.exe» и указать для нее параметр -ro 2
(для приема данных) в свойствах задания (Рис. 5.2).
Также необходимо проверить правильность имени и пароля пользователя,
который
создает
задачу.
Пользователь
должен
иметь
права
администратора, обязательно с паролем, который необходимо установить,
нажав на кнопку [Задать пароль…] ([Set password…]).
!
30
Пароль пользователя должен быть аналогичен паролю при входе в Windows.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
На закладке [Расписание] ([Schedule]) нужно установить расписание для
задачи. Интервал для приема данных нужно задавать в зависимости от
того, насколько часто пользователи будут выполнять репликацию
(присылать запросы на обновление, пакеты с данными и подтверждения).
Например, принимать данные можно каждые 15 минут или полчаса. Важно
установить расписание таким образом, чтобы не допустить передачу по
почте очень больших пакетов с данными (в противном случае, почтовый
сервер их может не пропустить), или использовать фрагментирование.
Рис. 5.2 – Назначение задания
5.2.2. Работа с утилитой репликации на точках обмена
После установки утилиты репликации на рабочем столе появятся 4 ярлыка
(Рис. 5.3).
Рис. 5.3 – Ярлыки утилиты репликации
Механизм работы репликации состоит из следующих этапов:
1.
Получение данных с сервера.
Terrasoft CRM
31
Руководство по репликации для MS SQL Server
2.
Отправка данных.
3.
Запрос обновления (если необходимо). В этом случае сервер
принудительно запрашивается на прием данных, и информация
отправляется на все точки обмена, кроме точки, приславшей
запрос.
На Рис. 5.4 изображен пример процесса репликации.
1 – путь отправки сообщения серверу. В почтовый ящик Центрального
сервера поступает запрос с точки обмена на получение новых данных.
Рис. 5.4 – Схема репликации
2 – Центральный сервер раз в 5 минут запрашивает данные с почтового
сервера. Получая сообщение, сервер просматривает его содержимое. Если
в письме содержится запрос на новые данные, то сервер проверяет, с
какого компьютера поступил запрос и формирует пакет с новыми данными
для конкретной точки репликации. Если в письме содержатся
отправленные на сервер новые данные, то он их распаковывает и
помещает в базу данных.
3 – сформированный пакет отправляется на почтовый ящик точки
репликации.
32
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
4 – пакет с новыми данными сохраняется на точке репликации, и данные
попадают в локальную БД.
5.2.2.1. Получение данных с сервера
1.
Необходимо удостовериться, что для точки репликации нет
сформированных пакетов данных. Для этого нужно:
a.
подключиться к сети;
b.
запустить ярлык [Получить пакеты]. В результате
появится окно отображения процесса репликации,
пример которого изображен на Рис. 5.5.
Рис. 5.5 – Процесс репликации
Если сформированных пакетов для точки обмена нет, после того, как
окно перестанет отображаться на экране, можно переходить к
следующему шагу.
2.
Запустить ярлык [Запросить обновление]. В результате, вновь
появится окно отображения процесса репликации (Рис. 5.5). Через
определенное время (в зависимости от загруженности сервера и
очереди запросов к нему) для точки репликации будет
сформирован пакет с новыми данными.
3.
Далее следует запустить ярлык [Получить пакеты]. Пример окна
отображения процесса репликации, которое появится в результате
запуска этого ярлыка, изображен на Рис. 5.6.
Рис. 5.6 – Процесс репликации при получении пакетов
Terrasoft CRM
33
Руководство по репликации для MS SQL Server
При появлении сообщения «Not Responding» процесс репликации
прерывать не следует. После завершения загрузки данных окно
отображения процесса репликации перестанет отображаться на экране.
Если процесс
необходимо:
репликации
по
каким-либо
причинам
был
прерван,
1.
Запустить утилиту «SetOffline.exe».
2.
В открывшемся окне перейти на закладку [Администрирование]
и нажать на кнопку [Очистить…] (Рис. 5.7).
Рис. 5.7 – Очистка базы данных
До нажатия кнопки [Очистить] рядом с ней будет отображаться сообщение:
«База данных занята». После нажатия кнопки появится сообщение «База
данных свободна».
5.2.2.2. Отправка данных на сервер
Для отправки данных на сервер необходимо запустить ярлык [Отправить
всем]. В результате появится окно отображения процесса репликации,
пример которого изображен на Рис. 5.8.
34
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
Рис. 5.8 – Процесс репликации при отправке данных
Как только это окно перестанет отображаться на экране, отправка данных
завершена.
!
При использовании для репликации удаленного почтового ящика (Internet),
перед отправкой данных на сервер необходимо проверить наличие
подключения к Интернету.
5.2.3. Примеры использования репликации
Особенностью процесса offline репликации является то, что для получения
полной картины изменений в базе данных необходимо на каждой точке
обмена выполнять действия "Получить пакеты с данными" и "Отправить
пакеты с данными". Возможны следующие варианты:
1.
2.
С Центрального сервера отправлены данные на все точки. В этом
случае необходимо:
a.
на каждой удаленной точке принять данные.
b.
далее автоматически формируется и отсылается на
почтовый
ящик
Центрального
сервера
пакет
с
подтверждением.
c.
следующим шагом нужно принять данные на Центральном
сервере. В результате все отправки будут подтверждены,
и можно переходить к осуществлению следующей
отправки данных. В противном случае, при попытке
отправить данные в логах можно будет увидеть
сообщение: «Отправка данных в точку <Имя точки>
невозможна. Предыдущая отправка не подтверждена!»
Изменились данные в базе на одной удаленной точке. Для того
чтобы все остальные точки получили эти изменения, необходимо:
Terrasoft CRM
a.
отправить данные с точки обмена на Центральный сервер;
b.
принять данные на Центральном сервере. В результате
автоматически будет сформирован и отправлен на
удаленную точку пакет с подтверждением;
35
Руководство по репликации для MS SQL Server
3.
c.
принять данные на точке обмена для того, чтобы
подтвердить отправку;
d.
повторить все выше перечисленные действия, для того,
чтобы
остальные
точки
получили
измененную
информацию.
На удаленной точке данные не менялись, но пользователю
необходимо получить информацию с Центрального сервера. Для
этого нужно:
a.
отправить на Центральный сервер запрос на обновление;
b.
принять данные на Центральном сервере;
c.
в результате получения на Центральном сервере запроса
на обновление автоматически будет сформирован пакет с
данными и отправлен на почтовый ящик точки обмена, с
которой осуществлялся запрос новых данных;
d.
принять данные на удаленной точке.
e.
на удаленной точке автоматически будет сформирован
пакет с подтверждением и отослан на Центральный
сервер.
f.
для получения пакета на Центральном сервере и
подтверждения отправки нужно принять данные на
Центральном сервере.
При автоматической настройке репликации на Центральном сервере можно
настроить только прием данных, при этом на удаленных точках, помимо
автоматического приема данных, необходимо настроить автоматическую
отправку и запрос на обновление. В этом случае прием данных на
удаленной точке должен производиться чаще, чем остальные действия,
поскольку необходимо осуществлять прием пакетов не только с данными,
но и с подтверждениями.
Второй вариант автоматической настройки - прием и отправка данных на
Центральном сервере, а также прием и отправка на каждой точке.
Обязательно нужно учитывать тот факт, что после каждой отправки
данных необходимо получить пакет с подтверждением. Особенно это
важно для Центрального сервера.
5.3.
Дополнительные возможности репликации
При работе с утилитой репликации
дополнительных возможностей, среди них:
можно
использовать
ряд
Отправка SQL-скриптов.
Создание исполняемых файлов и анализ результатов репликации.
Управление изменением метаданных.
36
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
Пользовательское управление репликацией.
5.3.1. Отправка SQL-скриптов
Существует возможность отправлять не только данные по репликации, но и
SQL-скрипты. Для этого SQL-скрипты следует добавить в таблицу
«rep_ExecutedSQL» в поле «SQL».
Например,
insert into rep_ExecutedSQL(SQL)
values(‘alter
table
tbl_Plugin1
decimal(18,4) not null’)
add
Sale
При добавлении записи автоматически заполняется пароль для запуска
этого скрипта на удаленной точке. Этот пароль берется из текущей точки
(по умолчанию он пустой). Чтобы SQL-скрипт отработал при получении,
необходимо выполнение условий:
1.
Точка, которая прислала скрипт, должна быть в списке точек
обмена на точке-приемнике (закладка [Точки обмена] утилиты
«SetOffline»).
2.
Пароль на выполнение SQL-скрипта должен совпадать с паролем,
указанным при регистрации точек обмена на точке-приемнике
(закладка [Точки обмена] утилиты «SetOffline) для точки, которая
прислала скрипт (Рис. 5.9).
Рис. 5.9 – Редактирование точки обмена
Terrasoft CRM
37
Руководство по репликации для MS SQL Server
!
Если SQL-скрипты выполняют изменения рабочей базы (обновление версии
Terrasoft CRM или любое другое изменение метаданных рабочей базы), то при
получении такого пакета программа Terrasoft CRM должна быть закрыта.
Если же SQL-скрипты выполняют изменения схемы репликации, то при их
получении необходимо закрыть утилиту «SetOffline.exe».
5.3.2. Создание исполняемых файлов репликации
Запуск процесса репликации можно осуществлять с помощью исполняемых
файлов с расширениями <*.cmd> или <*.bat>. Их необходимо создать
самостоятельно. При создании исполняемых файлов можно анализировать
переменную %errorlevel%. Значения этой переменной могут быть
следующими:
0 – были получены пакеты репликации, репликация прошла
успешно;
100 – репликация завершилась с ошибкой;
101 – ошибка при отправке пакета;
102 – последний отправленный пакет репликации не был
подтвержден;
201 – при проверке почты не было
репликации;
обнаружено
пакетов
-1 – неизвестный код.
5.3.3. Управление изменением метаданных
Если при выполнении репликации разрешено изменение метаданных
(создание таблиц, добавление полей и т.п.), следует в любой утилите,
позволяющей отправлять SQL-запросы, (например, Query Analyzer)
запустить хранимую процедуру «rep_PrepareTable».
Например,
exec [rep_PrepareTable] ‘tbl_Acount’,0
где первый параметр – имя таблицы, второй может принимать значения:
«0» (по умолчанию) означает добавление в схему репликации;
«1» - удаление.
5.3.3.1. Особенности подготовки таблицы к репликации
При подготовке таблицы к репликации
изменяется следующим образом:
1.
38
ее
физическая
структура
Добавляются, если отсутствуют, служебные поля: «Build_id»,
«Branch_id»,
«TimeChange»,
«Editor_id»,
«Sender_id»,
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
«TimeReceive». В таблицах так же называть собственные поля
нельзя.
2.
Все поля, которые используются во внешних ключах, изменяют
свое значение с «NOT NULL» на «NULL». Если это ограничение
важно, то его необходимо реализовывать на уровне клиента.
3.
Если таблица зависит от других таблиц, или от нее зависят другие
таблицы, то это должно быть реализовано на уровне внешних
ключей. Если внешний ключ отсутствует, то связь между
таблицами не будет корректно реплицироваться.
4.
Добавляются или пересоздаются (если существуют) два триггера
для offline репликации:
«del_ + имя таблицы»;
«iu_ + имя таблицы».
Собственные триггеры с такими названиями создавать нельзя.
5.
Если таблица отсутствовала в схеме репликации, то она
добавляется в схему репликации с параметрами: «Отправлять все
записи», «Принимать», «Добавлять», «Обновлять» и «Удалять все
записи».
6.
Обновляется информация о внешних ключах и составе полей в
служебных таблицах «rep_Field», «rep_Constraints».
5.3.3.2. Добавление пользовательского поля
Для добавления пользовательского поля
следующую последовательность действий:
необходимо
выполнить
1.
Добавить пользовательское поле на сервере.
2.
Выполнить скрипт по созданию поля физически.
3.
Если поле является внешним ключом, то выполнить также скрипт
по созданию внешнего ключа и индекса. Эти скрипты необходимо
занести в таблицу «rep_ExecutedSQL».
4.
Для включения поля и/или таблицы в схему репликации,
необходимо запустить хранимую процедуру «rep_PrepareTable»:
exec [rep_PrepareTable] N'tbl_Account'
и занести скрипт в таблицу «tbl_ExecutedSQL» (см. пример ниже).
5.
На точках обмена дополнительные действия выполнять не нужно,
так как вся необходимая информация будет передана в процессе
репликации.
Рассмотрим примеры добавления пользовательских полей.
Terrasoft CRM
39
Руководство по репликации для MS SQL Server
Добавление простого поля типа «Строка» в раздел [Контрагенты].
1.
Добавление поля:
if not exists(select * from information_schema.columns
where table_name = lower(N'tbl_Account')
and column_name = lower(N'Name2'))
begin
alter table [tbl_Account]
nvarchar(250)
add [Name2]
end
2.
Занесение скрипта в таблицу «rep_ExecutedSQL»:
insert into [rep_ExecutedSQL] ([SQL])
select 'if not exists(select * from information_schema.columns
where table_name = lower(''tbl_Account'')
and column_name = lower(''Name2''))
begin
alter table [tbl_Account] add [Name2]
nvarchar(250)
end'
Добавление поля типа «Справочник» в раздел [Контрагенты].
1.
Добавление поля:
if not exists(select * from information_schema.columns
where table_name = lower(N'tbl_Account')
and column_name = lower(N'Offering1ID'))
begin
alter table [tbl_Account]
uniqueidentifier
add
[Offering1ID]
end
2.
Занесение скрипта в таблицу «rep_ExecutedSQL» выполняется по
аналогии с предыдущим примером.
3.
Создание внешнего ключа:
if object_id(N'FAccount_Offering1ID') is null
begin
alter
table
[tbl_Account]
[FAccount_Offering1ID]
40
add
constraint
Error! Use the Home tab to apply Заголовок 1 to the text that you want to
appear here.
foreign key ([Offering1ID]) references [tbl_Offering]
([ID])
end
4.
Занесение скрипта в таблицу «rep_ExecutedSQL» выполняется по
аналогии с предыдущим примером.
5.
Создание индекса:
if not exists (select * from [sysindexes]
where [name] = N'IAccount_Offering1ID'
and [id] = object_id(N'tbl_Account'))
begin
create index [IAccount_Offering1ID]
[tbl_Account]([Offering1ID])
on
end
6.
Занесение скрипта в таблицу «rep_ExecutedSQL» выполняется по
аналогии с предыдущим примером.
5.3.4. Пользовательское управление репликацией
В случае необходимости можно добавлять свой код в ход репликации.
до отправки пакета – в хранимую процедуру
«rep_BeforeInsert_database»
после отправки пакета – в хранимую процедуру
«rep_AfterInsert_database»
до приема пакета – в хранимую процедуру
«rep_BeforeSend_Message»
после приема пакета – в хранимую процедуру
«rep_AfterSend_Message»
Например, необходимо выполнить собственные действия над принятыми
данными (таблицы плагина):
alter procedure [rep_AfterSend_Message]
as
begin
update [cm_Table1]
set [Field1] = getdate(),
-Обязательно
для
таблиц,
участвующих
в
репликации
TimeChange = TimeChange,
Build_id = Build_id,
Editor_id = Editor_id,
Sender_id = Sender_id,
TimeReceive = TimeReceive
where [id] < 100
end
Terrasoft CRM
41
Download