Сбой SQL Mirror при настройке

У меня есть два сервера SQL, мне нужно отразить базу данных от одного к другому.

Должно быть прямо, двух серверов нет свидетелей.

  • Оба сервера работают под управлением одной версии MS SQL Std 2014
  • Все службы SQL работают под одной учетной записью домена
  • Учетная запись домена является локальным администратором в операционных системах SQL Server
  • Учетная запись домена SysAdmin и общедоступные роли на серверах SQL
  • Резервное копирование и восстановление БД с первичного на вторичный сервер, БД работает на вторичном сервере.
  • Пути к папкам идентичны на обоих серверах. Экземпляр SQL установлен на D: на обоих
  • Брандмауэр Windows (для целей тестирования) имеет правило для разблокировки всех портов TCP в обоих направлениях на обоих серверах.
  • Обе базы данных находятся в модели полного восстановления, уровень совместимости равен 110 (SQL Server 2012).

Конечная точка зеркального отображения была создана на основном и вторичном серверах с t-sql следующим образом:

CREATE ENDPOINT [Mirror]
STATE = STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL )
FOR DATABASE_MIRRORING(ROLE = ALL, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = DISABLED)
GO

Я попытался изменить следующие ключи

ROLE = PARTNER
ENCRYPTION = REQUIRED ALGORITHM RC4

Все дают одинаковый результат.

Сообщение на главном сервере [CRM-2016-SQL-W], идентичное этому

Зачеркнутый адрес сервера: TCP://CRM-2016-SQL-W:5022. Таким образом, основной сервер жалуется, что он не может связаться с локальной конечной точкой зеркала (насколько я понимаю).

Telnet из всех мест (принцип SQL/ вторичный SQL и другие места в сети) показывают, что порт 5022 доступен на обоих серверах.

При удалении конечной точки порт 5022 отклоняет соединения.

Я проверил это с портом 7022 на обоих концах и получил те же результаты.

Журналы SQL сервера из вторичного шоу:

Database mirroring connection error 2 'Connection attempt failed with error: '10060(A connection attempt failed because the connected party did not properly respond after a period of time<c/> or established connection failed because connected host has failed to respond.)'.' for 'TCP://CRM-2016-SQL-W.ncp.co.uk:5022'.

Логи с основного при этом просто показывают:

The database Mirroring endpoint has stopped listening for connections
The database Mirroring endpoint is now listening for connections
Service is listening on ['any' <ipv4>5022]
Service is listening on ['any' <ipv6>5022]

Я следовал инструкциям, описанным здесь: https://stackoverflow.com/questions/11032937/how-to-resolve-error-1418-in-sql-server-while-mirroring while-mirroring безрезультатно.

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

1 ответ

Вы видели, были ли созданы конечные точки. Используйте этот запрос:-

выберите * из sys.tcp_endpoints; выберите * из sys.database_mirroring_endpoints;

Я обнаружил, что используя SQL 2016 в Windows 2016, я не создавал конечные точки. Мне пришлось добавить их вручную.

Другие вопросы по тегам