2009-11-02 2 views
0

SQL Server 2008 클러스터 (TestMachine1 -> 컴퓨터 이름)를 만들었으며 LAN의 모든 n/w 인스턴스를 검색하기 위해 C# 프로그램을 작성했습니다.sql2k8 클러스터의 문제점은 무엇입니까 ?? SMO가 클러스터 Machine ...에서 Network 인스턴스를 가져 오지 못하고 있습니까?

(SQLCluster가 설치되어있는) TestMachine1에서 exe를 실행할 때 instances.when이 표시되지 않습니다. Debug는 Null을 데이터 테이블 행에 가져옵니다.

TestMachine2 (같은 n/w하지만 컴퓨터에서 독립 실행 형 설치가있는 독립 실행 형 컴퓨터)에서 실행할 때 동일한 exe가 표시됩니까 ??

내가 클러스터에서 무엇이 잘못 되었습니까?

 DataTable dt1 = SmoApplication.EnumAvailableSqlServers(false); 
     Console.WriteLine("Total Rows in DataTable " + dt1.Rows.Count); 
     foreach (DataRow dr in dt1.Rows) 
     { 
      foreach (DataColumn dc in dt1.Columns) 
      { 
       Console.WriteLine("{0} = {1}", dc.ColumnName, dr[dc]); 
      } 
      Console.WriteLine("============================"); 
     } 

     Console.Read(); 

클러스터 설정을위한 나는 비 클러스터로 "데이터 테이블 = 0에서 총 행을"점점 오전 : 클러스터가 성공적으로 여기

코드는 ... 오류도 오류없이 설치된 SQL없이 설치 기계 나는 "7"을 얻고있다. 무엇이 잘못 되었습니까 ???

도움을 주시면 대단히 감사하겠습니다.

답변

1

클러스터 인스턴스는 클러스터를 구성하는 노드가 아닌 가상 리소스 이름에 응답합니다.

+0

야후. 네트워크에서 그는 코드에 따라 세부 정보를 표시해야합니다 ?? 하지만 아무것도 제공하지 않습니다 – Cute

+0

방화벽이 UDP 인스턴스 이름 검색 패킷을 차단할 수 있습니다. http://blogs.msdn.com/sql_protocols/archive/2006/02/27/unable-to-connect-to-a-sql-server를 참조하십시오. -named-instance-on-a-cluster.aspx –

+0

방화벽을 해제합니다. 그러면 모든 포트가 열립니다. ?? – Cute

1

레무스가 얻는 것처럼, 로컬에만 설치된 SQL을 찾을 것입니다. 기본적으로 로컬 호스트 이름은 사용하지 않았기 때문에 이름을 지정하고 로컬 호스트 이름 아래에서 SQL 클러스터가 응답하지 않습니다. 그래서 당신은 .. 레지스트리에서 가상 클러스터 이름을 찾을 수 있습니다 ... 직접 가상 이름에 연결해야

HKLM : 마이크로 소프트 \ Microsoft SQL Server를 \ 인스턴스 이름 \ SQL

\ \ 소프트웨어 당신이 경우 기본 설치 한, 당신이 MSSQL10_50.MSSQLSERVER는 Microsoft \ 마이크로 소프트 SQL 서버 \ HKEY_LOCAL_MACHINE \ 소프트웨어까지 가면

(버전에 따라) 같은 것을 말할 것이다 볼 수

당신은 볼 수 있습니다 해당 인스턴스 이름 (이 경우에는 MSSQL10_50.MSSQLSERVER)이 호출하는 노드가 있습니다. 클러스터 이름의 값을 갖는 클러스터 이름의 키를 가지고 있습니다 ... 클러스터를 ... 찾을 수 있습니다

편집 : 난 그냥 PowerShell의 몇 가지 테스트 ...

[System.Reflection.Assembly했다 ] :: LoadWithPartialName ("Microsoft.SqlServer.SMO") | 아웃 널

microsoft.sqlserver.management.smo.smoapplication] :: enumavailablesqlservers (거짓 $)

(PS, 유래 이상한되고 있기 때문에 위의 [없는) 내가 잔뜩 가지고 있었다 무작위 정렬 ... MSDN 문서 상태

인스턴스 SQL Server를 실행하는 컴퓨터는 EnumAvailableSqlServers 메서드에 대한 응답을시기 적절하게받지 못할 수 있습니다. 반환 된 목록에 네트워크의 사용 가능한 SQL Server 인스턴스가 모두 표시되지 않을 수 있습니다. 이후 시도에서 EnumAvailableSqlServers 메서드를 호출하면 네트워크에서 더 많은 서버가 표시 될 수 있습니다.방금 최종 사용자에게 결과를 표시하려고하지 않는 한 내가 말을

http://msdn.microsoft.com/en-us/library/ms210334.aspx

, 난 아마 내가 클러스터 이름을 찾기 위해 사용 wouldnt가 ...이 방법을 사용 wouldnt한다.

관련 문제