Как соединиться с зеркальным SQL Server после обработки отказа?

Я настроил зеркальное отражение базы данных и затем использовал это connectionstring соединяться с ним:

    Data Source={0};Failover Partner={1};Initial Catalog=AdventureWorks;
    Integrated Security=True;

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

    System.Data.SqlClient.SqlException: A transport-level error has 
occurred when sending the request to the server. (provider: Shared Memory 
Provider, error: 0 - No process is on the other end of the pipe.)

Я думал, что с Failover Partner указал в строке подключения, ADO.NET сделает работу для меня. Таким образом, что я должен сделать теперь?

6
задан halfer 5 July 2019 в 18:37
поделиться

3 ответа

К счастью, я решил эту проблему. Все, что мне нужно сделать, это вызвать метод ClearPool:

SqlConnection.ClearPool(conn);

Этот метод очистит пул соединений. Тогда проблема ушла. Я так доволен этим.

Спасибо вам всем за вашу поддержку. : D

4
ответ дан 17 December 2019 в 02:28
поделиться

Я не эксперт в вопросах .net, но вам нужен собственный клиент SQL (SQLNCLI) для обработки аварийного переключения. «ado.net» может быть SQLOLEDB

По крайней мере, до Windows Server 2003 он не установлен по умолчанию. Это либо автономный инструмент, либо часть клиентских инструментов SQL, поэтому я подозреваю, что вы используете SQLOLEDB

2
ответ дан 17 December 2019 в 02:28
поделиться

После завершения работы главного сервера вы проверили, действительно ли аварийное переключение стало главным? Если на сервере Sql не было автоматического переключения при отказе, то зеркало все равно остается зеркалом.

0
ответ дан 17 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: