Membuat dan menjalankan pekerjaan SQL Server Agent di Linux

Berlaku untuk:SQL Server - Linux

Pekerjaan SQL Server digunakan untuk secara teratur melakukan urutan perintah yang sama dalam database SQL Server Anda. Tutorial ini memberikan contoh cara membuat pekerjaan SQL Server Agent di Linux menggunakan Transact-SQL dan SQL Server Management Studio (SSMS).

  • Menginstal SQL Server Agent di Linux
  • Membuat pekerjaan baru untuk melakukan pencadangan database harian
  • Menjadwalkan dan menjalankan pekerjaan
  • Lakukan langkah yang sama di SSMS (opsional)

Untuk masalah umum dengan SQL Server Agent di Linux, lihat Catatan rilis untuk SQL Server 2017 di Linux.

Prasyarat

Prasyarat berikut diperlukan untuk menyelesaikan tutorial ini:

Prasyarat berikut bersifat opsional:

Mengaktifkan SQL Server Agent

Untuk menggunakan SQL Server Agent di Linux, Anda harus terlebih dahulu mengaktifkan SQL Server Agent pada komputer yang sudah menginstal SQL Server.

  1. Untuk mengaktifkan SQL Server Agent, ikuti langkah di bawah ini.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Mulai ulang SQL Server dengan perintah berikut:

    sudo systemctl restart mssql-server
    

Catatan

Dimulai dengan SQL Server 2017 (14.x) CU 4, SQL Server Agent disertakan dengan mssql-server paket dan dinonaktifkan secara default. Untuk Penyiapan Agen sebelum CU 4, lihat Menginstal SQL Server Agent di Linux.

Membuat database sampel

Gunakan langkah-langkah berikut untuk membuat database sampel bernama SampleDB. Database ini digunakan untuk pekerjaan pencadangan harian.

  1. Di komputer Linux Anda, buka sesi terminal bash.

  2. Gunakan sqlcmd untuk menjalankan perintah Transact-SQL CREATE DATABASE .

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q 'CREATE DATABASE SampleDB'
    
  3. Verifikasi bahwa database dibuat dengan mencantumkan database di server Anda.

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

Membuat pekerjaan dengan Transact-SQL

Langkah-langkah berikut membuat pekerjaan SQL Server Agent di Linux dengan perintah Transact-SQL. Pekerjaan menjalankan cadangan harian dari database sampel, SampleDB.

Tip

Anda dapat menggunakan klien T-SQL apa pun untuk menjalankan perintah ini. Misalnya, di Linux Anda dapat menggunakan Instal alat baris perintah SQL Server sqlcmd dan bcp pada ekstensi Linux atau SQL Server untuk Visual Studio Code. Dari Windows Server jarak jauh, Anda juga dapat menjalankan kueri di SQL Server Management Studio (SSMS) atau menggunakan antarmuka UI untuk manajemen pekerjaan, yang dijelaskan di bagian berikutnya.

  1. Gunakan sp_add_job untuk membuat pekerjaan bernama 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. Panggil sp_add_jobstep untuk membuat langkah pekerjaan yang membuat cadangan 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. Kemudian buat jadwal harian untuk pekerjaan Anda dengan 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. Lampirkan jadwal pekerjaan ke pekerjaan dengan 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. Gunakan sp_add_jobserver untuk menetapkan pekerjaan ke server target. Dalam contoh ini, targetnya adalah server lokal.

    EXEC dbo.sp_add_jobserver
       @job_name = N'Daily SampleDB Backup',
       @server_name = N'(local)';
    GO
    
  6. Mulai pekerjaan dengan sp_start_job.

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

Membuat pekerjaan dengan SSMS

Anda juga dapat membuat dan mengelola pekerjaan dari jarak jauh menggunakan SQL Server Management Studio (SSMS) di Windows.

  1. Mulai SSMS di Windows dan sambungkan ke instans Linux SQL Server Anda. Untuk informasi selengkapnya, lihat Menggunakan SQL Server Management Studio di Windows untuk mengelola SQL Server di Linux.

  2. Verifikasi bahwa Anda telah membuat database sampel bernama SampleDB.

    Create a SampleDB database
  3. Verifikasi bahwa Agen SQL menginstal SQL Server Agent di Linux dan dikonfigurasi dengan benar. Cari tanda plus di samping SQL Server Agent di Object Explorer. Jika SQL Server Agent tidak diaktifkan, coba mulai ulang layanan mssql-server di Linux.

    Screenshot showing how to verify SQL Server Agent was installed.

  4. Membuat pekerjaan baru.

    Screenshot showing how to create a new job.

  5. Beri nama pekerjaan Anda dan buat langkah pekerjaan Anda.

    Screenshot showing how to create a job step.

  6. Tentukan subsistem apa yang ingin Anda gunakan dan apa yang harus dilakukan langkah pekerjaan.

    Screenshot showing job subsystem.

    Screenshot showing job step action.

  7. Buat jadwal pekerjaan baru.

    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. Mulai pekerjaan Anda.

    Screenshot showing how to Start the SQL Server Agent job.

Langkah selanjutnya

Dalam tutorial ini, Anda mempelajari cara:

  • Menginstal SQL Server Agent di Linux
  • Gunakan Transact-SQL dan prosedur tersimpan sistem untuk membuat pekerjaan
  • Membuat pekerjaan yang melakukan pencadangan database harian
  • Menggunakan UI SSMS untuk membuat dan mengelola pekerjaan

Selanjutnya, jelajahi kemampuan lain untuk membuat dan mengelola pekerjaan: