Aracılığıyla paylaş


SQL Server Agent'a genel bakış

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

Bu makalede, SQL Server ve Azure SQL Yönetilen Örneği'nde zamanlanmış yönetim görevlerini ( işler olarak adlandırılır) yürüten bir Microsoft Windows hizmeti olan SQL Server Aracısı'na genel bir bakış sağlanır.

Önemli

Azure SQL Managed Instanceüzerinde, SQL Server Agent özelliklerinin çoğu şu anda desteklenmektedir fakat hepsi değil. Ayrıntılar için bkz. SQL Yönetilen Örneği'nde SQL Server veya SQL Aracısı iş sınırlamalarından Azure SQL Yönetilen Örneği T-SQL farkları .

SQL Server Agent'ın avantajları

SQL Server Aracısı, iş bilgilerini depolamak için SQL Server kullanır. İşler bir veya daha fazla iş adımı içerir. Her adım, veritabanını yedekleme gibi kendi görevini içerir.

SQL Server Aracısı belirli bir olaya yanıt olarak veya isteğe bağlı olarak bir işi zamanlamaya göre çalıştırabilir. Örneğin, tüm şirket sunucularını hafta içi her gün saat başı yedeklemek istiyorsanız, bu görevi otomatikleştirebilirsiniz. Yedeklemeyi Pazartesi ile Cuma günleri arasında saat 22:00'ye kadar çalışacak şekilde zamanlayın. Yedekleme bir sorunla karşılaşırsa, SQL Server Aracısı olayı kaydedebilir ve size bildirebilir.

Uyarı

Varsayılan olarak, kullanıcı hizmeti otomatik olarak başlatmayı açıkça seçmediği sürece SQL Server yüklendiğinde SQL Server Aracısı hizmeti devre dışı bırakılır.

SQL Server Aracısı bileşenleri

SQL Server Aracısı gerçekleştirilecek görevleri, görevlerin ne zaman gerçekleştirildiğini ve görevlerin başarısını veya başarısızlığını nasıl bildireceklerini tanımlamak için aşağıdaki bileşenleri kullanır.

SQL Server Agent hizmetini yönetmek için SQL Server Configuration Manager'ı kullanın ve SQL Server Agent özelliklerini, işlerini, uyarılarını, işleçlerini ve proxy'lerini grafik kullanıcı arabiriminde kolayca yönetmek için SQL Server Management Studio'yu (SSMS) kullanın.

Işleri

İş, SQL Server Agent'ın gerçekleştirdiği belirtilen bir eylem dizisidir. "İşleri kullanarak bir veya daha fazla kez çalıştırılabilen ve başarı veya başarısızlık açısından izleyebileceğiniz bir yönetim görevi tanımlayın." bir iş bir yerel sunucuda veya birden çok uzak sunucuda çalıştırılabilir.

Önemli

BIR SQL Server yük devretme kümesi örneğinde bir yük devretme olayı sırasında çalışan SQL Server Aracısı işleri, başka bir yük devretme kümesi düğümüne yük devretmeden sonra sürdürülemez. bir Hyper-V düğümü duraklatıldığında çalışan SQL Server Aracısı işleri, duraklatma başka bir düğüme yük devretmeye neden olursa sürdürülemez. Bir yük devretme olayı nedeniyle başlayan ancak tamamlanamadıktan sonra tamamlayabilen işler başlatıldı olarak günlüğe kaydedilir, ancak tamamlanma veya hata için ek günlük girdileri gösterilmez. Bu senaryolardaki SQL Server Agent işleri hiç bitmiyor gibi görünüyor.

İşleri çeşitli yollarla çalıştırabilirsiniz:

  • Bir veya daha fazla takvime göre.
  • Bir veya daha fazla uyarıya yanıt olarak.
  • sp_start_job saklı yordamı yürüterek.

bir işteki her eylem bir iş adımıdır. Örneğin, iş adımı bir Transact-SQL deyimi çalıştırmak, SQL Server Integration Services (SSIS) paketini yürütmek veya bir Analysis Services sunucusuna komut vermek olabilir. İş adımları bir işin parçası olarak yönetilir.

Her iş adımı belirli bir güvenlik bağlamında çalışır. Transact-SQL kullanan iş adımları için deyimini EXECUTE AS kullanarak iş adımının güvenlik bağlamını ayarlayın. Diğer iş adımı türleri için, iş adımının güvenlik bağlamını ayarlamak için bir proxy hesabı kullanın.

Belirli bir iş hakkında bilgi edinmek için sp_help_job sistem saklı yordamını kullanın. İşler hakkındaki bilgileri görüntülemek için dbo.sysjobs sistem tablosunu kullanın. Örneğin, bir sunucudaki tüm işler hakkındaki bilgileri görüntülemek için aşağıdaki Transact-SQL (T-SQL) deyimini kullanın:

