Ошибка репликации SQL 2008 R2: Процесс не смог подключиться к дистрибьютору.

Вопрос или проблема

У меня есть два сервера, работающих на SQL 2008 R2 Standard, каждый с экземпляром под названием “MAIN”. У меня есть небольшая тестовая база данных на основном сервере (одна таблица, 13 строк), которую я хочу реплицировать на втором сервере как доказательство концепции для некоторых более крупных баз данных, которые я хочу реплицировать. Я настроил основной сервер как издателя и распределителя и настроил базу данных для выполнения транзакционной репликации. Я скопировал данные на второй сервер через резервное копирование/восстановление, а не через снимок (что мне придется сделать с более крупными базами данных из-за размера базы данных и ограниченной пропускной способности). Я следовал инструкциям здесь:
http://gnawgnu.blogspot.com/2009/11/sql-2008-transactional-replication-and.html

Теперь на подписчике я захожу в Размножение / Локальные подписки / Щелкаю правой кнопкой мыши / Свойства на моей подписке к базе данных. Статус последней синхронизации показывает статус: “Процесс не смог подключиться к распределителю ‘PRIMARYSERVER\MAIN’.”

Данные реплицируются с основного на вторичный. Любая запись, которую я добавляю на основном, появляется на вторичном сервере в течение нескольких секунд.

Является ли распределитель частью системы снимков, которую я не использую, или это часть транзакционной репликации?

Спасибо,
Ланс

Проверьте, запущены ли службы браузеров на всех экземплярах SQL. Вы используете именованный экземпляр? Также посмотрите, работают ли какие-либо задания ресурсами.

Распределитель – это то, что записывают изменения от издателя и ставит их в очередь перед отправкой подписчику.

По умолчанию используется подписка с принудительной отправкой, при которой не требуется подключение от подписчика к распределителю, так как соединение устанавливается от распределителя к подписчику. Исходя из этого, я предполагаю, что есть брандмауэр, блокирующий либо UDP-порт 1434 на издателе, либо брандмауэр, блокирующий TCP-порт, на котором слушает именованный экземпляр на PRIMARYSERVER.

Ответ или решение

Ошибки, связанные с подключением к Дистрибьютору в репликации SQL 2008 R2, являются распространенной проблемой, и важно разобраться в основной причине данной проблемы. Рассмотрим шаги для диагностики и решения проблемы в вашем случае.

Введение

Ваша конфигурация выглядит следующим образом: у вас есть два сервера под управлением SQL 2008 R2 Standard, с экземплярами, названными "MAIN". На основном сервере настроена репликация данных с использованием транзакционной репликации, и данные с основного сервера успешно синхронизируются со вторичным сервером. Однако статус подписки на вторичном сервере указывает на ошибку подключения к Дистрибьютору.

Проблема

Ошибка "The process could not connect to Distributor ‘PRIMARYSERVER\MAIN’" может указывать на несколько потенциальных проблем, включая настройки сети, параметры SQL Server или вопросы конфигурации.

Решение

  1. Проверка службы SQL Server Browser:

    • Убедитесь, что служба SQL Server Browser запущена на сервере "PRIMARYSERVER". Эта служба помогает обнаруживать экземпляры SQL Server с именем, что может быть критично в рамках отношений между Дистрибьютором и подписчиком.
  2. Имя экземпляра:

    • Убедитесь, что вы используете правильное имя экземпляра в настройках. Для именованных экземпляров это должно быть указано в формате PRIMARYSERVER\MAIN.
  3. Проверка заданий агента SQL Server:

    • Просмотр настроек и состояние запланированных заданий SQL Server Agent. Убедитесь, что задания, связанные с репликацией, запущены и работают корректно.
  4. Сетевые настройки и фаервол:

    • Если у вас используется фаервол, проверьте, открыты ли необходимые порты. Для транзакционной репликации обычно требуются:
      • UDP порт 1434 для SQL Server Browser.
      • TCP порт – это может быть 1433 (по умолчанию) для служб SQL Server или любой другой, настроенный на вашем именованном экземпляре.
    • Попробуйте временно отключить фаервол, чтобы проверить, устраняет ли это проблему с подключением.
  5. Настройка репликации:

    • Проверьте настройки дистрибьютора в SQL Server Management Studio. Убедитесь, что он правильно настроен и что все параметры указывают на корректный экземпляр и базу данных.
  6. Логи SQL Server:

    • Проверьте логи SQL Server на наличие ошибок, связанных с подключением или репликацией. Это может предоставить дополнительные подсказки о корне проблемы.

Заключение

Дистрибьютор в системе репликации играет ключевую роль в переносе данных между основным и вторичным серверами. Несмотря на то, что данные в вашем сценарии уже синхронизируются, важным остается устранение ошибки подключения для обеспечения полной функциональности репликации. Следуя вышеописанным шагам, можно локализовать и устранить серые зоны конфигурации, что позволит стабилизировать процесс репликации в дальнейшем. Если проблема будет сохраняться, рекомендуется обратиться к документации или к сообществу SQL Server для получения дополнительной помощи.

Проведение всех этих шагов должно помочь вам устранить проблему с подключением к Дистрибьютору и улучшить вашу репликационную конфигурацию.

Оцените материал
Добавить комментарий

Капча загружается...