가용성 복제본에 대한 읽기 전용 액세스 구성(SQL Server)

기본적으로 주 복제본에 대한 읽기/쓰기 및 읽기 전용 액세스가 모두 허용되며 AlwaysOn 가용성 그룹의 보조 복제본에 대한 연결은 허용되지 않습니다. 이 항목에서는 SQL Server 2012에서 SQL Server Management Studio, Transact-SQL 또는 PowerShell을 사용하여 AlwaysOn 가용성 그룹의 가용성 복제본에 대한 연결 액세스를 구성하는 방법에 대해 설명합니다.

보조 역할에서 지원되는 액세스 형식과 보조 복제본에 대해 읽기 전용 액세스를 사용할 때의 영향에 대한 자세한 내용과 연결 액세스에 대한 소개 정보는 가용성 복제본에 대한 클라이언트 연결 액세스 정보(SQL Server)활성 보조 복제본: 읽기 가능한 보조 복제본(AlwaysOn 가용성 그룹)을 참조하십시오.

  • 시작하기 전 주의 사항  

    사전 요구 사항 및 제한 사항

    보안

  • 가용성 복제본에 대한 액세스를 구성하려면  

    SQL Server Management Studio

    Transact-SQL

    PowerShell

  • 후속 작업:  가용성 복제본에 대한 읽기 전용 액세스를 구성한 후의 작업

  • 관련 태스크

  • 관련 내용

시작하기 전 주의 사항

사전 요구 사항 및 제한 사항

  • 다른 연결 액세스를 구성하려면 주 복제본을 호스팅하는 서버 인스턴스에 연결되어 있어야 합니다.

보안

사용 권한

태스크

사용 권한

가용성 그룹을 만들 때 복제본을 구성하려면

CREATE AVAILABILITY GROUP 서버 권한, ALTER ANY AVAILABILITY GROUP 권한, CONTROL SERVER 권한 중 하나와 sysadmin 고정 서버 역할의 멤버 자격이 필요합니다.

가용성 복제본을 수정하려면

가용성 그룹에 대한 ALTER AVAILABILITY GROUP 권한, CONTROL AVAILABILITY GROUP 권한, ALTER ANY AVAILABILITY GROUP 권한 또는 CONTROL SERVER 권한이 필요합니다.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위로 이동]

SQL Server Management Studio 사용

가용성 복제본에 대한 액세스를 구성하려면

  1. 개체 탐색기에서 주 복제본을 호스팅하는 서버 인스턴스에 연결하고 서버 트리를 확장합니다.

  2. AlwaysOn 고가용성가용성 그룹 노드를 확장합니다.

  3. 복제본을 변경할 가용성 그룹을 클릭합니다.

  4. 가용성 복제본을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

  5. 가용성 복제본 속성 대화 상자에서 다음과 같이 주 역할 및 보조 역할에 대한 연결 액세스를 변경할 수 있습니다.

    • 보조 역할의 경우 읽기용 보조 드롭 목록의 다음 값 중에서 새 값을 선택합니다.

      • 아니요
        이 복제본의 보조 데이터베이스에 대한 사용자 연결이 허용되지 않습니다. 즉, 읽기 액세스가 가능하지 않습니다. 이 값은 기본 설정입니다.

      • 읽기 전용만
        이 복제본의 보조 데이터베이스에 대한 읽기 전용 연결만 허용됩니다. 즉, 모든 보조 데이터베이스에 대한 읽기 액세스가 가능합니다.


      • 이 복제본의 보조 데이터베이스에 대한 모든 연결이 허용되지만 읽기 액세스만 가능합니다. 즉, 모든 보조 데이터베이스에 대한 읽기 액세스가 가능합니다.

    • 주 역할의 경우 주 역할의 연결 모드 드롭 목록의 다음 값 중에서 새 값을 선택합니다.

      • 모든 연결 허용
        주 복제본의 데이터베이스에 대한 모든 연결이 허용됩니다. 이 값은 기본 설정입니다.

      • 읽기/쓰기 연결 허용
        응용 프로그램 의도 속성이 ReadWrite로 설정되었거나 응용 프로그램 의도 연결 속성이 설정되지 않은 경우에는 연결이 허용됩니다. 응용 프로그램 의도 연결 속성이 ReadOnly로 설정된 연결은 허용되지 않습니다. 따라서 고객이 읽기 전용 작업을 실수로 주 복제본에 연결하는 것을 방지할 수 있습니다. 응용 프로그램 의도 연결 속성에 대한 자세한 내용은 SQL Server Native Client에서 연결 문자열 키워드 사용을 참조하십시오.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위로 이동]