USE msdb;
GO

SELECT job_id,
       [name]
FROM dbo.sysjobs;

Programlar

Bir zamanlama, bir işin ne zaman çalıştırılacağını belirtir. Aynı zamanlamaya göre birden fazla iş çalıştırılabilir ve aynı işe birden fazla zamanlama uygulanabilir. Zamanlama, bir işin çalıştığı zaman için aşağıdaki koşulları tanımlayabilir:

  • SQL Server Aracısı her başlatıldığında.
  • Bilgisayarın CPU kullanımı boşta olarak tanımladığınız bir düzeyde olduğunda.
  • Belirli bir tarih ve saatte bir kez.
  • Yinelenen bir zamanlamaya göre.

Daha fazla bilgi için bkz. İşlere Zamanlama Oluşturma ve Ekleme.

Uyarılar

Uyarı, belirli bir olaya otomatik yanıttır. Örneğin, bir olay, başlayan bir iş veya belirli bir eşiğe ulaşan sistem kaynakları olabilir. Uyarının hangi koşullar altında gerçekleştiğini tanımlarsınız.

Uyarı aşağıdaki koşullardan birine yanıt verebilir:

  • SQL Server olayları
  • SQL Server performans koşulları
  • SQL Server Agent'ın çalıştığı bilgisayarda Microsoft Windows Yönetim Araçları (WMI) olayları

Bir uyarı aşağıdaki eylemleri gerçekleştirebilir:

  • Bir veya daha fazla operatörü bilgilendir
  • Bir iş çalıştır

Daha fazla bilgi için bkz. SQL Server Aracısı uyarıları.

Operatörler

Operatör, SQL Server'ın bir veya daha fazla örneğinin bakımdan sorumlu bir kişi için kişi bilgilerini tanımlar. Bazı kuruluşlarda operatör sorumlulukları tek bir kişiye atanır. Birden çok sunucusu olan kuruluşlarda, birçok kişi operatör sorumluluklarını paylaşabilir. İşleç, güvenlik bilgileri içermez ve güvenlik unsuru tanımlamaz.

SQL Server, uyarıları işleçlere şu şekilde bildirebilir:

  • E-posta gönder
  • Çağrı cihazı (e-posta yoluyla)
  • net send

Uyarı

Net send kullanarak bildirim göndermek için Windows Messenger hizmetinin SQL Server Agent'ın bulunduğu bilgisayarda başlatılması gerekir.

Önemli

Pager ve net send seçenekleri, SQL Server'ın gelecekteki bir sürümünde SQL Server Aracısı'ndan kaldırılacaktır. Bu özellikleri yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özellikleri kullanan uygulamaları değiştirmeyi planlayın.

E-posta veya çağrı cihazları kullanarak işleçlere bildirim göndermek için SQL Server Agent'ı Veritabanı Postası kullanacak şekilde yapılandırmanız gerekir. Daha fazla bilgi için bkz. Veritabanı Postası.

Bir işleci, bir grup birey için diğer ad olarak tanımlayabilirsiniz. Bu şekilde, bu diğer adın tüm üyeleri aynı anda doğrulanmaz. Daha fazla bilgi için bkz. İşleçler.

SQL Server Aracısı yönetimi için güvenlik

SQL Server Aracısı, msdb sabit sunucu rolünün üyesi olmayan kullanıcılar için SQL Server Aracısı'na erişimi denetlemek için veritabanında aşağıdaki sabit veritabanı rollerinden birini kullanır.

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Bu sabit veritabanı rollerine ek olarak, alt sistemler ve proxy'ler veritabanı yöneticilerinin her iş adımının görevini gerçekleştirmek için gereken en düşük izinlerle çalıştığından emin olmasını sağlar.

Görevler

IÇINDE SQLAgentUserRole, SQLAgentReaderRole ve SQLAgentOperatorRole sabit veritabanı rollerinin msdbüyeleri ve sysadmin sabit sunucu rolünün üyeleri SQL Server Aracısı'na erişebilir. Bu rollerin hiçbirine ait olmayan bir kullanıcı SQL Server Agent'ı kullanamaz. SQL Server Aracısı tarafından kullanılan roller hakkında daha fazla bilgi için bkz. SQL Server Agent güvenliğini uygulama.

Alt Sistemler

Alt sistem, bir iş adımında kullanılabilen işlevselliği temsil eden önceden tanımlanmış bir nesnedir. Her ara sunucu bir veya daha fazla alt sisteme erişebilir. Alt sistemler, bir ara sunucu için kullanılabilen işlevlere erişimi sınırlandırdığından güvenlik sağlar. her iş adımı, Transact-SQL iş adımları dışında bir ara sunucu bağlamında çalışır. Transact-SQL iş adımları, güvenlik bağlamını EXECUTE AS İşin sahibine ayarlamak için komutunu kullanın.

