다음을 통해 공유


Always On 가용성 그룹을 사용한 복제 구성

적용 대상:SQL Server - Windows만 해당

SQL Server 복제본 및 Always On 가용성 그룹을 구성하는 데는 7단계가 포함됩니다. 각 단계에 대해서는 다음 섹션에서 자세하게 설명합니다.

1. 데이터베이스 게시 및 구독 구성

배포자 구성

배포 데이터베이스는 SQL Server 2012 및 SQL Server 2014를 사용하는 가용성 그룹에 배치할 수 없습니다. 배포 데이터베이스를 가용성 그룹에 배치하는 것은 병합, 양방향 또는 피어 투 피어 복제본 토폴로지에서 사용하는 배포 데이터베이스를 제외하고 SQL 2016 이상에서 지원됩니다. 더 많은 정보를 원하시면 Always On 가용성 그룹에서 복제 배포 데이터베이스를 설정하는 방법을 에서 확인하세요.

  1. 배포자에서 배포를 구성합니다. 저장 프로시저를 구성에 사용하는 경우에는 sp_adddistributor을 실행하십시오. 원격 게시자가 배포자에 연결할 때 사용할 암호를 식별하기 위해 @password 매개 변수를 사용하십시오. 원격 배포자를 설정할 때 각 원격 게시자도 암호가 필요합니다.

    USE master;
    GO
    
    EXECUTE sys.sp_adddistributor
        @distributor = 'MyDistributor',
        @password = '**Strong password for distributor**';
    
  2. 배포자에서 배포 데이터베이스를 만듭니다. 저장 프로시저를 구성에 사용하는 경우 sp_adddistributiondb 실행합니다.

    USE master;
    GO
    
    EXECUTE sys.sp_adddistributiondb
        @database = 'distribution',
        @security_mode = 1;
    
  3. 원격 게시자를 구성합니다. 저장 프로시저를 사용하여 배포자를 구성하는 경우, sp_adddistpublisher에서 실행되는 @security_mode 매개변수를 사용하면 복제 에이전트가 게시자 유효성 검사 저장 프로시저를 현재 주 복제본에 어떻게 연결하는지 결정할 수 있습니다. 1로 설정된 경우 현재 주 데이터베이스를 연결하는 데 Windows 통합 인증을 사용하여 현재 주 복제본에 연결합니다. 0으로 설정하면 SQL Server 인증을 지정된 @login@password 값과 함께 사용합니다. 유효성 검사 저장 프로시저가 해당 복제본에 성공적으로 연결되기 위해서는 지정된 로그인 및 암호가 각 보조 복제본에서 유효해야 합니다.

    참고 항목

    수정된 복제본 에이전트가 배포자와는 다른 컴퓨터에서 실행될 경우 Windows 통합 인증으로 주 복제본에 연결하기 위해서는 복제본 호스트 컴퓨터 사이에서의 통신에 대한 Kerberos 인증이 구성되어 있어야 합니다. 현재 주 복제본에 대한 연결에 SQL Server 로그인을 사용하는 것에는 Kerberos 인증이 필요하지 않습니다.

    USE master;
    GO
    
    EXECUTE sys.sp_adddistpublisher
        @publisher = 'AGPrimaryReplicaHost',
        @distribution_db = 'distribution',
        @working_directory = '\\MyReplShare\WorkingDir',
        @login = 'MyPubLogin',
        @password = '**Strong password for publisher**';
    

자세한 내용은 sp_adddistpublisher참조하세요.

원래 게시자에서 게시자를 구성하십시오.

  1. 원격 배포를 구성합니다. 저장 프로시저를 사용하여 게시자를 구성하는 경우, 배포자에서 배포를 설정하기 위해 sp_adddistrbutor이 실행됐을 때 사용한 것과 동일한 @password 값을 sp_adddistributor에 지정하십시오.

    EXECUTE sys.sp_adddistributor
        @distributor = 'MyDistributor',
        @password = 'MyDistPass';
    
  2. 복제에 데이터베이스를 활성화합니다. 저장 프로시저를 사용하여 게시자를 구성하는 경우, sp_replicationdboption을 실행하십시오. 데이터베이스에 대해 트랜잭션 및 병합 복제를 모두 구성하려면 각 복제를 사용하도록 설정해야 합니다.

    USE master;
    GO
    
    EXECUTE sys.sp_replicationdboption
        @dbname = 'MyDBName',
        @optname = 'publish',
        @value = 'true';
    
    EXECUTE sys.sp_replicationdboption
        @dbname = 'MyDBName',
        @optname = 'merge publish',
        @value = 'true';
    
  3. 복제본 게시, 문서 및 구독을 생성합니다. 복제본을 구성하는 방법에 대한 자세한 내용은 데이터 및 데이터베이스 개체 게시를 참조해 주세요.

