У меня есть два SQL-сервера, мне нужно отразить базу данных с одного на другой.
Должно быть прямо, два сервера не свидетели.
Конечная точка зеркалирования была создана как на основном сервере, так и на вторичном сервере с 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 но безрезультатно.
Я оставил эту часть работы на последнюю минуту, так как у меня не было проблем с этим в последний раз, и теперь я рискую получить немного неловкое совещание по проекту завтра! Все мысли оценены.
Вы видели, были ли созданы конечные точки. Используйте этот запрос: -
выберите * из sys.tcp_endpoints; выберите * из sys.database_mirroring_endpoints;
Я только что обнаружил, что с помощью SQL 2016 в Windows 2016 я не создавал конечные точки. Пришлось добавлять их вручную.