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:Azure SQL Yönetilen Örnek
AzureSQL Yönetilen Örneği'ndeSQL Server Aracısı'nı kullanarak, bir veya birden çok veritabanında düzenli aralıklarla yürütülebilecek işler oluşturabilir ve zamanlayabilirsiniz. Bu SQL Aracısı işleri Transact-SQL (T-SQL) sorguları çalıştırır ve bakım görevlerini gerçekleştirir. Bu makalede SQL Yönetilen Örneği için SQL Aracısı kullanımı yer alır.
Not
SQL Aracısı, Azure SQL Veritabanı veya Azure Synapse Analytics'te kullanılamaz. Bunun yerine, Elastik İşler ile İş otomasyonu öneririz.
SQL Agent görevlerini ne zaman kullanmalı?
SQL Aracısı işlerini kullanabileceğiniz birkaç senaryo vardır:
- Yönetim görevlerini otomatikleştirin ve bunları haftanın her günü, mesai saatleri dışında vb. çalışacak şekilde zamanlayın.
- Şema değişikliklerini, kimlik bilgileri yönetimini, performans verilerini toplamayı veya kiracı (müşteri) telemetri koleksiyonunu dağıtın.
- Başvuru verilerini (tüm veritabanlarında ortak olan bilgiler) güncelleştirin ve Azure Blob depolamadan veri yükleyin. BULK_INSERT ile Azure Blob depolamada kimlik doğrulama yapmak için kullanılan bağımsız değişkenlere bakın.
- Sorgu performansını geliştirmek için veri bütünlüğünü veya dizin bakımını sağlamak da dahil olmak üzere
DBCC CHECKDByaygın bakım görevleri. İşleri, örneğin yoğun saatlerin dışında olmak üzere tekrar eden bir düzende birden fazla veritabanı üzerinde çalışacak şekilde yapılandırın. - Bir veritabanı kümesindeki sorgu sonuçlarını sürekli olarak merkezi bir tabloya toplayın. Performans sorguları sürekli olarak yürütülebilir ve yürütülecek daha fazla görev tetiklenecek şekilde yapılandırılabilir.
- Raporlama için veri toplama
- Bir veritabanı koleksiyonundaki verileri tek bir hedef tabloda toplayın.
- Çok sayıda veritabanında müşteri telemetri verilerinin toplanması gibi daha uzun süre çalışan veri işleme sorguları çalıştırın. Sonuçlar daha ayrıntılı analiz için tek bir hedef tabloda toplanır.
- Veri taşıma işlemleri
- Veritabanlarınızda yapılan değişiklikleri diğer veritabanlarına çoğaltan veya uzak veritabanlarında yapılan güncelleştirmeleri toplayan ve veritabanındaki değişiklikleri uygulayan işler oluşturun.
- SQL Server Integration Services (SSIS) kullanarak veritabanlarınızdan veya veritabanlarınıza veri yükleyen işler oluşturun.
SQL Yönetilen Örneğinde SQL Ajan görevleri
SQL Server Aracısı, SQL Yönetilen Örneği'nde görev otomasyonu için kullanılan SQL Aracısı işlerini yürütür.
SQL Sunucu Aracısı işleri, veritabanınızda belirtilen T-SQL betiklerinden oluşan bir seridir. "İş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 örnekte veya birden çok uzak örnekte çalıştırılabilir. SQL Aracısı işi, SQL Yönetilen Örnek hizmeti içinde yürütülen bir iç Veritabanı Altyapısı bileşenidir.
SQL Aracısı işlerinde birkaç temel kavram vardır:
- İş adımları , işin içinde yürütülmesi gereken bir veya birden çok adımdan oluşan bir kümedir. Her iş adımı için bir yeniden deneme stratejisi ve iş adımı başarılı veya başarısız olursa gerçekleşmesi gereken eylemi tanımlayabilirsiniz.
- Zamanlamalar işin ne zaman yürütülmesi gerektiğini tanımlar.
- Bildirimler , iş tamamlandıktan sonra operatörleri e-posta yoluyla bilgilendirmek için kullanılan kuralları tanımlamanızı sağlar.
İş adımları
SQL Aracısı iş adımları, SQL Aracısı'nın yürütmesi gereken eylem dizileridir. Her adımda, adım başarılı veya başarısız olursa yürütülmesi gereken aşağıdaki bir adım ve başarısız olursa bir dizi yeniden deneme vardır.
SQL Aracısı, farklı türde iş adımları oluşturmanıza olanak tanır.
- Transact-SQL iş adımları, veritabanına karşı tek bir Transact-SQL toplu işlemi yürütür.
- Özel işletim sistemi betiklerini çalıştırabilen işletim sistemi komutları/PowerShell adımları.
- SSIS çalışma zamanını kullanarak veri yüklemenizi sağlayan SSIS iş adımları.
- Değişiklikleri veritabanınızdan diğer veritabanlarına yayımlayabilen çoğaltma adımları.
Not
Daha fazla bilgi için bkz. Azure Data Factory'de SQL Server Integration Services (SSIS) ile Azure SQL Yönetilen Örneğini kullanma.
İşlem çoğaltması tablolarınızdaki değişiklikleri SQL Yönetilen Örneği, Azure SQL Veritabanı veya SQL Server'daki diğer veritabanlarına çoğaltabilir. Bilgi için bkz: Azure SQL Yönetilen Örneği'nde çoğaltmayı yapılandırma.
Birleştirme çoğaltması ve Kuyruk okuyucusu gibi diğer iş adımları türleri şu anda SQL Yönetilen Örneği tarafından desteklenmiyor.
İş zamanlamaları
Zamanlama bir görevin 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 başlayın. İş her yük devretme işleminden sonra etkinleştirilir.
- Bir işin gecikmeli yürütülmesi için yararlı olan belirli bir tarih ve saatte bir kez başlayın.
- Yinelenen bir zamanlamayla başlayın.
SQL Agent görevi zamanlama hakkında daha fazla bilgi için bkz Bir Görev Zamanlama.
Not
Azure SQL Yönetilen Örneği şu anda CPU boşta olduğunda bir iş başlatmanıza olanak sağlamaz.
İş bildirimleri
SQL Aracısı işleri, iş başarıyla tamamlandığında veya başarısız olduğunda bildirim almanıza olanak tanır. Bildirimleri e-posta ile alabilirsiniz.
Henüz etkinleştirilmemişse, önce SQL Yönetilen Örneği'da Veritabanı Postası özelliğini yapılandırmanız gerekir:
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE
Örnek bir alıştırma olarak, e-posta bildirimlerini göndermek için bir e-posta hesabı ayarlayın. Adı AzureManagedInstance_dbmail_profile olan e-posta profiline hesabı atayın. SQL Yönetilen Örneği'nde SQL Aracısı işleri kullanarak e-posta göndermek için AzureManagedInstance_dbmail_profile adlı bir profil olmalıdır. Aksi takdirde, SQL Yönetilen Örnek, SQL Aracısı aracılığıyla e-posta gönderemez.
Not
Posta sunucusu için, e-posta göndermek için kimliği doğrulanmış Basit Posta Aktarım Protokolü (SMTP) geçiş hizmetlerini kullanmanızı öneririz. Bu geçiş hizmetleri genellikle Aktarım Katmanı Güvenliği (TLS) bağlantıları için 25 veya 587 numaralı bağlantı noktaları veya SSL bağlantıları için 465 numaralı bağlantı noktası üzerinden bağlanır, ancak Veritabanı Postası herhangi bir bağlantı noktasını kullanacak şekilde yapılandırılabilir. Yönetilen örneğinizin ağ güvenlik grubunda, bu bağlantı noktaları için yeni bir giden kuralı gereklidir. Bu hizmetler, IP ve etki alanının itibarını koruyup dış etki alanlarının iletilerinizi reddetme veya bunları SPAM klasörüne yerleştirme olasılığını en aza indirmek için kullanılır. Şirket içi sunucularınızda zaten kimliği doğrulanmış bir SMTP geçiş hizmetini düşünün. Azure'da SendGrid böyle bir SMTP geçiş hizmetidir, ancak diğerleri de vardır.
Bir Veritabanı Postası hesabı ve profili oluşturmak ve ardından bunları ilişkilendirmek için aşağıdaki örnek betiği kullanın:
-- Create a Database Mail account
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'SQL Agent Account',
@description = 'Mail account for Azure SQL Managed Instance SQL Agent system.',
@email_address = '$(loginEmail)',
@display_name = 'SQL Agent Account',
@mailserver_name = '$(mailserver)' ,
@username = '$(loginEmail)' ,
@password = '$(password)';
-- Create a Database Mail profile
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'AzureManagedInstance_dbmail_profile',
@description = 'E-mail profile used for messages sent by Managed Instance SQL Agent.';
-- Add the account to the profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'AzureManagedInstance_dbmail_profile',
@account_name = 'SQL Agent Account',
@sequence_number = 1;
sp_send_dbmail sistem saklı yordamını kullanarak T-SQL aracılığıyla Veritabanı Postası yapılandırmasını test edin:
DECLARE @body VARCHAR(4000) = 'The email is sent from ' + @@SERVERNAME;
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'AzureManagedInstance_dbmail_profile',
@recipients = 'ADD YOUR EMAIL HERE',
@body = 'Add some text',
@subject = 'Azure SQL Instance - test email';
SQL Server Aracısı işlerinizle ilgili bir durum olduğunu operatöre bildirebilirsiniz. Operatör, SQL Yönetilen Örnek'teki bir veya daha fazla durumun bakımından sorumlu olan bir kişi için iletişim bilgilerini tanımlar. Bazen operatör sorumlulukları tek bir kişiye atanır.
Birden çok SQL yönetilen örneğinin veya SQL Server örneğinin olduğu ortamlarda, birçok kişi işleç sorumluluklarını paylaşabilir. İşleç, güvenlik bilgileri içermez ve güvenlik unsuru tanımlamaz. İdeal olarak, operatör sorumlulukları değişebilen bir kişi değildir, e-posta dağıtım grubu olur.
SQL Server Management Studio (SSMS) veya aşağıdaki örnekte gösterilen Transact-SQL betiğini kullanarak işleçler oluşturabilirsiniz:
EXEC msdb.dbo.sp_add_operator
@name=N'AzureSQLTeam',
@enabled=1,
@email_address=N'AzureSQLTeamn@contoso.com';
SSMS'de Veritabanı Postası Günlüğü üzerinden e-postanın başarı veya başarısızlığını onaylayın.
Herhangi bir SQL Aracısı işini değiştirebilir ve iş tamamlanınca, başarısız olduğunda veya başarılı olunca e-posta yoluyla bildirim almak üzere operatörler atayabilirsiniz. SSMS veya aşağıdaki T-SQL betiğini kullanarak işi değiştirin:
EXEC msdb.dbo.sp_update_job @job_name=N'Load data using SSIS',
@notify_level_email=3, -- Options are: 1 on succeed, 2 on failure, 3 on complete
@notify_email_operator_name=N'AzureSQLTeam';
İş geçmişi
SQL Managed Instance şu anda SQL Agent özelliklerini temel kayıt defteri değerlerinde depolandıkları için değiştirmenize izin vermiyor. Bu, iş geçmişi kayıtları için Aracı bekletme ilkesini ayarlama seçeneklerinin varsayılan olarak toplam 1.000 kayıt ve iş başına en fazla 100 geçmiş kaydı olarak sabit olduğu anlamına gelir.
Daha fazla bilgi için bkz . SQL Aracısı iş geçmişini görüntüleme.
Sabit veritabanı rolü üyeliği
Nonsysadmin oturumlarına bağlı kullanıcılar, msdb sistem veritabanındaki üç SQL Agent sabit veritabanı rolünden birine eklendiğinde, master veritabanındaki üç sistem saklı yordamına açık EXECUTE izinlerin verilmesi gereken bir sorun ortaya çıkmaktadır. Bu sorunla karşılaşırsanız hata iletisi The EXECUTE permission was denied on the object <object_name> (Microsoft SQL Server, Error: 229) gösterilir.
içinde bir SQL Aracısı sabit veritabanı rolüne (SQLAgentUserRole, SQLAgentReaderRole veya SQLAgentOperatorRole) msdbkullanıcı eklediğinizde, kullanıcının bu rollere eklenen oturum açma işlemlerinin her biri için, listelenen sistem saklı yordamlarına açıkça EXECUTE izin vermek için aşağıdaki T-SQL betiğini yürütün. Bu örnekte kullanıcı adı ile oturum açma adının aynı olduğu varsayılır:
USE [master]
GO
CREATE USER [login_name] FOR LOGIN [login_name];
GO
GRANT EXECUTE ON master.dbo.xp_sqlagent_enum_jobs TO [login_name];
GRANT EXECUTE ON master.dbo.xp_sqlagent_is_starting TO [login_name];
GRANT EXECUTE ON master.dbo.xp_sqlagent_notify TO [login_name];
SQL Yönetilen Örneği'ndeki SQL Aracısı iş sınırlamaları
SQL Server'da bulunan SQL Sunucusu Aracısı ile SQL Yönetilen Örneği'nin parçası olarak sunulan SQL Sunucusu Aracısı arasındaki farkları not etmekte fayda var. SQL Server ve SQL Yönetilen Örneği arasındaki desteklenen özellik farkları hakkında daha fazla bilgi için SQL Server'dan Azure SQL Yönetilen Örneği T-SQL farklarına bakın.
SQL Server'da kullanılabilen bazı SQL Aracısı özellikleri SQL Yönetilen Örneği'nde desteklenmez:
- SQL Agent ayarları salt okunur.
- Sistem saklı yordamı
sp_set_agent_propertiesdesteklenmez.
- Sistem saklı yordamı
- SQL Aracısı'nın etkinleştirilmesi/devre dışı bırakılması şu anda desteklenmiyor. SQL Server Agent sürekli çalışır.
- Bildirimler kısmen desteklense de, aşağıdakiler desteklenmez:
- Pager desteklenmez.
- NetSend desteklenmez.
- Uyarılar desteklenmiyor.
- Proxy'ler desteklenmez.
- Eventlog desteklenmez.
- Boşta cpu'ya dayalı iş zamanlaması tetikleyicisi desteklenmez.
- Birleştirme çoğaltma görev adımları desteklenmez.
- Kuyruk Okuyucusu desteklenmez.
- Analysis Services desteklenmez.
- Diskte dosya olarak depolanan bir betiğin çalıştırılması desteklenmez.
- Dbatools ve dbachecks gibi dış modülleri içeri aktarma desteklenmez.
- PowerShell Core desteklenmez.
İlgili içerik
- Azure SQL Yönetilen Örneği nedir?
- Azure SQL Yönetilen Örnek'teki yenilikler
- Azure SQL Yönetilen Örneği ile SQL Server arasındaki T-SQL farkları
- Özellikler karşılaştırması: Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği
- Veritabanı Postasını Yapılandırma
- Azure'da giden SMTP bağlantı sorunlarını giderme