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.
Ş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şullara sahip Linux makinesi:
Aşağıdaki önkoşullar isteğe bağlıdır:
- SSMS ile Windows makinesi:
- İsteğe bağlı SSMS adımları için SQL Server Management Studio'yu yükleyin.
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.
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 trueSQL 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.
Linux makinenizde bir bash terminal oturumu açın.
Transact-SQL komutu ç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, 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.
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. Linux üzerinde SQL Server'ı yönetmek için Windows üzerinde SQL Server Management Studio kullanma.
SampleDBadlı bir örnek veritabanı oluşturduğunuzu doğrulayın.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.
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'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: