SQL Server에 연결하는 VB.NET 응용 프로그램이 있습니다.VB.NET 응용 프로그램이 장애 조치 파트너를 사용하지 않습니다.
최근에 서버 장애가 발생할 경우 데이터베이스 미러링을 추가했습니다.
물론 SQL Server는 실패했지만 VB.NET 응용 프로그램은 오류가 발생하지 않습니다.
나는 다음과 같이 내가 연결 문자열을 업데이트 있도록 우리의 코드에서, 장애 조치 파트너가 연결 문자열에 지정되지 않았 음을 발견
sConnectionString = "Data Source=PROD-SQL;Failover Partner=FAILOVER-SQL;Initial Catalog=DB;User ID=****;Password=******;"
SqlClient.SqlConnection
객체가이 연결 문자열을 허용하지만 나는 그것의를 호출 할 때 .Open()
명령은 다음과 같은 오류와 함께 실패합니다
"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)"
는 왜입니까? 우리의 인트라넷 애플 리케이션은 정상적으로 실패했습니다 (DSN없는 연결을 사용하는 클래식 ASP).
장애 조치를 성공적으로 수행하려면 먼저 응용 프로그램이 주 서버에 성공적으로 초기 연결을해야합니까?
감사합니다.
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에 반환되는 값 dB 교장에
음, 오류가 명명 된 파이프가 관련되어 있음을 표시하고 있습니다 [이 경고] (http://msdn.microsoft.com/en-us/library/ms366348 "명명 된 파이프는 TCP/IP 재시도 알고리즘을 사용하지 않기 때문에 대부분의 경우 명명 된 파이프 연결 시도가 미러 된 데이터베이스에 연결하기 전에 시간 초과 될 수 있습니다."(v = sql.105) .aspx) 대신 TCP/IP를 사용하도록 조정할 수 있습니까? –
우선 페일 오버 서버에 연결하기 위해 연결 문자열을 전환하면 정상적으로 작동합니다. TCP/IP를 대신 사용해 보도록 조정하는 방법은 무엇입니까? – Tom
내가 링크 된 페이지를 참조하십시오. 연결 문자열에'Network = dbmssocn;'을 추가하십시오. –