데이터베이스/데이터베이스

[ SQL Server] SQL Server Agent를 이용해 Daily Job을 생성해보자

sseozytank 2023. 12. 12.

빅쿼리의 데이터들을 사내 서버로 옮기고 있다. 

이 과정에서 기존 빅쿼리에서 설정해주었던 프로시저 실행 Daily Job을 MSSQL에서도 걸어줘야하는데 어떻게 하면될까!?

 

SQL Server Agent를 이용하면 빅쿼리와 동일하게 실행 가능하다. 엄청 쉬우니 차근차근 따라오면 된다. (__) 

 

1.SQL Server 에이전트 활성화 

- 개체 탐색기를 살펴보면 SQL Server 에이전트가 아래와 같이 떠있는 사람도, 빨간불이 떠있는 사람도, 없는 사람도 있을 것이다. 나는 없는 케이스였다. 

 

CASE 1. 에이전트가 잘 나타나고, 활성화 된 상태 

- 위에 사진 처럼 파란불이 정상적으로 들어와있다면 잘 되어있는 상태이다. 패스! 

 

CASE 2. 에이전트가 나타나지만, 비활성화 된 상태 

-아래 처럼 에이전트는 나타나있지만, 비활성화 되어있는 상태라면 

SQL Server 에이전트에 오른쪽 마우스를 올린 후 시작 버튼을 누른다. 

본인은 바로 활성화 되어있어서 시작 버튼이 비활되어있음

이렇게 했을 시 되지 않으면 아래 과정을 따른다. 

https://lab.naminsik.com/3706 

 

CASE 3. 에이전트가 개체 탐색기에 안뜨는 경우  

- 권한이 없을 확률이 높다. 

(1) 권한 조회 

select name, sysadmin from sys.syslogins where name = '사용자이름'

 

권한이 없으면 sysadmin = 0 으로 나온다. 

 

(2) 권한 부여 

sysadmin 계정으로 로그인 -> 보안 -> 권한 추가하고자 하는 계정 선택 -> 오른쪽 마우스 클릭 ->  속성 클릭 -> 

로그인 속성 -> 데이터 베이스 선택 > 멤버 역할 추가 

SQLAgentUserRole 
SQLAgentReaderRole 
SQLAgentOperatorRole 

 

 

2.Daily Job 만들기 

(1) SQL Sever 에이전트 작업 폴더에서 오른쪽 마우스 클릭 후 새 작업 선택 

(2) 일반 탭에서 작업의 이름 입력 후 적당한 범주 선택 

 

(3) 단계 > 새로만들기 > 단계 이름 입력 > 유형 (T-SQL (디폴트)) > 데이터 베이스 선택 > 실행할 쿼리 입력

 

(4) 일정등록 

: 나는 테스트로 진행하는 거라 일정 유형을 한 번으로 설정하였다. 요약 부분에 해당 스케줄에 대해 정말 쉽게 풀어써준다. 한번 보면 다들 설정할 수 있다.

*보니까 일정이 UTC 기준으로 설정된다. 아래처럼 오전 11시 40분으로 설정해두면 , 11:40 UTC+9가 되는 거라 실제 예약된 쿼리는 UTC인 한국 시간 2:40에 돌아가는 것이다. 돌리고 싶은 시간에 -9시간을 해서 설정해주면 된다. (나는 아무 설정도 안해놨을 때 이렇게 됐는데 혹시 뭔가 설정해놨다면 다를 수 있으니 작업 활동 모니터에서 꼭 확인해주기!) 

 

 

3.Daily Job 확인

- 이렇게 만들어진 작업 활동은 작업 활동 모니터에 오른쪽 마우스를 올리면 확인 가능하다! 

 

너무너무 쉬운 MSSQL Daily Job 생성 끝 ~:~ 

댓글