SQL Server, aşağıdaki tabloda listelenen alt sistemleri tanımlar:

Alt sistem adı Açıklama
Microsoft ActiveX Komut Dosyası ActiveX betik işi adımını çalıştırın.

Uyarı ActiveX Betik Alt Sistemi, Microsoft SQL Server'ın gelecekteki bir sürümünde SQL Server Aracısı'ndan kaldırılır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.
İşletim Sistemi (CmdExec) Yürütülebilir bir program çalıştırın.
PowerShell PowerShell betik işi adımını çalıştırın.
Çoğaltım Dağıtıcısı Çoğaltma Dağıtım Aracısı'nı etkinleştiren bir iş adımı çalıştırın.
Çoğaltma Birleşimi Çoğaltma Birleştirme Aracısı'nı etkinleştiren bir iş adımı çalıştırın.
Replikasyon Kuyruğu Okuyucusu Çoğaltma Kuyruk Okuyucu Aracısı'nı etkinleştiren bir iş adımını çalıştırın.
Çoğaltma Anlık Görüntüsü Çoğaltma Anlık Görüntü Aracısı'nı etkinleştiren bir iş adımını çalıştırın.
Çoğaltma İşlem Günlüğü Okuyucusu Bir iş adımı çalıştırarak Çoğaltma Günlüğü Okuyucu Aracısı'nı etkinleştirin.
Analiz Hizmetleri Komutu Bir Analysis Services komutu çalıştırın.
Analysis Services Sorgusu Bir Analysis Services sorgusu çalıştırın.
SSIS paketi yürütme Bir SSIS paketi çalıştırın.

Uyarı

Transact-SQL iş adımları proxy kullanmadığından, Transact-SQL iş adımları için SQL Server Agent alt sistemi yoktur.

SQL Server Aracısı, ara sunucunun güvenlik sorumlusu normalde görevi iş adımında çalıştırma iznine sahip olsa bile alt sistem kısıtlamalarını zorlar. Örneğin, sysadmin sabit sunucu rolünün üyesi olan bir kullanıcının proxy'si, kullanıcı SSIS paketlerini çalıştırabilse bile, ara sunucunun SSIS alt sistemine erişimi olmadığı sürece SSIS işi adımını çalıştıramaz.

Proxy'ler

SQL Server Aracısı, güvenlik bağlamlarını yönetmek için proxy'leri kullanır. Ara sunucu birden fazla iş adımında kullanılabilir. Sysadmin sabit sunucu rolünün üyeleri ara sunucular oluşturabilir.

Her ara sunucu bir güvenlik kimlik bilgilerine karşılık gelir. Her ara sunucu bir alt sistem kümesi ve bir dizi oturum açma işlemiyle ilişkilendirilebilir. Ara sunucu yalnızca ara sunucuyla ilişkilendirilmiş bir alt sistemi kullanan iş adımları için kullanılabilir. Belirli bir ara sunucuyu kullanan bir iş adımı oluşturmak için, iş sahibinin bu ara sunucuyla ilişkili bir oturum açma bilgisi veya proxy'lere sınırsız erişimi olan bir rolün üyesini kullanması gerekir. Sysadmin sabit sunucu rolünün üyelerinin proxy'lere sınırsız erişimi vardır.

SQLAgentUserRole, SQLAgentReaderRole veya SQLAgentOperatorRole üyeleri yalnızca kendilerine belirli erişim verilen proxy'leri kullanabilir. Bu SQL Server Aracısı sabit veritabanı rollerinden herhangi birinin üyesi olan her kullanıcıya, söz konusu ara sunucuları kullanan iş adımları oluşturabilmesi için belirli proxy'lere erişim verilmelidir.

Yönetimi otomatikleştirme

SQL Server Agent'ı SQL Server yönetimini otomatikleştirmek üzere yapılandırmak için aşağıdaki adımları kullanın:

  1. Hangi yönetim görevlerinin veya sunucu olaylarının düzenli olarak gerçekleştiğini ve bu görevlerin veya olayların program aracılığıyla yönetilip yönetilemeyeceğini belirleyin. Görev, öngörülebilir bir adım dizisi içeriyorsa ve belirli bir zamanda veya belirli bir olaya yanıt olarak gerçekleşirse otomasyon için iyi bir adaydır.

  2. SQL Server Management Studio, Transact-SQL betikleri veya SQL Server Yönetim Nesneleri (SMO) kullanarak bir dizi iş, zamanlama, uyarı ve işleç tanımlayın. Daha fazla bilgi için bkz. SQL Server Agent işleri oluşturma.

  3. Tanımladığınız SQL Server Agent işlerini çalıştırın.

Uyarı

