메뉴
Amazon Relational Database Service
사용 설명서 (API Version 2014-10-31)

SQL Server 에이전트의 사용

Amazon RDS는 Microsoft SQL Server Standard, Web Edition 또는 Enterprise Edition을 기반으로 하는 DB 인스턴스에서 SQL Server 에이전트를 사용할 수 있습니다. SQL Server 에이전트는 관리 작업을 예약하여 실행할 수 있는 Microsoft Windows 서비스입니다. SQL Server 에이전트를 사용하면 T-SQL 작업을 통해 인덱스를 리빌드하고, 손상 검사를 실행하고, SQL Server DB 인스턴스의 데이터를 집계할 수 있습니다.

SQL Server 에이전트는 특정 이벤트 발생 시, 혹은 필요에 따라 예약 작업을 실행할 수 있습니다. 자세한 내용은 SQL Server 문서의 SQL Server Agent 단원을 참조하십시오. 단, DB 인스턴스의 유지 관리 기간이나 백업 기간에는 예약 작업을 피해야 합니다. AWS에서 실행하는 유지 관리 및 백업 프로세스로 인해 예약 작업이 중단되거나 취소될 수도 있기 때문입니다. Amazon RDS는 DB 인스턴스를 백업하기 때문에 SQL Server 에이전트를 사용해 백업 파일을 만들 필요는 없습니다.

SQL Server Management Studio에서 SQL Server 에이전트의 개별 작업 이력을 보려면 Object Explorer를 열고 작업을 마우스 오른쪽 버튼으로 클릭한 다음 [View History]를 클릭합니다.

SQL Server 에이전트는 DB 인스턴스의 관리형 호스트를 기반으로 하기 때문에 지원되지 않는 작업이 몇 가지 있습니다. 예륻 들어 ActiveX, Windows cmdshell, 또는 Windows PowerShell을 이용한 복제 작업이나 명령줄 스크립트가 지원되지 않습니다. 또한 작업을 호스트가 관리하기 때문에 SQL Server 에이전트를 수동으로 시작, 종료 또는 재시작할 수 없습니다. 그 밖에 DB 인스턴스에서 SQL Server 에이전트를 통한 이메일 알림 메시지도 이용하지 못합니다.

SQL Server DB 인스턴스를 생성하면 마스터 사용자 이름이 SQLAgentUserRole 역할에 등록됩니다. 추가 로그인/사용자의 SQL Server 에이전트 사용을 허용하려면 마스터 사용자로 로그인한 후 다음과 같이 실행합니다.

  1. CREATE LOGIN 명령을 사용하여 다른 서버 수준 로그인을 생성합니다.

  2. CREATE USER 명령을 사용하여 msdb 사용자를 생성한 다음 이전 단계에서 생성한 로그인과 이 사용자를 연결합니다.

  3. sp_addrolemember 시스템 저장 프로시저를 사용하여 사용자를 SQLAgentUserRole에 추가합니다.

예를 들어 마스터 사용자 이름은 myawsmaster이며, 이름이 theirname이고 암호가 theirpassword인 사용자에게 SQL Server 에이전트에 대한 액세스 권한을 부여한다고 가정하겠습니다. 먼저 마스터 사용자 이름을 사용해 로그인한 후 다음 명령을 실행합니다.

Copy
--Initially set context to master database USE [master]; GO --Create a server-level login named theirname with password theirpassword CREATE LOGIN [theirname] WITH PASSWORD = 'theirpassword'; GO --Set context to msdb database USE [msdb]; GO --Create a database user named theirname and link it to server-level login theirname CREATE USER [theirname] FOR LOGIN [theirname]; GO --Added database user theirname in msdb to SQLAgentUserRole in msdb EXEC sp_addrolemember [SQLAgentUserRole], [theirname];

SQL Server 에이전트 작업은 SQL Server 관리 콘솔의 UI로는 삭제할 수 없습니다. SQL Server 에이전트 작업을 삭제하려면 다음 T-SQL 문을 실행해야 합니다.

Copy
EXEC msdb..sp_delete_job @job_name = '<job-name>';