Я пытаюсь изменить максимальный период хранения транзакций в нашей среде репликации транзакций SQL2005 с 72 часов по умолчанию на 120.
Либо через T-SQL, либо через графический интерфейс я получаю следующее сообщение:
Msg 14294, уровень 16, состояние 1, процедура sp_verify_job_identifiers, строка 25 Укажите @job_id или @job_name для идентификации задания.
T-SQL, который я использую, выглядит следующим образом:
sp_changedistributiondb @database = 'распределение', @property = 'max_distretention', @value = 120
Есть идеи?
Я думаю, что приведенный ниже код - это ошибка. Я получил это, запустив sp_helptext sp_changedistributiondb, а также посмотрел, что sproc вызывает sp_verify_job_identifiers.
Похоже, у changedistributiondb возникли проблемы с обновлением задания агента очистки распространения, когда он запускает sp_update_jobstep:
SELECT @command = 'EXEC dbo.sp_MSdistribution_cleanup @min_distretention = ' +
CONVERT(nvarchar(12), @new_min_distretention) + ', @max_distretention = ' +
CONVERT(nvarchar(12), @max_distretention)
EXEC @retcode = msdb.dbo.sp_update_jobstep @job_name = @agentname, @step_id = 1,
@command = @command
возможно, это задание было удалено или происходит что-то еще странное, в любом случае, вы сможете изменить шаг задания вручную.
РЕДАКТИРОВАТЬ: Агент очистки запускается на сервере с базой данных распространителя. Он удаляет историю репликации и по умолчанию запускается каждые 10 минут. Работа должна выглядеть так:
название: Очистка истории агента: распространение
категория: REPL-Очистка истории
шаги: (1) Запустить агент
база данных: распространение
** команда: ** EXEC dbo.sp_MShistory_cleanup @history_retention = 48