Linux에서 SQL Server 에이전트 작업 만들기 및 실행
적용 대상:SQL Server - Linux
SQL Server 작업은 SQL Server 데이터베이스에서 동일한 명령 시퀀스를 정기적으로 수행하는 데 사용됩니다. 이 자습서에서는 Transact-SQL 및 SSMS(SQL Server Management Studio)를 사용하여 Linux에서 SQL Server 에이전트 작업을 만드는 방법에 대한 예제를 제공합니다.
- Linux에 SQL Server 에이전트 설치
- 일별 데이터베이스 백업을 수행하는 새 작업 만들기
- 작업 예약 및 실행
- SSMS에서 동일한 단계를 수행합니다(선택 사항).
Linux의 SQL Server 에이전트 알려진 문제는 Linux의 SQL Server 2017 릴리스 정보를 참조하세요.
필수 조건
이 자습서를 완료하려면 다음 필수 구성 요소가 필요합니다.
다음 필수 구성 요소가 있는 Linux 머신:
다음 필수 구성 요소는 선택 사항입니다.
- SSMS가 있는 Windows 머신:
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에서 Sql Server 명령줄 도구 sqlcmd 및 bcp를 Linux에 설치하거나 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 EXEC dbo.sp_add_job @job_name = N'Daily SampleDB Backup'; GO
sp_add_jobstep 호출하여 데이터베이스의
SampleDB
백업을 만드는 작업 단계를 만듭니다.-- Adds a step (operation) to the job EXEC 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' EXEC 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 EXEC sp_attach_schedule @job_name = N'Daily SampleDB Backup', @schedule_name = N'Daily SampleDB'; GO
sp_add_jobserver 사용하여 대상 서버에 작업을 할당합니다. 이 예제에서 대상은 로컬 서버입니다.
EXEC dbo.sp_add_jobserver @job_name = N'Daily SampleDB Backup', @server_name = N'(local)'; GO
sp_start_job 사용하여 작업을 시작합니다.
EXEC 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를 사용하여 Linux의 SQL Server를 관리합니다.
라는
SampleDB
샘플 데이터베이스를 만들 수 있는지 확인합니다.SQL 에이전트가 Linux에 SQL Server 에이전트 설치되고 올바르게 구성되었는지 확인합니다. 개체 탐색기 SQL Server 에이전트 옆에 있는 더하기 기호를 찾습니다. SQL Server 에이전트 사용하도록 설정되지 않은 경우 Linux에서 mssql-server 서비스를 다시 시작합니다.
새 작업을 만듭니다.
작업에 이름을 지정하고 작업 단계를 만듭니다.
사용할 하위 시스템 및 작업 단계를 지정합니다.
새 작업 일정을 만듭니다.
작업을 시작합니다.
다음 단계
이 자습서에서는 다음 작업 방법을 알아보았습니다.
- Linux에 SQL Server 에이전트 설치
- Transact-SQL 및 시스템 저장 프로시저를 사용하여 작업 만들기
- 매일 데이터베이스 백업을 수행하는 작업 만들기
- SSMS UI를 사용하여 작업 만들기 및 관리
다음으로, 작업을 만들고 관리하기 위한 다른 기능을 살펴봅니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기