Я пытаюсь выполнить то, что, как я думал, будет очень простым процессом - зеркальное отображение базы данных между двумя серверами MSSQL 2008 R2 в одном домене.
Оба сервера настроены одинаково, и у меня есть база данных под названием «архив», которую я хотел бы отразить. Я сделал полную резервную копию базы данных и журналов на узле 1 (основной) и восстановил ее на узле 2 с помощью опции WITH NORECOVERY. База данных отображается на узле 2 (зеркало) с (In Recovery)
указан рядом с ним в графическом интерфейсе.
Я запускаю мастер зеркалирования на основном сервере и настраиваю безопасность. Оба процесса SQL на обоих настроены для запуска с одной и той же учетной записью службы домена. DOMAIN\SQLService
и DOMAIN\SQLService
учетная запись существует как логин на каждом сервере. Выполняя шаги по настройке безопасности, я выбираю, что мне не нужен следящий сервер (во всяком случае, пока нет), и настраивает конечные точки. Наконец, когда он спрашивает, какую учетную запись я хочу использовать для подключения к каждой, я ввожу DOMAIN\SQLService
учетная запись.
В DOMAIN\SQLService
устанавливается как локальный администратор каждого узла с использованием политики домена.
Однако когда я выбираю «Начать зеркальное отображение», я получаю следующую ошибку на Принципале:
Database mirroring connection error 4 'An error occurred while receiving data: '64(failed to retrieve text for this error. Reason: 15105)'.' for 'TCP://node-b.fqdn.example.com:5022'.
и на зеркале:
Database Mirroring login attempt failed with error: 'Connection handshake failed. An OS call failed: (8009030c) 0x8009030c(failed to retrieve text for this error. Reason: 15105). State 67.'. [CLIENT: 10.13.111.31]
10.13.111.31 - это узел B.
Прочитав всю документацию, я пробовал несколько вещей и всегда получал такой результат. Я думал, что это будет довольно простой процесс для довольно стандартной настройки, но, видимо, это сложно.
Есть идеи, что я делаю не так?
Хорошо, после долгого сна, проверки, кофе и повторной проверки, я думаю, что нашел решение.
DNS.
На DNS-сервере контроллера домена было несколько устаревших записей A, из-за которых Node-B не понимал, что именно указывает. Я исправил DNS, чтобы он отражал реальность, и нажал «вперед», и… Это сработало! Ну, на самом деле он приостановлен, потому что у меня закончилось дисковое пространство на узле B, но в остальном все выглядит хорошо.