2. 가용성 그룹 구성

의도된 주 복제본에 게시되거나 게시될 데이터베이스를 멤버 데이터베이스로 사용하여 가용성 그룹을 만듭니다. 가용성 그룹 마법사를 사용하는 경우 마법사에서 보조 복제본(replica) 데이터베이스를 초기에 동기화하거나 백업 및 복원을 사용해서 초기화를 수동으로도 실행할 수 있습니다.

복제본(replica) 에이전트에서 현재 주 데이터베이스에 연결하는 데 사용할 가용성 그룹에 대한 DNS 수신기를 만듭니다. 지정한 수신기 이름은 원래 게시자/게시된 데이터베이스 쌍의 리디렉션 대상으로 사용됩니다. 예를 들어 DDL을 사용하여 가용성 그룹을 구성하는 경우 다음 코드 예제를 사용하여 MyAG기존 가용성 그룹에 대한 가용성 그룹 수신기를 지정할 수 있습니다.

ALTER AVAILABILITY GROUP 'MyAG'
    ADD LISTENER 'MyAGListenerName' (WITH IP (('10.120.19.155', '255.255.254.0')));

자세한 내용은 가용성 그룹의 생성 및 구성(SQL Server)을 참조하세요.

3. 모든 보조 복제본 호스트가 복제를 위해 구성되었는지 확인합니다.

각 보조 복제본 호스트에서 SQL Server가 복제본을 지원하도록 구성되었는지 확인합니다. 각 보조 복제본 호스트에서 다음 쿼리를 실행하여 복제본이 설치되어 있는지 확인할 수 있습니다:

USE master;
GO

DECLARE @installed AS INT;

EXECUTE @installed = sys.sp_MS_replication_installed;

SELECT @installed;

@installed가 0이면 SQL Server 설치에 복제를 추가해야 합니다.

4. 보조 복제본 호스트를 복제 게시자로 구성

보조 복제본은 복제 게시자 또는 다시 게시자 역할을 할 수 없지만, 장애 조치(failover) 후에는 보조 복제본이 인수할 수 있도록 복제가 구성되어야 합니다. 배포자에서 각 보조 복제본 호스트에 대해 배포를 구성합니다. 원래 게시자를 배포자에 추가할 때 지정한 것과 동일한 배포 데이터베이스 및 작업 디렉터리를 지정합니다. 저장 프로시저를 사용하여 배포를 구성하는 경우 sp_adddistpublisher 사용하여 원격 게시자를 배포자에 연결합니다. 원래 게시자에 @login@password 를 사용한 경우 보조 복제본 호스트를 게시자로 추가할 때 각각에 대해 동일한 값을 지정합니다.

EXECUTE sys.sp_adddistpublisher
    @publisher = 'AGSecondaryReplicaHost',
    @distribution_db = 'distribution',
    @working_directory = '\\MyReplShare\WorkingDir',
    @login = 'MyPubLogin',
    @password = '**Strong password for publisher**';

각 보조 복제본 호스트에서 배포를 구성합니다. 원래 게시자의 배포자를 원격 배포자로 식별합니다. sp_adddistributor 원래 배포자에서 실행되었을 때 사용한 것과 동일한 암호를 사용합니다. 저장 프로시저를 사용하여 배포를 구성하는 경우 sp_adddistributor@password 매개 변수를 사용하여 암호를 지정합니다.

EXECUTE sp_adddistributor
    @distributor = 'MyDistributor',
    @password = '**Strong password for distributor**';

