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

Репликация SQL 2005 не работает

Я нахожусь в процессе создания репликации между 2 удаленными серверами, сервер 1 - распространитель и издатель, а сервер 2 - подписка.

  1. Сервер 1 Windows 2003 сервер 192.168.10.1 подключен через vpn SQL 2005 domain1.local

  2. сервер 2 Windows 2003 сервер 192.168.10.1 подключен через vpn SQL 2005 domain2.local

Когда я настраивал репликацию, все выглядело нормально, пока я не посмотрел на статус синхронизации и не сказал:

Агент не может быть запущен Исключительная ситуация при выполнении инструкции transact-sql или пакетного запроса ошибки sqlserveragent для выполнения задания server1-username бла-бла-бла

От пользователя sa отказано, потому что задание уже выполняется по запросу пользователя sa изменил контекст базы данных на техническую ошибку 22022

Я очистил задания в агенте сервера, а также перезапустил службу.

Может ли это быть связано с аутентификацией между двумя ненадежными доменами, поскольку я могу просматривать и даже контролировать каждый сервер sql через студию SQL, но просто не настраивать репликацию?

Я не могу найти, в чем проблема, любая помощь будет очень признательна.

Kraig

Вам нужно дождаться завершения задания синхронизации. Проверьте это с помощью Просмотр статуса агента моментальных снимков. Он автоматически запускается после создания репликации

Скорее всего, это проблема с разрешениями, когда агент распространения пытается записать данные удаленному подписчику, но не может.

Вообще говоря, агенты репликации - это просто приложения, внешние по отношению к серверу SQL: snapshot.exe, logread.exe, distrib.exe. Учетная запись Windows используется для запуска каждого из этих приложений, и вы можете настроить, какая учетная запись в мастерах репликации (часто это будет учетная запись агента SQL). Разрешения, необходимые для каждого агента, примерно следующие:

  • Snapshot.exe - подключиться к издателю, прочитать базу данных публикации, записать в заранее определенное местоположение моментального снимка
  • Logread.exe - подключиться к издателю и распространителю, записать в базу данных распространителя,
  • Distrib.exe - чтение из заранее определенного места для моментального снимка, чтение из базы данных распространителя, запись в базу данных подписчика

Некоторые из требуемых разрешений - это доступ к SQL-серверу, а другие - разрешения на уровне папки Windows для расположения моментального снимка.

Если вы можете включить полное сообщение об ошибке, я могу подтвердить и соответствующим образом отредактирую свой ответ.