7

나는 데이터베이스 미러링을 설정 한 다음에 연결이 connectionstring을 사용 :장애 조치 후 미러링 된 SQL Server에 연결하는 방법?

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.) 

나는 장애 조치 파트너 연결 문자열에 지정된으로, ADO.NET 나를 위해 일을 할 것이라고 생각했다. 이제 어떻게해야합니까?

이 질문은 급합니다. 도와 주셔서 정말 감사합니다.

+1

이 증인의 경우, 또는이 수동 장애 조치 구성 인 경우 (당신은 단지 당신이 증인이있는 경우 자동 장애 조치 얻을 경우, 당신은 지정해야합니다. http://technet.microsoft.com/ 참조 en-us/library/ms189852 (SQL.90) .aspx). 또한 주체와 장애 조치 (Failover) 모두에서 데이터베이스의 상태를 확인해야합니다. –

+0

어떤 공급자를 사용하고 있습니까? – gbn

+0

@doug_w : T-SQL로 수동으로 확인했는데 모든 것이 제대로 작동합니다. @gbn : ADO.NET을 사용하고 있습니다 – Vimvq1987

답변

3

다행히도이 문제가 해결되었습니다. ClearPool 메서드를 호출하면됩니다.

SqlConnection.ClearPool(conn); 

이 메서드는 연결 풀을 지 웁니다. 그런 다음 문제는 사라졌습니다. 나는 너무 행복하다.

여러분 모두에게 감사드립니다. : D

+0

예 - 연결 풀로 인해 클러스터와 미러 모두에서 이러한 유형의 문제가 발생할 수 있습니다. – onupdatecascade

+0

풀을 지울시기를 어떻게 결정합니까? try/catch를 사용하여 conn을 여는 시도를 둘러싸고 있으며, 여는 경우 예외가 발생합니다. 또는 수영장을 청소해야 할 필요가있을 때 알려주는 특정 이벤트를 찾았습니까? 또한 연결 문자열에서 풀링을 사용하지 않도록 설정할 수 있지만 성능에 영향을 미칩니다. 연결을 열기 전에 항상 풀을 지우는 것과 같습니다. –

+0

오래 전부터 코드가 더 이상 없지만 올바르게 기억한다면 catch 예외에서 연결 풀을 지 웁니다. 이상적인 솔루션은 아니지만 데모로 저에게 효과적입니다. – Vimvq1987

2

저는 .net 관련 전문가는 아니지만 장애 조치를 처리하기 위해 SQL 네이티브 클라이언트 (SQLNCLI)가 필요합니다. "ado.net"은 SQLOLEDB 일 수 있습니다.

최대 Windows Server 2003 이상은 기본적으로 설치되지 않습니다. 독립 실행 형 또는 SQL 클라이언트 도구 일부이기 때문에 SQLOLEDB를 사용하고있는 것으로 의심됩니다.

+0

자세한 내용을 제공해 주시겠습니까? :). – Vimvq1987

+0

Provider = SQLNCLI를 시도하십시오. conn 문자열. 난 단지 참조를 찾으려면 지금 msdn을 얻을 수 없다 – gbn

0

주체를 종료 한 후 실제로 장애 조치가 주체가되었는지 확인 했습니까? SQL Server에서 자동 장애 조치가 수행되지 않은 경우 미러는 여전히 미러입니다.

+0

SQL Server는 미러가 교장이되었다는 것을 보여 주었다. 나는 T-SQL을 시험해 보았지만 잘 돌아갔다. -s – Vimvq1987

+0

좋아, 약 1 년 전에 페일 오버로 놀아 보았을 때, 나는 그 작은 것들을 놓칠 수있는 것이 얼마나 쉬운 지 알고있다 ... 당신에게 답이 없다. 죄송합니다. – taylonr

관련 문제