Transact-SQL 사용

가용성 복제본에 대한 액세스를 구성하려면

[!참고]

이 절차에 대한 예는 이 섹션의 뒷부분에 나오는 예(Transact-SQL)를 참조하십시오.

  1. 주 복제본을 호스팅하는 서버 인스턴스에 연결합니다.

  2. 새 가용성 그룹에 대한 복제본을 지정하려는 경우 CREATE AVAILABILITY GROUP Transact-SQL 문을 사용합니다. 기존 가용성 그룹의 복제본을 추가하거나 수정하려는 경우에는 ALTER AVAILABILITY GROUP Transact-SQL 문을 사용합니다.

    • 보조 역할에 대한 연결 액세스를 구성하려면 ADD REPLICA 또는 MODIFY REPLICA WITH 절에서 다음과 같이 SECONDARY_ROLE 옵션을 지정합니다.

      SECONDARY_ROLE ( ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL } )

      각 항목이 나타내는 의미는 다음과 같습니다.

      • NO
        이 복제본의 보조 데이터베이스에 대한 직접 연결이 허용되지 않습니다. 즉, 읽기 액세스가 가능하지 않습니다. 이 값은 기본 설정입니다.

      • READ_ONLY
        이 복제본의 보조 데이터베이스에 대한 읽기 전용 연결만 허용됩니다. 즉, 모든 보조 데이터베이스에 대한 읽기 액세스가 가능합니다.

      • ALL
        이 복제본의 보조 데이터베이스에 대한 모든 연결이 허용되지만 읽기 액세스만 가능합니다. 즉, 모든 보조 데이터베이스에 대한 읽기 액세스가 가능합니다.

  3. 주 역할에 대한 연결 액세스를 구성하려면 ADD REPLICA 또는 MODIFY REPLICA WITH 절에서 다음과 같이 PRIMARY_ROLE 옵션을 지정합니다.

    PRIMARY_ROLE ( ALLOW_CONNECTIONS = { READ_WRITE | ALL } )

    각 항목이 나타내는 의미는 다음과 같습니다.

    • READ_WRITE
      응용 프로그램 의도 연결 속성이 ReadOnly로 설정된 연결은 허용되지 않습니다. 응용 프로그램 의도 속성이 ReadWrite로 설정되었거나 응용 프로그램 의도 연결 속성이 설정되지 않은 경우에는 연결이 허용됩니다. 응용 프로그램 의도 연결 속성에 대한 자세한 내용은 SQL Server Native Client에서 연결 문자열 키워드 사용을 참조하십시오.

    • ALL
      주 복제본의 데이터베이스에 대한 모든 연결이 허용됩니다. 이 값은 기본 설정입니다.

예(Transact-SQL)

다음 예에서는 AG2라는 가용성 그룹에 보조 가용성 복제본을 추가합니다. 독립 실행형 서버 인스턴스인 COMPUTER03\HADR_INSTANCE는 새 가용성 복제본을 호스팅하도록 지정됩니다. 이 복제본은 주 역할에 대해 읽기/쓰기 연결만 허용하고 보조 역할에 대해 읽기 전용 연결만 허용하도록 구성되어 있습니다.

ALTER AVAILABILITY GROUP AG2 
   ADD REPLICA ON 
      'COMPUTER03\HADR_INSTANCE' WITH 
         (
         ENDPOINT_URL = 'TCP://COMPUTER03:7022',
         PRIMARY_ROLE ( ALLOW_CONNECTIONS = READ_WRITE ),
         SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY )
         ); 
GO

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위로 이동]

PowerShell 사용

가용성 복제본에 대한 액세스를 구성하려면

[!참고]

