Зеркальное отображение базы данных не работает (SQL Server 2008)
У меня проблема с подключением к базе данных. Есть два сервера базы данных: DBS1, DBS2
DBS1 (основной сервер) DBS2 (зеркальный сервер)
Я соединяюсь со следующей строкой подключения:
Data Source=DBS1;Failover Partner=DBS2;Persist Security Info=True;Initial Catalog=database;User ID=xxx;Password=xxx
Когда я запускаю свою программу на моем компьютере, она работает, но когда я пытаюсь запустить программу на веб-сервере в DMZ, аварийное переключение не работает.
Можете ли вы сказать мне некоторые конфигурации, которые могут быть причиной этого?
1 ответ
Запустите это на вашей основной БД
SELECT DB_NAME(database_id) AS 'DatabaseName'
, mirroring_role_desc
, mirroring_safety_level_desc
, mirroring_state_desc
, mirroring_partner_instance
FROM
sys.database_mirroring WHERE mirroring_guid IS NOT NULL;
Значение, возвращаемое в mirroring_partner_instance, является именем сервера, которое будет использоваться вашим соединением для восстановления после отказа, а не DBS2. DBS2 будет использоваться при первой попытке установить соединение, но не может связаться с DBS1. Если DBS1 доступен, отказоустойчивый партнер будет установлен в кеше из значения сервера sql mirroring_partner_instance.
Я предполагаю, что ваш компьютер может видеть этот сервер, используя имя в mirroring_partner_instance, где, как при работе в DMZ, он не может.
Смотрите здесь для получения дополнительной информации: http://blogs.msdn.com/b/spike/archive/2010/12/15/running-a-database-mirror-setup-with-the-sqlbrowser-service-off-may-produce-unexpected-results.aspx