Linux에서 :SQL Server 적용
SQL Server 작업은 SQL Server 데이터베이스에서 동일한 명령 시퀀스를 정기적으로 수행하는 데 사용됩니다. 이 자습서에서는 SSMS(Transact-SQL 및 SQL Server Management Studio)를 모두 사용하여 Linux에서 SQL Server 에이전트 작업을 만드는 방법의 예를 제공합니다.
- Linux에 SQL Server 에이전트 설치
- 일별 데이터베이스 백업을 수행하는 새 작업 만들기
- 작업 예약 및 실행
- SSMS에서 동일한 단계를 수행합니다(선택 사항).
Linux에서의 SQL Server 에이전트의 알려진 문제는 SQL Server on Linux: 알려진 문제를 참조하세요.
필수 조건
다음은 이 자습서를 완료하는 데 필요한 전제 조건입니다.
다음 필수 전제 조건을 갖춘 Linux 컴퓨터:
- Quickstart: SQL Server 설치하고 Red Hat Enterprise Linux에 데이터베이스를 만듭니다
Quickstart: SQL Server 설치하고 SUSE Linux Enterprise Server - Quickstart: 명령줄 도구를 사용하여 SQL Server 설치하고 Ubuntu 데이터베이스를 만듭니다.
참고
SQL Server 2025(17.x)부터 SLES(SUSE Linux Enterprise Server)는 지원되지 않습니다.
다음 전제 조건은 선택 사항입니다.
- SSMS가 설치된 Windows 컴퓨터:
- 선택적 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에서 sqlcmd 및 bcp SQL Server 명령줄 도구를 설치하거나 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'; GOsp_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; GOsp_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'; GOsp_add_jobserver을 사용하여 대상 서버에 작업을 할당합니다. 이 예제에서 대상은 로컬 서버입니다.
EXECUTE dbo.sp_add_jobserver @job_name = N'Daily SampleDB Backup', @server_name = N'(local)'; GOsp_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 Server 에이전트가 Linux에 SQL Server 에이전트 설치되고 정확하게 구성되었는지 확인합니다. 개체 탐색기에서 SQL Server 에이전트 옆의 더하기 기호를 찾습니다. SQL Server 에이전트 사용하도록 설정되지 않은 경우 Linux에서 mssql-server 서비스를 다시 시작해 보세요.
새 작업을 만듭니다.
작업에 이름을 지정하고 작업 단계를 만듭니다.
사용할 하위 시스템 및 작업 단계에서 수행해야 하는 작업을 지정합니다.
새 일정을 만듭니다.
작업을 시작합니다.
SQL Server 에이전트 작업을 시작하는 방법을 보여주는 스크린샷입니다.
다음 단계
이 자습서에서는 다음 작업 방법을 알아보았습니다.
- Linux에 SQL Server 에이전트 설치
- Transact-SQL 및 시스템 저장 프로시저를 사용하여 작업 만들기
- 매일 데이터베이스 백업을 수행하는 작업 만들기
- SSMS UI를 사용하여 작업 만들기 및 관리
다음으로, 작업을 만들고 관리하기 위한 다른 기능을 살펴봅니다.