Linux'ta SQL Server Agent işleri oluşturma ve çalıştırma

Uygulama alanı:SQL Server üzerinde Linux

SQL Server işleri, SQL Server veritabanınızda aynı komut dizisini düzenli olarak gerçekleştirmek için kullanılır. Bu öğreticide hem Transact-SQL hem de SQL Server Management Studio (SSMS) kullanarak Linux'ta bir SQL Server Agent işi oluşturma örneği sağlanır.

  • Linux'a SQL Server Agent yükleme
  • Günlük veritabanı yedeklemeleri gerçekleştirmek için yeni bir iş oluşturma
  • İşi zamanla ve çalıştır
  • SSMS'de aynı adımları gerçekleştirme (isteğe bağlı)

Linux'ta SQL Server Agent ile ilgili bilinen sorunlar için bkz. SQL Server on Linux: Bilinen sorunlar.

Önkoşullar

Bu öğreticiyi tamamlamak için aşağıdaki önkoşullar gereklidir:

Aşağıdaki önkoşullar isteğe bağlıdır:

SQL Server Agent etkinleştirme

Linux'ta SQL Server Agent kullanmak için, önce SQL Server yüklenmiş bir makinede SQL Server Agent etkinleştirmeniz gerekir.

  1. SQL Server Agent etkinleştirmek için aşağıdaki komutu çalıştırın.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. aşağıdaki komutla SQL Server yeniden başlatın:

    sudo systemctl restart mssql-server
    

Not

SQL Server 2017 (14.x) CU 4'den başlayarak, SQL Server Agent mssql-server paketine eklenir ve varsayılan olarak devre dışı bırakılır. CU 4 öncesi Agent kurulumu için bkz. Linux'ta SQL Server Agent yükleme.

Örnek veritabanı oluşturma

SampleDBadlı örnek bir veritabanı oluşturmak için aşağıdaki adımları kullanın. Bu veritabanı günlük yedekleme işi için kullanılır.

  1. Linux makinenizde bir bash terminal oturumu açın.

  2. Transact-SQL komutunu çalıştırmak için CREATE DATABASE kullanın.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
    
  3. Sunucunuzdaki veritabanlarını listeleyerek veritabanının oluşturulduğunu doğrulayın.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'SELECT name FROM sys.databases'
    

Transact-SQL ile iş oluşturma

Aşağıdaki adımlar, Transact-SQL komutlarıyla Linux'ta bir SQL Server Agent işi oluşturur. İş, SampleDBörnek veritabanının günlük yedekleme işlemini gerçekleştirir.

Bahşiş

Bu komutları çalıştırmak için herhangi bir T-SQL istemcisini kullanabilirsiniz. Örneğin, Linux'ta sqlcmd ve bcp SQL Server komut satırı araçlarını yükleyebilirsiniz veya Visual Studio Code için SQL Server uzantısını kullanabilirsiniz. Uzak bir Windows Server, SQL Server Management Studio (SSMS) içinde sorgu çalıştırabilir veya bir sonraki bölümde açıklanan iş yönetimi için kullanıcı arabirimini kullanabilirsiniz.

  1. sp_add_job kullanarak Daily SampleDB Backup adlı bir iş oluşturun.

    -- 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';
    GO
    
  2. Veritabanının yedeğini oluşturan bir iş adımı oluşturmak için sp_add_jobstep çağırın 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
    
  3. Ardından sp_add_schedule ile işiniz için günlük bir zamanlama oluşturun.

    -- 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;
    GO
    
  4. sp_attach_schedule ile işe iş zamanlamasını ekleyin.

    -- 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';
    GO
    
  5. İşi bir hedef sunucuya atamak için sp_add_jobserver kullanın. Bu örnekte hedef, yerel sunucudur.

    EXECUTE dbo.sp_add_jobserver
        @job_name = N'Daily SampleDB Backup',
        @server_name = N'(local)';
    GO
    
  6. İşi sp_start_job ile başlatın.

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

SSMS ile iş oluşturma

ayrıca Windows üzerinde SQL Server Management Studio (SSMS) kullanarak işleri uzaktan oluşturabilir ve yönetebilirsiniz.

  1. Windows'da SSMS'yi başlatın ve Linux SQL Server örneğine bağlanın. Daha fazla bilgi için bkz. SQL Server on Linux yönetmek için Windows SQL Server Management Studio kullanma.

  2. SampleDBadlı bir örnek veritabanı oluşturduğunuzu doğrulayın.

    SampleDB veritabanı oluşturma işleminin ekran görüntüsü.

  3. SQL Aracısı'nın Linux üzerinde SQL Server Agent yükleyip doğru yapılandırıldığını doğrulayın. Object Explorer'da SQL Server Agent'in yanındaki artı işaretini arayın. SQL Server Agent etkinleştirilmediyse Linux üzerinde mssql-server hizmetini yeniden başlatmayı deneyin.

     SQL Server Agent yüklendiğini doğrulamayı gösteren ekran görüntüsü.

  4. Yeni bir iş oluşturun.

    Yeni iş oluşturmayı gösteren ekran görüntüsü.

  5. İşinize bir ad verin ve iş adımınızı oluşturun.

    İş adımının nasıl oluşturulacağını gösteren ekran görüntüsü.

  6. Kullanmak istediğiniz alt sistemi ve iş adımının ne yapacağını belirtin.

    SSMS'deki Yeni İş iletişim kutusunun ekran görüntüsü, bir iş adımı oluşturmak için Yeni düğmesinin vurgulandığı Adımlar sayfasını gösterir.

    Tamam düğmesinin vurgulandığı SampleDB için T-SQL BACKUP DATABASE komutunu gösteren Yeni İş Adımı iletişim kutusunun ekran görüntüsü.

  7. Yeni bir iş zamanlaması oluşturun.

    Zamanlamalar seçeneğinin vurgulandığı ve Yeni seçeneğinin vurgulandığı Yeni İş iletişim kutusunun ekran görüntüsü.

    Tamam seçeneğinin vurgulu olduğu Yeni İş iletişim kutusunun ekran görüntüsü.

  8. İşinizi başlatın.

     SQL Server Agent işini başlatmayı gösteren ekran görüntüsü.

Sonraki adım

Bu öğreticide şunların nasıl yapılacağını öğrendiniz:

  • Linux'a SQL Server Agent yükleme
  • İş oluşturmak için Transact-SQL ve sistem saklı yordamlarını kullanma
  • Günlük veritabanı yedeklemeleri gerçekleştiren bir iş oluşturma
  • İş oluşturmak ve yönetmek için SSMS kullanıcı arabirimini kullanma

Ardından, iş oluşturmaya ve yönetmeye yönelik diğer özellikleri keşfedin: