Linux에서 SQL Server 에이전트 작업 만들기 및 실행
적용 대상: SQL Server - Linux
SQL Server 작업은 SQL Server 데이터베이스에서 동일한 명령 시퀀스를 정기적으로 수행하는 데 사용됩니다. 이 자습서에서는 Transact-SQL 및 SSMS(SQL Server Management Studio)를 사용하여 Linux에서 SQL Server 에이전트 작업을 만드는 방법에 대한 예제를 제공합니다.
- SQL Server Agent on Linux 설치
- 일별 데이터베이스 백업을 수행하는 새 작업 만들기
- 작업 예약 및 실행
- SSMS에서 동일한 단계를 수행합니다(선택 사항).
Linux의 SQL Server 에이전트 관련 알려진 문제는 SQL Server 2017 on Linux 릴리스 정보를 참조하세요.
필수 조건
다음은 이 자습서를 완료하는 데 필요한 전제 조건입니다.
다음 필수 전제 조건을 갖춘 Linux 컴퓨터:
다음 전제 조건은 선택 사항입니다.
- SSMS가 포함된 Windows 컴퓨터:
- 선택적 SSMS 단계를 보려면 SSMS(SQL Server Management Studio)를 다운로드합니다.
SQL Server 에이전트 사용
Linux에서 SQL Server 에이전트를 사용하려면 먼저 SQL Server가 이미 설치된 컴퓨터에서 SQL Server 에이전트를 사용하도록 설정해야 합니다.
SQL Server 에이전트를 사용하도록 설정하려면 아래 단계를 따르세요.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
다음 명령을 사용하여 SQL Server를 다시 시작합니다.
sudo systemctl restart mssql-server
참고 항목
SQL Server 2017(14.x) CU 4부터 SQL Server 에이전트는 mssql-server
패키지에 포함되어 있으며 기본적으로 사용하지 않도록 설정됩니다. CU 4 이전에 설정된 에이전트는 Linux에 SQL Server 에이전트 설치를 참조하세요.
샘플 데이터베이스 만들기
다음 단계에서는 SampleDB
라는 새 데이터베이스를 만듭니다. 이 데이터베이스는 매일 백업 작업에 사용됩니다.
Linux 머신에서 bash 터미널 세션을 엽니다.
sqlcmd를 사용하여 Transact-SQL
CREATE DATABASE
명령을 실행합니다./opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
서버에 데이터베이스를 나열하여 데이터베이스가 생성되었는지 확인합니다.
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'SELECT name FROM sys.databases'
Transact-SQL을 사용하여 작업 만들기
다음 단계에서는 Transact-SQL 명령을 사용하여 Linux에서 SQL Server 에이전트 작업을 만듭니다. 작업은 샘플 데이터베이스 SampleDB
의 매일 백업을 실행합니다.
팁
모든 T-SQL 클라이언트를 사용하여 이러한 명령을 실행할 수 있습니다. 예를 들어 Linux에서 Linux에 SQL Server 명령줄 도구 sqlcmd 및 bcp 설치또는 Visual Studio Code용 SQL Server 익스텐션을 사용할 수 있습니다. 원격 Windows Server에서도 SSMS(SQL Server Management Studio)에서 쿼리를 실행하거나 다음 섹션에 설명된 작업 관리용 UI 인터페이스를 사용할 수 있습니다.
sp_add_job을 사용하여
Daily SampleDB Backup
작업을 만듭니다.-- Adds a new job executed by the SQLServerAgent service -- called 'Daily SampleDB Backup' USE msdb; GO EXECUTE dbo.sp_add_job @job_name = N'Daily SampleDB Backup'; GO
sp_add_jobstep을 호출하여
SampleDB
데이터베이스의 백업을 만드는 작업 단계를 만듭니다.EXECUTE sp_add_jobstep @job_name = N'Daily SampleDB Backup', @step_name = N'Backup database', @subsystem = N'TSQL', @command = N'BACKUP DATABASE SampleDB TO DISK = \ N''/var/opt/mssql/data/SampleDB.bak'' WITH NOFORMAT, NOINIT, \ NAME = ''SampleDB-full'', SKIP, NOREWIND, NOUNLOAD, STATS = 10', @retry_attempts = 5, @retry_interval = 5; GO
그런 다음 sp_add_schedule을 사용하여 작업에 대한 매일 일정을 만듭니다.
-- Creates a schedule called 'Daily' EXECUTE dbo.sp_add_schedule @schedule_name = N'Daily SampleDB', @freq_type = 4, @freq_interval = 1, @active_start_time = 233000; USE msdb; GO
sp_attach_schedule을 사용하여 작업 일정을 작업에 연결합니다.
-- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job EXECUTE sp_attach_schedule @job_name = N'Daily SampleDB Backup', @schedule_name = N'Daily SampleDB'; GO
sp_add_jobserver을 사용하여 대상 서버에 작업을 할당합니다. 이 예제에서 대상은 로컬 서버입니다.
EXECUTE dbo.sp_add_jobserver @job_name = N'Daily SampleDB Backup', @server_name = N'(local)'; GO
sp_start_job을 사용하여 작업을 시작합니다.
EXECUTE dbo.sp_start_job N' Daily SampleDB Backup'; GO
SSMS를 사용하여 작업 만들기
Windows에서 SSMS(SQL Server Management Studio)를 사용하여 원격으로 작업을 만들고 관리할 수도 있습니다.
Windows에서 SSMS를 시작하여 Linux SQL Server 인스턴스에 연결합니다. 자세한 내용은 Windows에서 SQL Server Management Studio를 사용하여 SQL Server on Linux 관리를 참조하세요.
SampleDB
라는 샘플 데이터베이스를 만들었는지 확인합니다.SQL 에이전트가 Linux에 SQL Server 에이전트를 설치하고 올바르게 구성했는지 확인합니다. 개체 탐색기 SQL Server 에이전트 옆에 있는 더하기 기호를 찾습니다. SQL Server 에이전트를 사용하도록 설정되어 있지 않은 경우 Linux에서 mssql-server 서비스를 다시 시작합니다.
새 작업을 만듭니다.
작업에 이름을 지정하고 작업 단계를 만듭니다.
사용할 하위 시스템 및 작업 단계에서 수행해야 하는 작업을 지정합니다.
새 일정을 만듭니다.
작업을 시작합니다.
다음 단계
이 자습서에서는 다음 작업 방법을 알아보았습니다.
- SQL Server Agent on Linux 설치
- Transact-SQL 및 시스템 저장 프로시저를 사용하여 작업 만들기
- 매일 데이터베이스 백업을 수행하는 작업 만들기
- SSMS UI를 사용하여 작업 만들기 및 관리
다음으로, 작업을 만들고 관리하기 위한 다른 기능을 살펴봅니다.