Зеркальное отображение в SQL Server 2008 - PullRequest
0 голосов
/ 05 января 2011

Я пытаюсь настроить зеркалирование между двумя базами данных sql 2008 на разных серверах в моей внутренней сети, как тестовый прогон, прежде чем делать то же самое с двумя действующими серверами в разных местах.

Когда я на самом делепопробуйте переключить зеркалирование на целевой БД (с помощью команды ALTER DATABASE testdb SET PARTNER = N'TCP: // myNetworkAddress: 5022 ') я получаю сообщение об ошибке, сообщающее, что сетевой адрес сервера не может быть достигнут или не существует.Небольшое исследование показывает, что это довольно бесполезное сообщение, которое появляется из-за ряда возможных причин, некоторые из которых не связаны напрямую с существующим или иным сервером.

До сих пор я проверял и пробовалЧтобы решить эту проблему, выполните следующие действия:

  • На целевом сервере я проверил в диспетчере конфигурации SQL, что «Протоколы для SQLEXPRESS» (моя локальная установка по какой-то причине помечена как SQLEXPRESS, дажехотя запрос SERVERPROPERTY («Редакция») показывает, что это 64-разрядная версия Enterprise), и все клиентские протоколы для собственного клиента 10 SQL имеют включенный протокол TCP / IP

  • Я использую служебную программувызвал CurrPorts, чтобы убедиться, что порт TCP / IP с тем же номером, который указан в настройке зеркалирования (5022), открыт и прослушивает на моем компьютере.Netstat проверяет, что обе машины прослушивают этот порт.

  • Я запустил SELECT type_desc, порт FROM sys.tcp_endpoints;и ВЫБЕРИТЕ state_desc, роль FROM sys.database_mirroring_endpoints, чтобы убедиться, что все настроено так, как должно быть.Единственное, что меня смутило, это то, что «роль» возвращает 1 ... не совсем уверен, что это значит.

  • Я попытался правильно подготовить БД.Я взял резервные копии базы данных и файла журнала из главной базы данных и восстановил их в целевой базе данных с помощью NORESTORE.Я попытался включить зеркалирование, оставив их в состоянии NORESTORE и запустив пустое RESTORE ... ни одно из них не имеет большого значения.В качестве теста я также попытался отразить неактивную, почти пустую базу данных, которую я создал, но она тоже не сработала.

  • Я убедился, что ни один сервер не находится за брандмауэром (они оба в одной сети, хотя и на разных машинах)

Я понятия не имею, куда обратиться дальше.Я видел эти две страницы справки по устранению неполадок:

http://msdn.microsoft.com/en-us/library/ms189127.aspx

http://msdn.microsoft.com/en-us/library/aa337361.aspx

И, насколько я могу судить, я прошел через все пункты, чтобыбезрезультатно.

Еще одна вещь, в которой я не уверен, это окно служебных учетных записей в мастере.Для обеих баз данных я ввел имя нашей учетной записи доступа высокого уровня, которое должно иметь полные права администратора для базы данных - я предположил, что это было правильно.

Я не уверен, куда обратитьсярядом, чтобы попытаться устранить эту проблему.С благодарностью приняты предложения.

Приветствия, Мэтт

Ответы [ 2 ]

0 голосов
/ 18 февраля 2014

Ваши сетевые настройки могут быть в порядке. Мы получили довольно неинформативные сообщения об ошибках в MS SQL - возможно, проблема связана с авторизацией, и сервер все еще будет говорить «сетевой адрес не может быть достигнут».

Кстати, как выполняется аутентификация? Служба MSSQL (на сервере server1) должна быть запущена как действительный пользователь БД (на сервере server2 и наоборот), чтобы заставить зеркалирование работать.

0 голосов
/ 07 января 2011

Я думаю, что SQL Express может выступать только в качестве следящего сервера с этой функцией SQL, хотя вы можете получить больший пробег на ServerFault.

Mike.

...