SQL Server Msmerge_content
Я только что присоединился к моему новому офису в качестве администратора базы данных. Здесь мы используем репликацию слиянием SQL Server. Меня удивляет, что 3 основных таблицы репликации
- Msmergre_contents
- Msmergre_genhistory
- Msmergre_tombstone
Размер Msmergre_contents
вырос до 64 ГБ и нет записей о до 64 миллиардов, и это происходит из-за None
установить как Expiration Period
для подписок.
Теперь я хочу убрать этот стол. Как мы используем Simple
Модель восстановления, когда я написал запрос на удаление этой таблицы, все застряло. У меня нет простоев, чтобы остановить / приостановить процесс репликации.
Может кто-нибудь помочь мне, как минимизировать его размер или удалить половину своих данных?
1 ответ
Не следует напрямую удалять из системных таблиц Merge, что не поддерживается.
Вместо этого правильный способ очистки метаданных из системных таблиц Merge - установить для срока действия подписки значение, отличное от None, по умолчанию это 14 дней. Очистка метаданных будет выполняться при запуске агента слияния, он выполняет процедуру sp_mergemetadataretentioncleanup. Дополнительную информацию об истечении срока подписки и очистке метаданных можно найти в разделе Как репликация слиянием управляет истечением подписки и очисткой метаданных.
Однако, поскольку у вас, скорее всего, есть много метаданных, которые необходимо очистить, я бы постепенно сократил срок хранения. Объяснение этого подхода можно найти здесь:
Надеюсь это поможет.