읽기 전용 응용 프로그램 의도를 가진 SSMS 등록 서버


10

우리는 AlwaysOn으로 SQL Server 2014 POC 테스트를 진행하고 있으며 사용자 중 한 명이 로컬 서버 그룹에 등록 된 서버를 사용하여 ReadOnly Intent를 사용하여 SSMS 구성을 저장하는 방법에 대해 물었습니다 . 이렇게하면 ReadOnly 복제본 에 액세스해야 할 때마다 별칭 이름을 입력 할 필요가 없습니다 .

불행히도 등록 된 서버에는 일반 객체 탐색기와 달리 ApplicationIntent 옵션을 추가 할 수있는 옵션이 없습니다.

RegSrvr.xml의 연결 문자열을 변경하는 방법에 대해 Microsoft 의이 기사를 보았습니다.

https://connect.microsoft.com/SQLServer/feedback/details/786323/ssms-sql-server-management-studio-2012-missing-connection-properties-for-availability-groups

나는 그들의 제안을 시도했지만 등록 된 서버의 로컬 서버를 통해 연결할 때 올바른 복제본 노드에 연결하지 않았습니다.

읽기 전용의 연결 창에서 옵션> 추가 연결 매개 변수를 사용할 때 옵션은 개체 탐색기에서 잘 작동합니다. 그러나 연결 변경 내용은 저장되지 않습니다.

누구든지 SSMS를 사용하여 ReadOnly Intent 속성으로 구성을 저장하는 다른 솔루션을 알고 있습니까? 도움을 주셔서 감사합니다.

답변:


3

SQL Management Studio (2016 이전 버전)

불행히도 SQL Management Studio에서 응용 프로그램 의도를 사용하는 데 다소 어려움이 있습니다.

ReadOnly 의도로 수동으로 연결하려면 개체 탐색기에서 서버에 연결 대화 상자를 표시 한 후 다음 사항을 기억해야합니다.

  1. 옵션 >>을 클릭하십시오 .
  2. 추가 연결 매개 변수 탭으로 이동 하십시오.
  3. 추가 매개 변수를 ApplicationIntent = ReadOnly로 입력하십시오.
  4. (참고 : 사용자는 추가 연결 매개 변수를 입력 한 후 옵션 << 단추를 클릭하지 않아야합니다. 그렇지 않으면 매개 변수가 손실됩니다.)
  5. 연결을 클릭 하십시오 .
  6. Object Explorer 보기 에서 원하는 데이터베이스를 마우스 오른쪽 버튼으로 클릭 하고 New Query 를 선택하여 아래 3 번 경고에 빠지지 않도록 항상 쿼리 창을 시작 하십시오.

적용되는주의 사항은 다음과 같습니다.

  1. SQL Management Studio가 읽기 전용 의도로 연결되도록 할 수 있지만 등록 된 서버에 연결이 추가 될 때 추가 연결 매개 변수를 저장하지 않습니다.
  2. 응용 프로그램 의도를 추가하기 위해 RegSrvr.xml 파일에서 로컬로 등록 된 서버를 수동으로 편집 할 때의 동작은 매우 일치하지 않으며 GUI를 통해 변경이 이루어질 때마다 덮어 쓰기되어이 해결 방법을 신뢰할 수 없습니다.
  3. 쿼리 창을 열기 전에 Always On 데이터베이스를 선택해야합니다. 그렇지 않으면 연결이 기본 서버로 라우팅됩니다. 쿼리 창을 Always On이 아닌 데이터베이스로 이미 연 후 쿼리 창의 드롭 다운을 사용하여 데이터베이스를 선택하려고하면 오류 대화 상자가 나타납니다. 쿼리 창을 Always On 이외의 데이터베이스로 이미 연 후 USE 문을 사용하여 데이터베이스를 Always On 데이터베이스로 변경하려고하면 SQL 쿼리를 실행하려고 할 때 결과는 다음과 같습니다.
      Msg 979, Level 14, State 1, Line 1
      The target database ('AlwaysOnDatabase') is in an availability group 
      and currently does not allow read only connections. For more 
      information about application intent, see SQL Server Books Online.

SQL Management Studio (2016 버전 이상)

SQL Server Management Studio 2016 이상은 이전 버전과 동일한 6 단계를 사용하여 읽기 전용 응용 프로그램 의도로 연결할 수 있으며 추가 연결 매개 변수를 저장합니다. 여전히 몇 가지주의 사항이 있습니다.

  1. 개체 탐색기보기는 AlwaysOn 데이터베이스의 테이블이나 다른 개체를 열거하지 않습니다. 확장하려고하면 액세스 거부 메시지가 나타납니다.
  2. 동일한 리스너에 대한 읽기 전용 및 비 읽기 전용 연결을 동시에 열 수 없습니다.
  3. 데이터베이스의 객체 이름에 대한 Intellisense가 작동하지 않습니다. (이상하게도 , 마우스 오른쪽 클릭 메뉴 에서 편집기의 디자인 쿼리를 사용하여 시작할 수있는 쿼리 디자이너에서 개체가 잘 열거 됩니다.)
  4. 이전 버전의 경고에 대한 경고 3이 여전히 적용됩니다.

타사 제품

LinqPad 는 연결을 저장할 때 응용 프로그램 의도 및 데이터베이스를 포함한 전체 연결 문자열을 저장하므로 Always On 데이터베이스에 대해 읽기 전용 쿼리를 수행하는 데 유용한 옵션이 될 수 있습니다.


0

당신은 퍼즐의 중요한 부분을 잃어 버렸거나 적어도 당신의 질문에서 그것을 보지 못했습니다 :

ApplicationIntent=readonly방정식의 절반입니다. 또한 매개 변수를 전달해야합니다 MultiSubnetFailover=True.

예를 들어, 추가 연결 매개 변수 탭에서 다음을 입력하려고합니다.

MultiSubnetFailover=True;ApplicationIntent=readonly;

고마워 토니 그러나 이것은 내가 겪고있는 문제가 아닙니다.
DBAuser 2016 년


0

구성 파일을 만든 다음 SSMS에 필요한 등록 서버를 자동으로 만들 수 있습니까? MSSQLTips 기사에서 언급 한 것처럼 :

SSMS (SQL Server Management Studio)에서 서버 등록 및 유지 관리 자동화


안녕하세요 jyao, 답변 주셔서 감사합니다. 이 기사에서 관심있는 powershell 스크립트를 게시했지만 불행히도 ApplicationIntent 속성에서 작동하지 않습니다. PS를 다음과 같이 사용하도록 변경했습니다. New-Item -Name $ (encode-sqlname $ g.value) -path "sqlserver : \ SQLRegistration \ $ ($ choice) \ $ ($ g.parentfolder)"-ItemType $ g .type -Value ( "서버 = $ regsrv; 통합 보안 = true; 초기 카탈로그 = dbname; ApplicationIntent = ReadOnly"); 불운! 이것이 효과가 있다면, 이것을 옵션으로 사용하는 것을 기쁘게 생각합니다. 다시 감사합니다.
DBAuser 2016

0

이것은 등록 된 서버와 함께 사용할 때 SQL 2016 SSMS에서 수정되었습니다. 로컬 서버 그룹의 일부로 ReadOnly Intent 연결을 등록하고 나중에 사용하기 위해 저장된 연결을 열 수있었습니다. 도움을 주셔서 감사합니다.


0

나는 말할 수는 없지만 DBAUser의 답변에 추가하고 있습니다.

등록 된 서버 영역 내에서 연결을 설정할 때 GUI에 응용 프로그램 의도를 추가하는 옵션을 볼 수 없습니다.

객체 탐색기를 사용하여 연결하고 (을 사용하여 Data Source=<Listener>;Initial Catalog=<Database>;ApplicationIntent=ReadOnly) 연결되면 서버를 등록해야했습니다.

또는 Initial Catalog=<Database>;ApplicationIntent=ReadOnly.regsrvr 파일의 연결 문자열에 추가 하십시오.


등록 된 서버에서 로컬 서버 그룹의 일부로이를 보려면 객체 탐색기에 readOnly 서버를 등록해야합니다. 개체 탐색기에서 응용 프로그램 의도로 서버에 대한 readOnly 연결을 만들면 서버를 마우스 오른쪽 단추로 클릭하고 등록을 클릭하십시오. 그런 다음 등록 된 서버 이름을 원하는 이름으로 변경하십시오. 이것은 등록 된 서버에서 로컬 서버의 일부로 저장됩니다. 도움이 되었기를 바랍니다!
DBAuser
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.