만들기 및 Linux에서 SQL Server 에이전트 작업 실행Create and run SQL Server Agent jobs on Linux

이 항목은 다음에 적용됩니다. 아니요Windows의 SQL Server예Linux의 SQL Server아니요Azure SQL Database아니요Azure SQL Data Warehouse아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

SQL Server 작업이 정기적으로 SQL Server 데이터베이스에 동일한 명령 시퀀스를 수행 하는 데 사용 됩니다.SQL Server jobs are used to regularly perform the same sequence of commands in your SQL Server database. 이 자습서에서는 TRANSACT-SQL 및 SQL Server Management Studio (SSMS)를 모두 사용 하 여 Linux에서 SQL Server 에이전트 작업을 만드는 방법의 예를 제공 합니다.This tutorial provides an example of how to create a SQL Server Agent job on Linux using both Transact-SQL and SQL Server Management Studio (SSMS).

  • Linux에서 SQL Server 에이전트를 설치 합니다.Install SQL Server Agent on Linux
  • 일별 데이터베이스 백업을 수행 하려면 새 작업 만들기Create a new job to perform daily database backups
  • 예약 및 실행 작업Schedule and run the job
  • (선택 사항) SSMS에서 동일한 단계를 수행 합니다.Perform the same steps in SSMS (optional)

Linux에서 SQL Server 에이전트와 알려진된 문제에 대 한 참조는 릴리스 정보합니다.For known issues with SQL Server Agent on Linux, see the Release Notes.

필수 구성 요소Prerequisites

이 자습서를 완료 하려면 다음 필수 구성 요소가 필요 합니다.The following prerequisites are required to complete this tutorial:

  • 다음과 같은 전제 조건 사용 하는 Linux 컴퓨터:Linux machine with the following prerequisites:
    • SQL Server 2017 (RHEL, SLES, 또는 Ubuntu) 명령줄 도구를 사용 합니다.SQL Server 2017 (RHEL, SLES, or Ubuntu) with command-line tools.

다음 필수 구성 요소는 선택적입니다.The following prerequisites are optional:

SQL Server 에이전트를 설치 합니다.Install SQL Server Agent

Linux에서 SQL Server 에이전트를 사용 하려면 먼저 설치 해야는 mssql 서버 에이전트 설치 된 SQL Server 2017이 이미 있는 컴퓨터에 패키지 합니다.To use SQL Server Agent on Linux, you must first install the mssql-server-agent package on a machine that already has SQL Server 2017 installed.

  1. 설치 mssql 서버 에이전트 Linux OS에 대 한 적절 한 명령을 사용 합니다.Install mssql-server-agent with the appropriate command for your Linux OS.

    플랫폼Platform 설치 명령Installation command(s)
    RHELRHEL sudo yum install mssql-server-agent
    SLESSLES sudo zypper refresh
    sudo zypper update mssql-server-agent
    UbuntuUbuntu sudo apt-get update
    sudo apt-get install mssql-server-agent
  2. 다음 명령을 사용 하 여 SQL Server를 다시 시작 합니다.Restart SQL Server with the following command:

    sudo systemctl restart mssql-server
    

예제 데이터베이스 만들기Create a sample database

다음 단계를 사용 하 여 명명 된 예제 데이터베이스를 만드는 SampleDB합니다.Use the following steps to create a sample database named SampleDB. 이 데이터베이스는 매일 백업 작업에 사용 됩니다.This database is used for the daily backup job.

  1. Linux 컴퓨터에서 bash 터미널 세션을 엽니다.On your Linux machine, open a bash terminal session.

  2. 사용 하 여 sqlcmd Transact SQL을 실행 하려면 CREATE DATABASE 명령입니다.Use sqlcmd to run a Transact-SQL CREATE DATABASE command.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q 'CREATE DATABASE SampleDB'
    
  3. 데이터베이스 서버에서 데이터베이스를 나열 하 여 생성 되었는지 확인 합니다.Verify the database is created by listing the databases on your server.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q 'SELECT Name FROM sys.Databases'
    

Transact SQL 있는 job 만들기Create a job with Transact-SQL

다음 단계에서는 TRANSACT-SQL 명령을 사용 하 여 Linux에서 SQL Server 에이전트 작업을 만듭니다.The following steps create a SQL Server Agent job on Linux with Transact-SQL commands. 작업이 실행 예제 데이터베이스의 매일 백업을 SampleDB합니다.The job runs a daily backup of the sample database, SampleDB.

