Ошибка зеркального отображения БД SQL Server 2005

Я получаю следующую ошибку при попытке настроить зеркалирование базы данных SQL Server 2005 на моих серверах. Я использую два сервера Win2K3 с SQL 2005 на каждом, причем один из них работает вместе с версией SQL 2000. После восстановления базы данных с помощью NORecovery и настройки конечных точек я сталкиваюсь со следующей ошибкой, когда пытаюсь запустить сеанс зеркального отображения.

TITLE: Database Properties
------------------------------

An error occurred while starting mirroring.

------------------------------
ADDITIONAL INFORMATION:

Alter failed for Database 'TestDB'.  (Microsoft.SqlServer.Smo)

------------------------------

An exception occurred while executing a Transact-SQL statement or 
batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

The server network address "TCP://S-01.ssl.local:5022" can not be reached 
or does not exist. Check the network address name 
and that the ports for the local and remote endpoints are operational. 
(Microsoft SQL Server, Error: 1418)

Также отмечу, что я могу подключиться к порту через Telnet, используя полное имя с обоих серверов.

Обновить

На вторичном сервере запущен SQL Server 2005 как именованный экземпляр на локальном 1434 и по сети как 1433 на IP-адресах, соответствующих используемому полному доменному имени.

[РЕДАКТИРОВАТЬ]

Мне удалось подключиться по Telnet к порту 5022 на обоих серверах.

[РЕШЕНИЕ]

В случае, если вы можете вести журнал и оба порта активны, возможно, что базовая учетная запись, которую использует SQL Server, не является учетной записью домена. На наших серверах учетная запись локальной системы использовалась для входа в службу под именем. Как только это было изменено на учетную запись администратора домена, проблема была решена.


person Middletone    schedule 25.02.2009    source источник
comment
Обязательно ответьте на вопросы о возможности доступа к порту 5022.   -  person Brent Ozar    schedule 13.04.2009
comment
сетевой адрес, на который он жалуется, является основным, зеркальным или свидетелем?   -  person Sander Rijken    schedule 05.05.2009


Ответы (5)


Вы подключили telnet к порту 5022 на каждом сервере? Это порт, который используется зеркальным отображением базы данных, а не порты SQL 1433/1434.

Я бы проверил любые настройки брандмауэра и что службы SQL Server работают под учетными записями домена.

Вы также можете проверить другие моменты в этой статье об устранении неполадок, связанных с зеркалированием:

http://blogs.msdn.com/grahamk/archive/2008/12/08/database-mirroring-error-1418-troubleshooter.aspx

person Nathan Griffiths    schedule 03.03.2009
comment
оба порта доступны через telnet - person Middletone; 15.04.2009

Проверьте журнал SQL на обеих машинах и убедитесь, что SQL Server прослушивает порт 5022, который должна использовать конечная точка зеркального отображения базы данных.

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

person mrdenny    schedule 09.03.2009

В случае, если вы можете вести журнал и оба порта активны, возможно, что базовая учетная запись, которую использует SQL Server, не является учетной записью домена. На наших серверах учетная запись локальной системы использовалась для входа в службу под именем. Как только это было изменено на учетную запись администратора домена, проблема была решена.

person Middletone    schedule 17.05.2009

Поскольку похоже, что ваш вход в систему прошел успешно, а при фактическом включении зеркального отображения он не работает, пробовали ли вы использовать SQL Profiler, чтобы точно узнать, какой оператор не работает?

Не уверен, что вы знакомы с Profiler, но вот учебное пособие (оно для SQL 2000, но в 2005 году инструмент немного изменился).

person SqlRyan    schedule 25.02.2009
comment
Я пользуюсь этим все время. Я посмотрю с этим. - person Middletone; 25.02.2009
comment
ALTER DATABASE [TestDB] SET PARTNER = N'TCP: //S-01.ssl.local: 5022 '- это оператор, выполняемый на первичном сервере, и он завершается. На трассировке другого сервера ничего не отображается, что, похоже, является частью настройки зеркала. Интересно, является ли это частью именованного экземпляра. - person Middletone; 25.02.2009
comment
Вы хотите сказать, что думаете, что это может не работать между именованными экземплярами? Я бы не ожидал, что это будет проблемой, но я полагаю, что это возможно. Настроено ли зеркалирование на нескольких экземплярах на одном сервере? Возможно, вы сможете отразить только один экземпляр, хотя это кажется ограничивающим. - person SqlRyan; 08.03.2009

У меня тоже была эта проблема, но в sql server 2008, работающем в Windows 7 (все экземпляры на одном компьютере),

в моем случае решение:

делал это:

Шаг 1) Брандмауэр вашей системы не должен блокировать порт SQL Server.

Шаг 2) Перейдите в Управление компьютером >> Служба и приложение >> Конфигурация SQL Server 2005 >> Конфигурация сети. Включите протокол TCP / IP. Убедитесь, что порт SQL SERVER по умолчанию 1433.

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

Шаг 3) Перейдите в Управление компьютером >> Служба и приложение >> Конфигурация SQL Server 2005 >> Конфигурация клиента. Включите протокол TCP / IP.

Ссылка: Пинал Дэйв (http://blog.sqlauthority.com/2007/04/22/sql-server-fix-error-1418-microsoft-sql-server-the-server-network-address-неможет-быть-достигнут-или-не-существует-проверьте-имя-сетевого-адреса-и-переиздать-команду/)

а затем это: http://www.youtube.com/watch?v=VHAUtCiN1M4 Ведьма в основном заходит в диспетчер конфигурации SQL Server и для каждого экземпляра устанавливает локального пользователя и пароль.

Только мои два цента, так как кажется, не каждое решение работает для всех ... и я потерял один день, пытаясь понять это

person RagnaRock    schedule 28.10.2011