RDS for SQL Server 다중 AZ 인스턴스에서 기본 호스트와 보조 호스트 사이에 SQL Server 에이전트 작업을 동기화하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 10월 14일

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 배포를 참조하세요.

해결 방법

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 장애 조치를 진행합니다.

보조 서버에서의 작업 상태

SQL Server 에이전트 XP는 보조 복제본에서 복제 기능을 사용하는지 여부와 상관없이 비활성화 상태입니다. 따라서 작업은 보조 서버에서 실행되지 않습니다.

에이전트 작업 복제에 대해 지원되는 작업 범주 및 지원되지 않는 작업 범주

다음 범주의 작업이 복제됩니다.

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

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

다음은 복제를 지원하지 않는 범주입니다.

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

SQL Server 에이전트 작업 복제 끄기

SQL Server 에이전트 작업 복제를 끄려면 다음 명령을 실행합니다.

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

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


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?