» » » Большой размер БД Distribution MS SQL Server
Лента новостей

Большой размер БД Distribution MS SQL Server

Категория: Microsoft / SQL Просмотров: 47
Иногда приходится сталкиваться с ситуацией, когда в Microsoft SQL Server с настроенной репликацией, начинает расти база данных distribution. В том что БД начинает расти после создания задания репликации ничего плохого нет. В базе данных distribution хранятся метаданные и данные журнала для всех типов репликации, а также транзакции для репликации транзакций. Однако есть спустя несколько недель после создания заданий репликации база данных продолжает расти это тревожный сигнал.Скорее всего не выполняется или выполняется некорректно задание по очистке базы данных. В момент создания репликации создается задание (job): Distribution clean up: distribution. В этой задании по расписанию запускается хранимая процедура: dbo.sp_MSdistribution_cleanup. Эта хранимая процедура выполняет очистку базы данных distribution.

Для выяснения причин, прежде всего стоит проверить:
1. Было ли создано задание по очистке базы данных distribution
2. Включено ли это задание
3. Проверить журнал выполнения задания на наличие ошибок, одной из частых ошибок является ситуация при которой учетная запись сотрудника из под которой выполняется задание заблокирована, либо имеет недостаточно прав на базу данных distribution.
4. Не настроено или отсутствует расписание запуска задания очистки
Если проблем в задании не обнаружено, то стоит проверить какой результат возвращает команда запускаемая в задании.

Для этого создайте новый запрос (New Query) и запустите скрипт:

USE [distribution]
GO

EXEC dbo.sp_MSdistribution_cleanup @min_distretention = 0, @max_distretention = 72

Где, 72 - это продолжительность хранения метаданных и данных журнала репликаций. Обычно 72 часа, достаточно, но у вас могут быть свои мысли на этой счет.

Если база данных distribution не очищалась длительное время, то ожидание результата выполнения данной команды может затянуться на несколько часов. Это зависит от общего размера БД, времени прошедшего с момента последней очистки и производительности сервера.
В особо тяжелых случаях, например как этот: Удаление устаревших записей может затянуться не просто на часы, а на дни или даже недели. Дело в сильно разросшейся таблице MSrepl_commands и MSrepl_transactions. Так, на примере ниже количество записей почти 1,8 миллиарда.

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

USE distribution
GO
DECLARE @rowcountCom int = 1000000
DECLARE @rowcountTr int = 10000

DELETE TOP(@rowcountCom) MSrepl_commands WITH (PAGLOCK) 
FROM MSrepl_commands 
WITH (INDEX(ucMSrepl_commands)) 

DELETE TOP(@rowcountTr) MSrepl_transactions WITH (PAGLOCK) 
FROM MSrepl_transactions 
WITH (INDEX(ucMSrepl_transactions)) 


значение для @rowcountCom и @rowcountTr укажите не более чем 90% записей. которые у вас указаны в этих таблицах.

После того кактаблицы будут очищены от устаревших данных, можно выполнить финальную очистку при помощи команды:

EXEC dbo.sp_MSdistribution_cleanup @min_distretention = 0, @max_distretention = 72
дата: 6-11-2017, 02:47
автор: publisher
количество просмотров: 47
+ 0 -
Имя:*
E-Mail:
Введите код: *
Кликните на изображение чтобы обновить код, если он неразборчив
Привет, Гость
Выполнить вход через социальные сети:
Новости партнеров

Exchange Server: версии билдов и даты релизов

Список актуальных обновлений для Microsoft Exchange доступен по адресу: ...

Экспорт — импорт контактов через CSV файл

Наверняка многие сталкивались с задачей массового создание большого количества контактов в ...

Конвертирование почтовых ящиков

User Mailbox (или пользовательский почтовый ящик) — обычный почтовый ящик пользователя. ...

Вышел Microsoft Exchange Server 2010 Service Pack 3

Официально выпущен и доступен для скачивания Exchange Server 2010 Service Pack 3. При переходе на ...

Скрипт для получения информации о версии Exchange и установленных Rollup Update

Обнаружил, на мой взгляд,  интересный скрипт, для получения информации о версии Exchange и ...

Microsoft Exchange Server 2013: Design, Deploy and Deliver an Enterprise Messaging Solution

Название: Microsoft Exchange Server 2013: Design, Deploy and Deliver an Enterprise Messaging ...

Обновления Exchange 2010 SP2 RU5 и Exchange 2010 SP1 RU8

11 декабря Корпорация Майкрософт выпустила набор обновлений  для Exchange 2010 SP1 и SP2, а также ...

Exchange 2010 Service Pack 3. Когда и что ожидать

Выпуск Microsoft Exchange Server 2010 SP3 анонсирован на первую половину 2013 года. В качестве ...