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

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

У меня есть два 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 я не создавал конечные точки. Пришлось добавлять их вручную.