Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выбор механизма (-мов) репликации:2х[MSSQL 2008 R2], данные меняются на обоих.  [new]
vcr
Member

Откуда: СПб
Сообщений: 4
Выбор механизма (-мов) репликации:2х[MSSQL 2008 R2], данные меняются на обоих.

Приветствую всех!

Просьба поучаствовать в решении задачи:
Есть два или более сервера, mssql 2008 r2 полная на обоих.

1-основной-(С1). Основные данные меняются и добавляются на нем.
2-(3-,4-,...) второстепенный(-ые)-(С*). Находится на складе. Обслуживает систему безопасности. Необходима возможность работы Offline.

Изначально система была настроена для работы только с основным сервером и все склады-филиалы отправляли и считывали с него данные.

Ввиду территариальной удаленности складов от сервера нет возможности обеспечить надежный канал связи (даже при наличии 2- каналов были сбои), а оборудование склада обеспечивает контроль доступа на объект => зависимость от интернета неприемлема.

Следовательно, было решено развернуть на складе (С*) - mssql 2008 r2, который по подписке на транзакционную репликацию, получает необходимые статьи (отфильтрованные, относящиеся только к конкретному складу и влияющие на СБ), - это 6 таблиц.
В 3-и из 6-ти таблиц вносятся изменения (в 2-е - INSERT, в 1 (основную) - UPDATE(время въезда, выезда, вес)).
Зеркало не годиться - большие объемы, да и ни к чему лишнюю, и, зачастую, "дсп" инфу на анонсированном объекте хранить.

Эти изменения нужно передавать обратно. Конфликты исключены - "каждый" изменяет "свои" поля.

Вопрос: как настроить обратную репликацию: тоже транзакциями, или сделать однурепликацию но слиянием.
С репликацие раньше дела не имел, потому немного путаю педали. Буду признателен за любую инфу.
Спасибо.
20 июн 13, 00:06    [14457001]     Ответить | Цитировать Сообщить модератору
 Re: Выбор механизма (-мов) репликации:2х[MSSQL 2008 R2], данные меняются на обоих.  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
Если не требуется соблюдать логическую целостность данных, то проще всего будет мерж-репликация с фильтрами. Только надо определиться с уровнем обнаружения конфликтов: на уровне строк или на уровне столбцов.

Если же логическая целостность необходима, то:
а) Транзакционная репликация с обновляемой подпиской;
б) Двунаправленная транзакционная репликация, т.е. каждый сервер будет и издателем и подписчиком;
в) Обратные изменения передавать через Service Broker. В этом случае надо будет озаботиться защитой от зацикливания.
20 июн 13, 01:06    [14457108]     Ответить | Цитировать Сообщить модератору
 Re: Выбор механизма (-мов) репликации:2х[MSSQL 2008 R2], данные меняются на обоих.  [new]
vcr
Member

Откуда: СПб
Сообщений: 4
Спасибо за ответ.
Целостность важна - пробую вариант б)
20 июн 13, 01:13    [14457123]     Ответить | Цитировать Сообщить модератору
 Re: Выбор механизма (-мов) репликации:2х[MSSQL 2008 R2], данные меняются на обоих.  [new]
vcr
Member

Откуда: СПб
Сообщений: 4
"то ли лыжи не едут, то ли я ..."
Выполнявшаяся команда:
drop Table [dbo].[Main]

(Номер последовательности транзакций: 0x00000087000000E5003200000000, идентификатор команды: 14)

Сообщения об ошибках:
Невозможно удалить таблица "dbo.Main", так как она используется для репликации. (Источник: MSSQLServer, номер ошибки: 3724)
Получить справку: http://help/3724
Невозможно удалить таблица "dbo.Main", так как она используется для репликации. (Источник: MSSQLServer, номер ошибки: 3724)
Получить справку: http://help/3724


Стоит оговорится, что таблица [dbo].[Main] забирается и отправляется тоже частично.
Зачем её drop - непонимаю.
20 июн 13, 01:58    [14457161]     Ответить | Цитировать Сообщить модератору
 Re: Выбор механизма (-мов) репликации:2х[MSSQL 2008 R2], данные меняются на обоих.  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
vcr,

Не получится реализовать вариант б пользуясь только настройками по-умолчанию. Последовательность действий должна быть такая:
1. Настроить реплику Центр -> Склады с опцией подписок "инициализировать схему и данные". Инициализация схемы штука непростая, что именно будет передаваться подписчику см. в описании параметра @schema_option процедуры sp_addarticle.
2. На каждом складе настроить реплику Склад -> Центр без опции "инициализировать схему и данные". При такой подписке ее нельзя будет переинициализировать, только пересоздать.

Также необходимо обеспечить, чтобы опция loopback detection всех статей во всех публикациях была включена, иначе будет беда.

Ну и все это хозяйство надо предварительно обкатать в тестовом окружении, иначе тоже будет беда.
20 июн 13, 11:57    [14458806]     Ответить | Цитировать Сообщить модератору
 Re: Выбор механизма (-мов) репликации:2х[MSSQL 2008 R2], данные меняются на обоих.  [new]
vcr
Member

Откуда: СПб
Сообщений: 4
invm,

Да, беда случилась, 2 таблицы я-таки дропнул, хоть и не с самой важной инфой (фото въезда/выезда, и пр. критических событий), но бекап меня спас. Все восстановил, благо сегодня отгрузок не много было.
Бросил ставить эксперименты на живых людях. Перешел на "станок".

По последовательности дейтвий понял, спасибо. Пошел курить BOL, чтоб, хотя бы на бОлльшую часть грабель не наступить.

Кстати, вариант а) также с настройками по-умолчанию работать отказался. Публикация создалась нормально, а подписка не стартует.
Не удалось изменить свойство "alt_snapshot_folder" подписки, 
так как нет записи для данной подписки в таблице MSsubscription_properties. 
Вызовите процедуру sp_addmergepullsubscription_agent перед изменением этого свойства.
Контекст базы данных изменен на "ptp-gates". (.Net SqlClient Data Provider)


но тут я скорее всего с учетными данными что-то наврал. Буду добивать вариант б).
Сначала рабочуую схему получу, а уж потом эксперименты.
Еще раз спасибо за помощь, по результатам отпишусь.
20 июн 13, 13:59    [14459949]     Ответить | Цитировать Сообщить модератору
 Re: Выбор механизма (-мов) репликации:2х[MSSQL 2008 R2], данные меняются на обоих.  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
vcr,

push-подписками гораздо проще управлять.
20 июн 13, 14:11    [14460036]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить