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 에이전트 알려진 문제는 LinuxSQL Server 2017 릴리스 정보를 참조하세요.

필수 조건

이 자습서를 완료하려면 다음 필수 구성 요소가 필요합니다.

다음 필수 구성 요소는 선택 사항입니다.

SQL Server 에이전트 사용

Linux에서 SQL Server 에이전트 사용하려면 먼저 SQL Server가 이미 설치된 컴퓨터에서 SQL Server 에이전트 사용하도록 설정해야 합니다.

  1. SQL Server 에이전트 사용하도록 설정하려면 아래 단계를 수행합니다.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. 다음 명령을 사용하여 SQL Server를 다시 시작합니다.

    sudo systemctl restart mssql-server
    

참고 항목

SQL Server 2017(14.x) CU 4부터 SQL Server 에이전트 패키지에 mssql-server 포함되며 기본적으로 사용하지 않도록 설정됩니다. CU 4 이전에 설정된 에이전트는 Linux에 SQL Server 에이전트 설치를 참조하세요.

샘플 데이터베이스 만들기

다음 단계를 사용하여 이름이 지정된 샘플 데이터베이스를 만듭니다 SampleDB. 이 데이터베이스는 일일 백업 작업에 사용됩니다.

  1. Linux 머신에서 bash 터미널 세션을 엽니다.

  2. sqlcmd를 사용하여 Transact-SQL CREATE DATABASE 명령을 실행합니다.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q 'CREATE DATABASE SampleDB'
    
  3. 서버에 데이터베이스를 나열하여 데이터베이스가 생성되었는지 확인합니다.

    /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 인터페이스를 사용할 수도 있습니다.

  1. 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
    
  2. 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
    
  3. 그런 다음 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
    
  4. 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
    
  5. sp_add_jobserver 사용하여 대상 서버에 작업을 할당합니다. 이 예제에서 대상은 로컬 서버입니다.

    EXEC dbo.sp_add_jobserver
       @job_name = N'Daily SampleDB Backup',
       @server_name = N'(local)';
    GO
    
  6. sp_start_job 사용하여 작업을 시작합니다.

    EXEC dbo.sp_start_job N' Daily SampleDB Backup' ;
    GO
    

SSMS를 사용하여 작업 만들기

Windows에서 SSMS(SQL Server Management Studio)를 사용하여 원격으로 작업을 만들고 관리할 수도 있습니다.

  1. Windows에서 SSMS를 시작하고 Linux SQL Server 인스턴스에 연결합니다. 자세한 내용은 Windows의 SQL Server Management Studio를 사용하여 Linux의 SQL Server를 관리합니다.

  2. 라는 SampleDB샘플 데이터베이스를 만들 수 있는지 확인합니다.

    Create a SampleDB database
  3. SQL 에이전트가 Linux에 SQL Server 에이전트 설치되고 올바르게 구성되었는지 확인합니다. 개체 탐색기 SQL Server 에이전트 옆에 있는 더하기 기호를 찾습니다. SQL Server 에이전트 사용하도록 설정되지 않은 경우 Linux에서 mssql-server 서비스를 다시 시작합니다.

    Screenshot showing how to verify SQL Server Agent was installed.

  4. 새 작업을 만듭니다.

    Screenshot showing how to create a new job.

  5. 작업에 이름을 지정하고 작업 단계를 만듭니다.

    Screenshot showing how to create a job step.

  6. 사용할 하위 시스템 및 작업 단계를 지정합니다.

    Screenshot showing job subsystem.

    Screenshot showing job step action.

  7. 새 작업 일정을 만듭니다.

    Screenshot of the New Job dialog box with the Schedules option highlighted and the New option called out.

    Screenshot of the New Job dialog box with the OK option called out.

  8. 작업을 시작합니다.

    Screenshot showing how to Start the SQL Server Agent job.

다음 단계

이 자습서에서는 다음 작업 방법을 알아보았습니다.

  • Linux에 SQL Server 에이전트 설치
  • Transact-SQL 및 시스템 저장 프로시저를 사용하여 작업 만들기
  • 매일 데이터베이스 백업을 수행하는 작업 만들기
  • SSMS UI를 사용하여 작업 만들기 및 관리

다음으로, 작업을 만들고 관리하기 위한 다른 기능을 살펴봅니다.