Сбой 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, я не создавал конечные точки. Мне пришлось добавить их вручную.