Amazon RDS에 SQL Server Agent 사용
Amazon RDS에서는 Microsoft SQL Server Enterprise Edition, Standard Edition 또는 Web Edition을 실행하는 DB 인스턴스에서 SQL Server 에이전트를 사용할 수 있습니다. SQL Server 에이전트는 예약된 관리 작업을 실행하는 Microsoft Windows 서비스입니다. SQL Server 에이전트를 사용하면 T-SQL 작업을 통해 인덱스를 리빌드하고, 손상 검사를 실행하고, SQL Server DB 인스턴스의 데이터를 집계할 수 있습니다.
SQL Server DB 인스턴스를 생성하면 마스터 사용자가 SQLAgentUserRole
역할에 등록됩니다.
SQL Server 에이전트는 특정 이벤트 발생 시, 혹은 필요에 따라 예약 작업을 실행할 수 있습니다. 자세한 내용은 Microsoft 설명서에서 SQL Server 에이전트
참고
DB 인스턴스의 유지 관리 및 백업 기간 중에는 작업 실행을 예약하지 마세요. AWS를 통해 시작되는 유지 관리 및 백업 프로세스에 의해 작업이 중단되거나 취소될 수 있습니다.
다중 AZ 배포에서 SQL Server 에이전트 작업은 작업 복제 기능이 켜져 있을 때 기본 호스트에서 보조 호스트로 복제됩니다. 자세한 내용은 SQL Server 에이전트 작업 복제 켜기 단원을 참조하십시오.
다중 AZ 배포에서는 SQL Server 에이전트 작업이 10,000개로 제한됩니다. 한도를 늘려야 할 경우 Support에 문의하여 할당량 증대를 요청하세요. [지원 센터(AWS Support Center)
SQL Server Management Studio(SSMS)에서 SQL Server 에이전트의 개별 작업 기록을 보려면 Object Explorer를 열고 작업을 마우스 오른쪽 버튼으로 클릭한 다음 [기록 보기(View History)]를 선택합니다.
SQL Server 에이전트는 DB 인스턴스의 관리형 호스트에서 실행되므로 일부 작업이 지원되지 않습니다.
-
예를 들어 ActiveX, Windows cmdshell 또는 Windows PowerShell을 사용하여 복제 작업이나 명령줄 스크립트를 실행하는 것은 지원되지 않습니다.
-
SQL Server 에이전트를 수동으로 시작, 중지 또는 다시 시작할 수 없습니다.
-
SQL Server 에이전트를 통한 이메일 알림은 DB 인스턴스에서 사용할 수 없습니다.
-
SQL Server 에이전트 알림 및 연산자는 지원되지 않습니다.
-
SQL Server 에이전트를 사용한 백업 생성은 지원되지 않습니다. DB 인스턴스를 백업하려면 Amazon RDS를 사용합니다.
-
현재 RDS for SQL Server는 SQL Server 에이전트 토큰 사용을 지원하지 않습니다.
SQL Server 에이전트 작업 복제 켜기
다음 저장 프로시저를 사용하여 SQL Server 에이전트 작업 복제를 켤 수 있습니다.
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob';
Amazon RDS for SQL Server에서 지원하는 모든 SQL Server 버전에서 저장 프로시저를 실행할 수 있습니다. 다음 범주의 작업이 복제됩니다.
-
[분류되지 않음(로컬)]
-
[분류되지 않음(멀티 서버)]
-
[분류되지 않음]
-
데이터 수집기
-
데이터베이스 엔진 튜닝 관리자
-
데이터베이스 유지 관리
-
전체 텍스트
T-SQL 작업 단계를 사용하는 작업만 복제됩니다. SSIS(SQL Server Integration Services), SSRS(SQL Server Reporting Service), 복제 및 PowerShell과 같은 단계 유형이 있는 작업은 복제되지 않습니다. 데이터베이스 메일 및 서버 수준 객체를 사용하는 작업은 복제되지 않습니다.
중요
프라이머리 호스트는 복제를 위한 신뢰할 수 있는 소스입니다. 작업 복제를 설정하기 전에 SQL Server 에이전트 작업이 프라이머리에 있는지 확인합니다. 새 작업이 보조 호스트에 있을 때 이 기능을 설정하면 SQL Server 에이전트 작업이 삭제될 수 있습니다.
다음 기능을 사용하면 복제가 켜져 있는지 확인할 수 있습니다.
SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();
T-SQL 쿼리는 SQL Server 에이전트 작업이 복제되는 경우 다음을 반환합니다. 복제하지 않으면 object_class
에 대해 아무 것도 반환하지 않습니다.
다음 함수를 사용하여 객체가 마지막으로 동기화된 시간(UTC 시간)을 찾을 수 있습니다.
SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();
예를 들어 SQL Server 에이전트 작업을 01:00에 수정한다고 가정합니다. 가장 최근에 동기화된 시간은 동기화가 수행되었음을 나타내는 01:00 이후일 것으로 예상합니다.
동기화 후에는 보조 노드에서 반환된 date_created
와 date_modified
가 일치할 것으로 예상됩니다.
tempdb
복제를 함께 사용하는 경우 @object_type
파라미터에 SQL 에이전트 작업과 tempdb
구성을 제공하여 둘 모두에 대해 복제를 활성화할 수 있습니다.
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob,TempDbFile';
tempdb
복제에 대한 자세한 내용은 다중 AZ 배포에 대한 TempDB 구성 섹션을 참조하세요.