RDS for SQL Server 다중 AZ 인스턴스의 기본 호스트와 보조 호스트 간에 SQL Server 에이전트 작업을 동기화하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Relational Database(Amazon RDS) for Microsoft SQL Server 다중 AZ 인스턴스를 가지고 있습니다. 인스턴스의 기본 호스트와 보조 호스트 간에 SQL Server 에이전트 작업을 동기화하고 싶습니다.

간략한 설명

Amazon RDS for SQL Server는 백그라운드에서 다중 AZ 설정에 대해 상시 켜짐/미러링을 사용합니다. SQL Server 에이전트는 msdb 시스템 데이터베이스에 작업을 저장합니다. 이 시스템 데이터베이스는 다중 AZ 배포의 일부로 복제되지 않습니다. 따라서 SQL Server 에이전트 작업은 자동으로 동기화되지 않습니다. 장애 조치 후 새 기본 서버에서 작업을 다시 생성해야 합니다. 하지만 해당 작업은 원래 생성한 기존의 기본 서버에 있습니다. 인스턴스를 이전 기본 서버(작업을 생성한 위치)로 페일백해도 해당 작업이 계속 표시됩니다. 다중 AZ에서 작업을 생성하려면 먼저 기본(활성) 인스턴스에서 작업을 생성합니다. 그런 다음 RDS 인스턴스를 장애 조치하고 새 기본 인스턴스에 동일한 작업을 생성합니다.

새 기본 서버에서 수동으로 작업을 생성하지 않으려면 SQL 에이전트 작업 복제를 활성화하세요. 다중 AZ 환경에서 작업 복제를 활성화하면 SQL Server 에이전트가 기본 호스트에서 보조 호스트로 작업을 자동으로 복사합니다. 새 기본 복제본은 에이전트 복제 기능을 통해 동기화되었으므로 작업을 수동으로 생성할 필요가 없습니다. 작업은 두 복제본에서 모두 사용할 수 있습니다.

자세한 내용은 Amazon RDS for Microsoft SQL Server의 다중 AZ 배포를 참조하세요.

참고: 다음 해결 방법은 Amazon RDS Custom for SQL Server에는 적용되지 않습니다.

해결 방법

SQL 에이전트 복제 기능 활성화

SQL Server 에이전트 작업 복제를 활성화하려면 기본 인스턴스에서 관리자 계정으로 다음 절차를 실행합니다.

중요: 모든 에이전트 작업을 사용할 수 있는 인스턴스에서 이 절차를 실행해야 합니다. 사용 가능한 에이전트 작업이 없는 인스턴스가 기본 인스턴스가 되고 이 기능을 활성화하면 보조 인스턴스의 작업이 삭제됩니다. 또한 기존 작업과 새로 생성된 작업이 모두 이 기능의 일부로 복제됩니다.

EXECUTE msdb.dbo.rds_set_system_database_sync_objects
@object_types = 'SQLAgentJob';

SQL 에이전트 복제 기능이 켜져 있는지 확인

복제 기능이 켜져 있는지 확인합니다.

SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();

이 쿼리는 복제 기능이 켜져 있는 경우 object_class에 대한 SQLagentjob을 반환합니다. 쿼리에서 아무 것도 반환되지 않으면 이 기능이 켜져 있지 않은 것입니다.

수정된 시점과 새 작업이 보조 작업과 마지막으로 동기화된 시점 확인

복제의 last_sync_time을 확인합니다.

SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();

쿼리 결과에서 동기화 시간이 작업 업데이트 또는 생성 시간을 지나면 작업이 보조 작업과 동기화됩니다.

참고: 작업 생성 또는 업데이트 시간을 모르는 경우 먼저 다음 쿼리를 실행하여 타임스탬프를 검색합니다.

select name as 'JobName'
,JobStatus = CASE
    When enabled =1 Then 'Active'
    Else 'Inactive'
    END
,date_created As 'JobCreatedOn' ,date_modified as 'LastModified'
from msdb..sysjobs

참고: 복제본 간에 작업이 동기화되는 데 몇 분 정도 걸립니다.

DB 장애 조치를 수행하여 작업이 복제되는지 확인하려면 last_sync_time이 먼저 업데이트될 때까지 기다리세요. 그런 다음 다중 AZ 장애 조치를 진행합니다.

에이전트 작업 복제에 지원되는 작업 범주와 지원되지 않는 작업 범주

다음 카테고리의 작업은 복제됩니다.

  • [미분류(로컬)]
  • [미분류(다중 서버)]
  • [미분류]
  • 데이터 수집기
  • 데이터베이스 엔진 튜닝 어드바이저
  • 데이터베이스 유지 관리
  • 전체 텍스트

참고: 단계 유형을 T-SQL로 사용하는 작업만 복제합니다.

다음 카테고리는 복제를 지원하지 않습니다.

  • SQL Server Integration Services(SSIS), SQL Server Reporting Services(SSRS), 복제 또는 PowerShell과 같은 단계 유형을 사용하는 작업
  • 데이터베이스 메일 및 서버 수준 객체를 사용하는 작업

SQL Server 에이전트 작업 복제 비활성화

SQL Server 에이전트 작업 복제를 비활성화하려면 다음 명령을 실행하세요.

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = '';

복제를 비활성화하면 기존 작업과 새로 생성된 작업에 대한 수정 사항이 더 이상 다른 복제본과 동기화되지 않습니다.