2010-09-30 7 views
2

Я выполняю 12 sql-серверных репликаций, 11 из которых имеют 1 подписку и 1 имеет 2 подписки.Могу ли я просто остановить репликацию SqlServer?

Теперь у меня возникла проблема с очень большим журналом транзакций, который я хочу сжать, но получаю сообщения, которые используются в журнале транзакций.

Я подозреваю, что репликация (публикация, возможно, подписка) вызывает эту проблему.

Теперь единственный способ, которым я нашел прекратить публикацию, делает DROP все ваши публикации, но это нечто большее, чем я хотел: приостановить публикацию.

Есть ли способ сделать это?

+0

Простое или полное восстановление для рассматриваемой БД? –

+0

Я использую полное восстановление – Michel

+0

Я все еще не нашел способ :( – Michel

ответ

1

Приостановка репликации не будет выполнять то, что вы хотите. Когда включена репликация, эти записи журналов, которые представляют интерес для репликации (т. Е. Те, для объектов, которые вы настроили для репликации), не будут помечены как повторно используемые до тех пор, пока они не будут у дистрибьютора. Единственными двумя способами «паузы» репликации было бы остановить либо читателя журнала, либо агента распространения, ни один из которых не получает эти записи журнала дистрибьютору. Чтобы узнать, является ли репликация вашей проблемой, проверьте столбец log_reuse_wait_desc в sys.databases для вашей базы данных и посмотрите, что он говорит. Если это «репликация», репликация - это ваша проблема. :) Если да, то насколько далеко ваш агент чтения журнала?

+0

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

+1

Остановка любого из агентов предотвратит распространение команд от издателя до дистрибьютора. агент-ридер предотвратит распространение издателя → трафик-распространитель. Это имеет побочный эффект, заключающийся в том, что журнал транзакций у издателя растет, поскольку одним из условий для очистки журнальных записей является «обрабатывается ли это агент агента чтения журналов?». Остановка агента распространения остановит дистрибьютора → абонентский трафик. Это менее опасно, но имейте в виду, что ваше удержание у дистрибьютора, если вы приостановите его на большее, чем минимальное удержание, вам придется повторно инициализировать. –

+0

Удивительно, большое вам спасибо. Кажется, очень сложно найти эту информацию в MSDN. –