SQL Server Job Agent는 몇 개까지 실행이 가능할까?
- Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016
SQL Server Job Agent는 몇개까지 실행이 가능할까? SQL Server Job Agent실행할 수 있는 제한범위를 초과하면 다음과 같은 에러를 나타낸다.
SQLServerAgent Error: Request to run job Job_id (from User distributor_admin) refused because the job is already running from a request by User distributor_admin. Changed database context to 'db_name'. (Microsoft SQL Server, Error: 22022) |
SQL Agent Log에는 아래와 같은 메시지가 기록 된다
251] Step %ld of job %s is being queued for the %s subsystem |
이러한 문제는 Job Agent의 동시 작업이 가능한 max_worker_thread 한계에 도달 했기 때문이다. sp_enum_sqlagent_subsystems 시스템 저장프로시저는 각 하위 시스템에 대한 현재 설정되어 있는 max_worker_thread 정보를 나타낸다.
Max_worker_thread를 변경하기 위해서는 레지스트리를 수정하여 해결 할 수 있다. 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있으므로 주의힌다. 레지스트리를 수정하기 전에는 항상 백업본 생성하여 만약의 경우 시스템을 원래 상태로 복원할 수 있어야 한다.
- 윈도우 레지스트리 백업 및 복원 : https://support.microsoft.com/en-us/kb/322756
[max_worker_thread 레지스트리 경로]
32비트 기본 인스턴스 | 인스턴스HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent\Subsystems |
32비트 명명된 인스턴스 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<YourInstanceName>\SQLServerAgent\Subsystems\LogReader |
64비트 기본 인스턴스 | HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\SQLServerAgent\Subsystems |
64비트 명명된 인스턴스 | HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\<YourInstanceName>\SQLServerAgent\Subsystems\LogReader |
참고사항으로 T-SQL 하위시스템 키는 기본적으로 생성되지 않는다. T-SQL 하위키를 수정하려면 Transact REG_SZ에 상수값을 추가한다. 이 숫자는 Transact SQL 하위 시스템에 대한 max_worker_thread 설정을 나타낸다.
예) TSQL:REG_SZ:100
[참고자료]
강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp