다음을 통해 공유


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

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

보조 복제본(replica) 대한 읽기 전용 액세스를 사용하도록 설정하는 방법과 연결 액세스에 대한 소개에 대한 자세한 내용은 가용성 복제본에 대한 클라이언트 연결 액세스 정보(SQL Server)활성 보조: 읽기 가능한 보조 복제본(AlwaysOn 가용성 그룹)을 참조하세요.

시작하기 전에

사전 요구 사항 및 제한 사항

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

보안

사용 권한

Task 사용 권한
가용성 그룹을 만들 때 복제본을 구성하려면 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 로 설정된 연결은 허용되지 않습니다. 따라서 고객이 읽기 전용 작업을 실수로 주 복제본에 연결하는 것을 방지할 수 있습니다. 애플리케이션 의도 연결 속성에 대한 자세한 내용은 Using Connection String Keywords with SQL Server Native Client을 참조하십시오.

Transact-SQL 사용

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

참고

이 절차에 대한 예는 이 섹션의 뒷부분에 나오는 예제(Transact-SQL)을 참조하세요.

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

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

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

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

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

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

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

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

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

    PRIMARY_ROLE ( ALLOW_CONNECTIONS = { READ_WRITE | ALL } )

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

    READ_WRITE
    애플리케이션 의도 연결 속성이 ReadOnly 로 설정된 연결은 허용되지 않습니다. 애플리케이션 의도 속성이 ReadWrite 로 설정되었거나 애플리케이션 의도 연결 속성이 설정되지 않은 경우에는 연결이 허용됩니다. 애플리케이션 의도 연결 속성에 대한 자세한 내용은 Using Connection String Keywords with 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을 사용합니다. 관련 매개 변수는 다음과 같습니다.

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

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

      AllowReadIntentConnectionsOnly
      애플리케이션 의도 속성이 ReadOnly로 설정된 경우에만 보조 복제본의 데이터베이스에 연결할 수 있습니다. 이 속성에 대한 자세한 내용은 Using Connection String Keywords with SQL Server Native Client을 참조하십시오.

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

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

      AllowReadWriteConnections
      애플리케이션 의도 연결 속성이 ReadOnly로 설정된 연결은 허용되지 않습니다. 애플리케이션 의도 속성이 ReadWrite로 설정되었거나 애플리케이션 의도 연결 속성이 설정되지 않은 경우에는 연결이 허용됩니다. 애플리케이션 의도 연결 속성에 대한 자세한 내용은 Using Connection String Keywords with SQL Server Native Client을 참조하십시오.

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

    참고

    cmdlet의 구문을 보려면 SQL Server 2014 PowerShell 환경에서 cmdlet을 사용합니다Get-Help. 자세한 내용은 Get Help SQL Server PowerShell을 참조하세요.

SQL Server PowerShell 공급자를 설정하고 사용하려면 powerShell 공급자 SQL Server 참조하세요.

다음 예에서는 ConnectionModeInSecondaryRoleConnectionModeInPrimaryRole 매개 변수를 모두 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)