SQL Server'ın varsayılan örneği için SQL Server hizmeti SQLSERVERAGENT olarak adlandırılır. Adlandırılmış örnekler için SQL Server Aracısı hizmeti SQLAgent$instancename olarak adlandırılır.

SQL Server'ın birden çok örneğini çalıştırıyorsanız, tüm örneklerde ortak görevleri otomatikleştirmek için çok sunuculu yönetimi kullanabilirsiniz. Daha fazla bilgi için bkz. Kuruluş Genelinde Otomatik Yönetim.

SQL Server Agent'ı kullanmaya başlamak için aşağıdaki görevleri kullanın:

Açıklama Makale
SQL Server Aracısı'nın nasıl yapılandırıldığı açıklanır. SQL Server Aracısını Yapılandırma
SQL Server Agent hizmetini başlatmayı, durdurmayı ve duraklatmayı açıklar. SQL Server Agent hizmetini başlatma, durdurma veya duraklatma
SQL Server Agent hizmeti için bir hesap belirtmek için dikkat edilmesi gerekenler açıklanır. SQL Server Agent hizmeti için bir hesap seçin
SQL Server Aracısı hata günlüğünün nasıl kullanılacağını açıklar. SQL Server Aracısı Hata Günlüğü
Performans nesnelerinin nasıl kullanılacağını açıklar. Performans Nesnelerini Kullanma
SQL Server örneğinin yönetimini otomatikleştirmek için işleri, uyarıları ve işleçleri oluşturduğunuz bir yardımcı program olan Bakım Planı Sihirbazı'nı açıklar. Bakım Planı Sihirbazı'nı kullanma
SQL Server Agent kullanarak yönetim görevlerini otomatikleştirmeyi açıklar. Otomatik Yönetim Görevleri (SQL Server Aracısı)

NOSQLPS

SQL Server 2019'dan başlayarak SQLPS'yi devre dışı bırakabilirsiniz. PowerShell türündeki bir iş adımının ilk satırında, SQL Aracısı'nın SQLPS modülünü otomatik olarak yüklemesini durduran öğesini ekleyebilirsiniz #NOSQLPS. Artık SQL Aracısı İşiniz makinede yüklü Olan PowerShell sürümünü çalıştırır ve ardından istediğiniz başka bir PowerShell modülünü kullanabilirsiniz.

SQL Aracısı İşi adımınızda SqlServer modülünü kullanmak için bu kodu betiğinizin ilk iki satırına yerleştirebilirsiniz.

#NOSQLPS
Import-Module -Name SqlServer

TDS 8.0 ve katı şifreleme desteği

SQL Server 2025 (17.x), katı şifreleme kullanabilen SQL Server Aracısı için TDS 8.0 ve TLS 1.3 desteği sağlar. SQL Server Aracısı, SQL Server Configuration Manager'da (Force Strict Encryption, Force Encryptionveya yok) yapılandırılan şifreleme düzeyini bulur ve SQL Server'a (strict, mandatoryveya optional) bağlanmak için ilgili seçeneği kullanır. Yerel örneğe bağlanan SQL Aracısı T-SQL işleri, SQL Server Aracısı şifreleme ayarlarını kullanır. Bu, SQL Server Aracısı şifreleme ile strict bağlanırsa, yerel bir T-SQL işinin de aynı şifreleme düzeyiyle bağlandığını gösterir.

TLS sürümü etkin SQL Yapılandırma Yöneticisi
Yapılandırma ayarı
Beklenen SQL Server Agent sonucu Açıklama
TLS 1.3 Katı Şifrelemeyi Zorla Başarılı bağlantı ve başlatma TDS 8.0 şifreleme kullanır strict
TLS 1.3 Şifrelemeyi Zorla Bağlanma ve başlatma hatası TLS 1.3 gerektirir strict
TLS 1.3 Hiç kimse Bağlanma ve başlatma hatası TLS 1.3 şifreleme gerektirir strict
TLS 1.2 Katı Şifrelemeyi Zorla Başarılı bağlantı ve başlatma TDS 8.0 TLS 1.2 kullanabilir
TLS 1.2 Şifrelemeyi Zorla Başarılı bağlantı ve başlatma Bağlantı için mandatory TDS 7.x kullanılır
TLS 1.2 Hiç kimse Başarılı bağlantı ve başlatma Bağlantı için optional TDS 7.x kullanılır
TLS 1.3 ve TLS 1.2 Katı Şifrelemeyi Zorla Başarılı bağlantı ve başlatma TDS 8.0 strict şifreleme kullandı
TLS 1.3 ve TLS 1.2 Şifrelemeyi Zorla Başarılı bağlantı ve başlatma mandatory bağlantısı için TDS 7.x kullanıldı.
TLS 1.3 ve TLS 1.2 Hiç kimse Başarılı bağlantı ve başlatma Bağlantı için optional TDS 7.x kullanılır