Aracılığıyla paylaş


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

Şunlar için geçerlidir:Linux üzerinde SQL Server

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 üzerinde SQL Server Agent işi oluşturma örneği sağlanır.

  • Linux'ta 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 üzerinde SQL Server Aracısı ile ilgili bilinen sorunlar için bkz. Linux üzerinde SQL Server: 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 Aracısı'nı etkinleştirme

Linux üzerinde SQL Server Aracısı'nı kullanmak için, önce SQL Server Aracısını SQL Server'ın zaten yüklü olduğu bir makinede etkinleştirmeniz gerekir.

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

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

    sudo systemctl restart mssql-server
    

Not

SQL Server 2017 (14.x) CU 4'den başlayarak, SQL Server Aracısı mssql-server paketine eklenir ve varsayılan olarak devre dışı bırakılır. CU 4 öncesi ajanın ayarlanması 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 komutu ç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, linux üzerinde Transact-SQL komutlarıyla 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ı Linux'a yükleme veya Visual Studio Code için SQL Server uzantısını kullanabilirsiniz. Uzak bir Windows Server'dan, SQL Server Management Studio'da (SSMS) sorgular ç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. Linux üzerinde SQL Server'ı yönetmek için Windows üzerinde 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'a SQL Server Aracısı Yükle olduğunu ve doğru yapılandırıldığını doğrulayın. Nesne Gezgini'nde SQL Server Aracısı'nın yanındaki artı işaretini bulun. SQL Server Aracısı etkin değilse Linux üzerinde mssql-server hizmetini yeniden başlatmayı deneyin.

    SQL Server Aracısı'nın 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.

    İş alt sistemini gösteren ekran görüntüsü.

    İş adımı eylemini gösteren 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'ta SQL Server Agent'ı yükleme
  • İş oluşturmak için Transact-SQL ve sistem saklı yordamlarını kullanın
  • 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:

SQL Server Agent belgeleri