Назад | Перейти на главную страницу

Ошибка репликации SQL 2005

Я пытаюсь изменить максимальный период хранения транзакций в нашей среде репликации транзакций 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