다음을 통해 공유


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 릴리스 정보를 참조하세요.

필수 조건

다음은 이 자습서를 완료하는 데 필요한 전제 조건입니다.

다음 전제 조건은 선택 사항입니다.

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에서 Linux에 SQL Server 명령줄 도구 sqlcmd 및 bcp 설치또는 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를 사용하여 SQL Server on Linux 관리를 참조하세요.

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

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

    SQL Server 에이전트가 설치되었는지 확인하는 방법을 보여 주는 스크린샷.

  4. 새 작업을 만듭니다.

    새 작업을 만드는 방법을 보여 주는 스크린샷.

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

    작업 단계를 만드는 방법을 보여 주는 스크린샷.

  6. 사용할 하위 시스템 및 작업 단계에서 수행해야 하는 작업을 지정합니다.

    작업 하위 시스템을 보여 주는 스크린샷

    작업 단계 동작을 보여 주는 스크린샷

  7. 새 일정을 만듭니다.

    일정 옵션이 강조 표시되고 새로 만들기 옵션이 호출된 새 작업 대화 상자의 스크린샷.

    확인 옵션이 호출된 새 작업 대화 상자의 스크린샷.

  8. 작업을 시작합니다.

    SQL Server 에이전트 작업을 시작하는 방법을 보여 주는 스크린샷.

다음 단계

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

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

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