이러한 명령을 실행 하는 T-SQL 클라이언트를 사용할 수 있습니다.You can use any T-SQL client to run these commands. 예를 들어 Linux에서 사용할 수 있습니다 sqlcmd 또는 Visual Studio Code합니다.For example, on Linux you can use sqlcmd or Visual Studio Code. 원격 Windows 서버에서 SQL Server Management Studio (SSMS) 쿼리를 실행 하거나 다음 섹션에 설명 된 작업 관리에 대 한 UI 인터페이스를 사용 하 여 수도 있습니다.From a remote Windows Server, you can also run queries in SQL Server Management Studio (SSMS) or use the UI interface for job management, which is described in the next section.

  1. 사용 하 여 sp_add_job 라는 작업을 만들려면 Daily SampleDB Backup합니다.Use sp_add_job to create a job named 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 데이터베이스입니다.Call sp_add_jobstep to create a job step that creates a backup of the SampleDB database.

    -- 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합니다.Then create a daily schedule for your job with 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합니다.Attach the job schedule to the job with 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 작업이 대상 서버에 할당할 수 있습니다.Use sp_add_jobserver to assign the job to a target server. 이 예제에서는 대상 로컬 서버를입니다.In this example, the target is the local server.

    EXEC dbo.sp_add_jobserver
       @job_name = N'Daily SampleDB Backup',
       @server_name = N'(LOCAL)';
    GO
    
  6. 작업을 시작 sp_start_job합니다.Start the job with sp_start_job.

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

SSMS 있는 job 만들기Create a job with SSMS

만들고 및 원격으로 SQL Server Management Studio (SSMS)를 사용 하 여 Windows에서 작업을 관리할 수도 있습니다.You can also create and manage jobs remotely using SQL Server Management Studio (SSMS) on Windows.

  1. Windows에서 SSMS를 시작 하 고 Linux SQL Server 인스턴스에 연결 합니다.Start SSMS on Windows and connect to your Linux SQL Server instance. 자세한 내용은 참조 linux SSMS로 SQL Server 관리합니다.For more information, see Manage SQL Server on Linux with SSMS.

  2. 라는 예제 데이터베이스를 만들지 않았는지 확인 SampleDB합니다.Verify that you have created a sample database named SampleDB.

    Create a SampleDB database

  3. SQL 에이전트 되었는지 확인 설치 하 고 올바르게 구성 합니다.Verify that SQL Agent was installed and configured correctly. 개체 탐색기에서 SQL Server 에이전트 옆의 더하기 기호를 찾습니다.Look for the plus sign next to SQL Server Agent in the Object Explorer. SQL Server 에이전트를 사용 하지 않는 경우 다시 시작 해 보십시오는 mssql 서버 Linux 기반 서비스입니다.If SQL Server Agent is not enabled, try restarting the mssql-server service on Linux.

    SQL Server 에이전트 설치 확인

  4. 새 작업을 만듭니다.Create a new job.

    새 작업 만들기

  5. 작업 이름을 지정 하 고 작업 단계를 만듭니다.Give your job a name and create your job step.

    작업 단계 만들기

  6. 작업 단계에서 수행 해야 하 고 사용 하려는 하위 시스템을 지정 합니다.Specify what subsystem you want to use and what the job step should do.

    작업 하위 시스템

    작업 단계 동작

  7. 새 작업 일정을 만듭니다.Create a new job schedule.

    작업 일정

    작업 일정

  8. 작업을 시작 합니다.Start your job.

    Start the SQL Server Agent job

다음 단계Next Steps

이 자습서에서는 알아보았습니다 하는 방법:In this tutorial, you learned how to:

  • Linux에서 SQL Server 에이전트를 설치 합니다.Install SQL Server Agent on Linux
  • 사용 하 여 TRANSACT-SQL 및 시스템 저장 프로시저를 만드는 작업Use Transact-SQL and system stored procedures to create jobs
  • 일별 데이터베이스 백업을 수행 하는 작업 만들기Create a job that performs daily database backups
  • SSMS UI를 사용 하 여 만들고 작업 관리Use SSMS UI to create and manage jobs

다음으로, 만들기 및 작업 관리에 대 한 다른 기능을 탐색 합니다.Next, explore other capabilities for creating and managing jobs: