Сбой репликации SQL Server 2008 с: процесс не может выполнить 'sp_replcmds' - PullRequest
26 голосов
/ 27 апреля 2010

У меня проблема с репликацией SQL, которую я не могу исправить. Я занимаюсь восстановлением двух БД из производственной резервной копии, а затем установкой репликации между ними. Репликация, кажется, настроена без каких-либо ошибок, но когда я смотрю на статус, я вижу сообщения об ошибках как это:

Сообщения об ошибках:

Процесс не может быть выполнен 'sp_replcmds' на 'MYSERVER1'. Получить помощь: http://help/MSSQL_REPL20011

Невозможно выполнить как базу данных основной, потому что основной "дбо" не существует, этот тип принципала не может быть подражать, или вы не есть разрешение. (Источник: MSSQLServer, Номер ошибки: 15517) Получите помощь: http://help/15517

Процесс не смог выполнить 'sp_replcmds' для 'MYSERVER1'. Получить помощь: http://help/MSSQL_REPL22037

Что это значит?

Ответы [ 5 ]

58 голосов
/ 30 мая 2012

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

21 голосов
/ 27 апреля 2010

'dbo' отображается на неверный логин. Если вы запустите select suser_sname(owner_sid) from sys.databases, вы получите NULL для этих двух БД. Вам необходимо изменить 'dbo' на действительный логин. Запустите на обеих базах данных:

ALTER AUTHORIZATION ON DATABASE::[<dbname>] TO [sa]
1 голос
/ 02 января 2017

enter image description here

Самый простой способ исправить ошибку - использовать ALTER AUTHORIZATION в базах данных, которые имеют NULL-логин для dbo.

1 голос
/ 26 марта 2014

Я обнаружил, что если вы используете фильтры статей, вы должны использовать уникальное имя фильтра. Как только я изменил имя фильтра, чтобы оно было уникальным для всех статей, эта проблема была исправлена.

0 голосов
/ 17 октября 2016

В нашем случае учетная запись службы, на которой работал экземпляр SQL, заблокирована. После разблокировки мы остановили / перезапустили задания агента LogReader SQL, после чего все пошло снова.

...