코드 예를 보려면 이 섹션의 뒷부분에 나오는 예(PowerShell)를 참조하십시오.

  1. 주 복제본을 호스팅하는 서버 인스턴스로 디렉터리를 변경(cd)합니다.

  2. 가용성 그룹에 가용성 복제본을 추가하는 경우 New-SqlAvailabilityReplica cmdlet을 사용합니다. 기존 가용성 복제본을 수정하는 경우 Set-SqlAvailabilityReplica cmdlet을 사용합니다. 관련 매개 변수는 다음과 같습니다.

    • 보조 역할에 대한 연결 액세스를 구성하려면 ConnectionModeInSecondaryRole secondary_role_keyword 매개 변수를 지정합니다. 여기서 secondary_role_keyword에는 다음 값 중 하나를 사용합니다.

      • AllowNoConnections
        보조 복제본의 데이터베이스에 대한 직접 연결이 허용되지 않으며 읽기 액세스를 위해 데이터베이스에 연결할 수 없습니다. 이 값은 기본 설정입니다.

      • AllowReadIntentConnectionsOnly
        응용 프로그램 의도 속성이 ReadOnly로 설정된 경우에만 보조 복제본의 데이터베이스에 연결할 수 있습니다. 이 속성에 대한 자세한 내용은 SQL Server Native Client에서 연결 문자열 키워드 사용을 참조하십시오.

      • AllowAllConnections
        보조 복제본의 데이터베이스에 대해 읽기 전용 액세스를 위한 모든 연결이 허용됩니다.

    • 주 역할에 대한 연결 액세스를 구성하려면 ConnectionModeInPrimaryRole primary_role_keyword를 지정합니다. 여기서 primary_role_keyword에는 다음 값 중 하나를 사용합니다.

      • AllowReadWriteConnections
        응용 프로그램 의도 연결 속성이 ReadOnly로 설정된 연결은 허용되지 않습니다. 응용 프로그램 의도 속성이 ReadWrite로 설정되었거나 응용 프로그램 의도 연결 속성이 설정되지 않은 경우에는 연결이 허용됩니다. 응용 프로그램 의도 연결 속성에 대한 자세한 내용은 SQL Server Native Client에서 연결 문자열 키워드 사용을 참조하십시오.

      • AllowAllConnections
        주 복제본의 데이터베이스에 대한 모든 연결이 허용됩니다. 이 값은 기본 설정입니다.

    [!참고]

    cmdlet의 구문을 확인하려면 SQL Server 2012 PowerShell 환경에서 Get-Help cmdlet을 사용합니다. 자세한 내용은 SQL Server PowerShell 도움말 보기를 참조하십시오.

SQL Server PowerShell 공급자를 설정하고 사용하려면

예(PowerShell)

다음 예에서는 ConnectionModeInSecondaryRole 및 ConnectionModeInPrimaryRole 매개 변수를 모두 AllowAllConnections으로 설정합니다.

Set-Location SQLSERVER:\SQL\PrimaryServer\default\AvailabilityGroups\MyAg
$primaryReplica = Get-Item "AvailabilityReplicas\PrimaryServer"
Set-SqlAvailabilityReplica -ConnectionModeInSecondaryRole "AllowAllConnections" ` 
-InputObject $primaryReplica
Set-SqlAvailabilityReplica -ConnectionModeInPrimaryRole "AllowAllConnections" ` 
-InputObject $primaryReplica

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위로 이동]

후속 작업: 가용성 복제본에 대한 읽기 전용 액세스를 구성한 후의 작업

읽을 수 있는 보조 복제본에 대한 읽기 전용 액세스

장애 조치(Failover) 후 트리거 및 작업에 영향을 줄 수 있는 요소

읽을 수 없는 보조 데이터베이스 또는 읽을 수 있는 보조 데이터베이스에서 실행할 때 실패하는 트리거 및 작업이 있는 경우 트리거와 작업을 스크립팅하여 지정된 복제본에서 데이터베이스가 주 데이터베이스인지 읽을 수 있는 보조 데이터베이스인지 확인해야 합니다. 이 정보를 얻으려면 DATABASEPROPERTYEX 함수를 사용하여 데이터베이스의 Updatability 속성을 반환합니다. 읽기 전용 데이터베이스를 식별하려면 다음과 같이 READ_ONLY를 값으로 지정합니다.

DATABASEPROPERTYEX([db name],’Updatability’) = N’READ_ONLY’

쓰기 전용 데이터베이스를 식별하려면 READ_WRITE를 값으로 지정합니다.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위로 이동]

관련 태스크

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위로 이동]

관련 내용

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위로 이동]

참고 항목

개념

AlwaysOn 가용성 그룹 개요(SQL Server)

활성 보조 복제본: 읽기 가능한 보조 복제본(AlwaysOn 가용성 그룹)

가용성 복제본에 대한 클라이언트 연결 액세스 정보(SQL Server)