각 보조 복제본 호스트에서 데이터베이스 게시의 밀어넣기 구독자가 연결된 서버로 표시되는지 확인합니다. 저장 프로시저를 사용하여 원격 게시자를 구성하는 경우 sp_addlinkedserver 사용하여 구독자(아직 없는 경우)를 게시자에 연결된 서버로 추가합니다.

EXECUTE sys.sp_addlinkedserver @server = 'MySubscriber';

5. 원래 게시자를 AG 수신기 이름으로 리디렉션

배포자의 배포 데이터베이스에서 저장 프로시저 sp_redirect_publisher 실행하여 원래 게시자와 게시된 데이터베이스를 가용성 그룹의 가용성 그룹 수신기 이름과 연결합니다.

USE distribution;
GO

EXECUTE sys.sp_redirect_publisher
    @original_publisher = 'MyPublisher',
    @publisher_db = 'MyPublishedDB',
    @redirected_publisher = 'MyAGListenerName';

6. 복제 유효성 검사 저장 프로시저를 실행하여 구성 확인

배포자의 배포 데이터베이스에서 저장 프로시저 sp_validate_replica_hosts_as_publishers 실행하여 이제 모든 복제본 호스트가 게시된 데이터베이스의 게시자 역할을 하도록 구성되었는지 확인합니다.

USE distribution;
GO

DECLARE @redirected_publisher AS sysname;

EXECUTE sys.sp_validate_replica_hosts_as_publishers
    @original_publisher = 'MyPublisher',
    @publisher_db = 'MyPublishedDB',
    @redirected_publisher = @redirected_publisher OUTPUT;

각 가용성 그룹 복제본 호스트에서 가용성 그룹에 대한 정보를 쿼리할 때는 충분한 권한이 있는 로그인에서 저장 프로시저 sp_validate_replica_hosts_as_publishers를 실행해야 합니다. sp_validate_redirected_publisher과 달리, 그것은 호출자의 자격 증명을 사용하며 msdb.dbo.MSdistpublishers에 저장된 로그인을 사용하지 않고 가용성 그룹 복제본에 연결합니다.

보조 복제본 호스트의 유효성을 검사할 때 오류 발생

sp_validate_replica_hosts_as_publishers은 읽기 액세스를 허용하지 않거나 읽기 의도를 지정하는 것이 필요한 보조 복제본 호스트의 유효성을 검사할 때 다음 오류로 인해 실패합니다.

Msg 21899, 수준 11, 상태 1, 프로시저 sp_hadr_verify_subscribers_at_publisher, 줄 109

원래 게시자 'MyOriginalPublisher'의 구독자에 대해 sysserver 항목이 있는지 확인하기 위한 리디렉션된 게시자 'MyReplicaHostName'의 쿼리가 실패하고 '976' 오류가 발생했습니다. 오류 메시지는 다음과 같습니다. '오류 976, 수준 14, 상태 1, 메시지: 대상 데이터베이스 'MyPublishedDB'가 가용성 그룹에 참여 중이며, 쿼리가 현재 이 대상 데이터베이스에 액세스할 수 없습니다. 데이터 이동이 일시 중단되거나 가용성 복제본이 읽기 액세스를 사용하도록 설정되지 않았습니다. 가용성 그룹의 이 데이터베이스 및 다른 데이터베이스에 대한 읽기 전용 액세스를 허용하려면 그룹에 있는 하나 이상의 보조 가용성 복제본 대한 읽기 액세스를 사용하도록 설정합니다. 자세한 내용은 SQL Server 온라인 설명서의 ALTER AVAILABILITY GROUP 문을 참조하세요.

복제본 호스트 'MyReplicaHostName'에 대해 하나 이상의 게시자 유효성 검사 오류가 발생했습니다.

이는 정상적인 동작입니다. 호스트에서 직접 sysserver 항목을 쿼리하여 이러한 보조 복제본 호스트에서 구독자 서버 항목이 있는지 확인해야 합니다.

7. 복제 모니터에 원래 게시자 추가

각 가용성 그룹 복제본에서 원래 게시자를 복제 모니터에 추가합니다.

복제

가용성 그룹 만들기 및 구성