Репликация SQL Server без удалений? - PullRequest
2 голосов
/ 12 июня 2009

Есть ли способ реплицировать базу данных сервера sql, но не выдавать удаляет подписчикам?

Ответы [ 3 ]

1 голос
/ 12 июня 2009

Вы не упоминаете, какую версию SQL Server вы используете, но Энди Уоррен написал статью о настройке поведения INSERT, UPDATE и DELETE в SQL Server 2005. Вы можете настроить это с помощью графического интерфейса, используя его инструкции:

http://www.sqlservercentral.com/articles/Replication/3202/

1 голос
/ 25 апреля 2012

Соблазнительно «вмешиваться» в нормальную репликацию и «снимать с охраны» удаление хранимых процедур на стороне абонента, но это не оставляет возможности восстановиться после сбоя репликации. Если репликация пытается восстановиться, может потребоваться повторная инициализация, и это приведет к удалению «устаревших» данных, которые агент репликации считает удаленными.

Альтернативой является использование обычной репликации и использование сценария, который генерирует триггеры вставки и обновления для всех таблиц в базе данных подписчиков, которые вставляют / обновляют эти данные в еще одну третью базу данных. Таким образом, третья БД будет собирать все данные, которые когда-либо существовали, вторая БД может повторно инициализировать свою подписку, если это необходимо (когда вы делаете, просто помните, что массовые вставки не вызывают триггер вставки и проверяют новые данные добавьте его в третью БД), и первая БД не должна выполнять дополнительную работу, как триггеры.

0 голосов
/ 12 июня 2009

Сделайте это .... Бросьте статью. Создайте новую хранимую процедуру в соответствующей базе данных, которая имитирует процедуру системного хранилища (sp_del ...) и содержит тот же параметр, но ничего не делает. Снова добавьте статью ... и задайте процедуру удаления хранилища в свойствах статьи для новой созданной хранимой процедуры удаления ....

Или вы можете выбрать Не копировать Удалить утверждения .... Я думаю, что это работает, но я не пробовал.

...