Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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şullara sahip Linux makinesi:
- Quickstart: Red Hat Enterprise Linux'ta SQL Server yükleyin ve veritabanı oluşturun
Quickstart: SUSE Linux Enterprise Server - Quickstart: Komut satırı araçlarıyla SQL Server yükleyin ve Ubuntu üzerinde bir veritabanı oluşturun.
Not
SQL Server 2025(17.x) tarihinden itibaren SUSE Linux Enterprise Server (SLES) desteklenmez.
Aşağıdaki önkoşullar isteğe bağlıdır:
- Windows yüklü makine ile SSMS:
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.
SQL Server Agent etkinleştirmek için aşağıdaki komutu çalıştırın.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled trueaş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.
Linux makinenizde bir bash terminal oturumu açın.
Transact-SQL komutunu çalıştırmak için
CREATE DATABASEkullanın./opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'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.
sp_add_job kullanarak
Daily SampleDB Backupadlı 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'; GOVeritabanı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; GOArdı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; GOsp_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İş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İş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.
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.
SampleDBadlı bir örnek veritabanı oluşturduğunuzu doğrulayın.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.
Yeni bir iş oluşturun.
İşinize bir ad verin ve iş adımınızı oluşturun.
Kullanmak istediğiniz alt sistemi ve iş adımının ne yapacağını belirtin.
Yeni bir iş zamanlaması oluşturun.
İşinizi başlatın.
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: