2011-01-05 5 views
0

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

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

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

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

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

  • Я запустил SELECT type_desc, порт FROM sys.tcp_endpoints; и SELECT state_desc, role 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

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

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

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

Cheers, Matt

ответ

0

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

Mike.

0

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

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

Смежные вопросы