Azure SQL Yönetilen Örneği'nde SQL Aracısı işlerini kullanarak yönetim görevlerini otomatikleştirme

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

SQL Server ve SQL Yönetilen Örneği'nde SQL Server Aracısı'nı kullanarak, Transact-SQL (T-SQL) sorgularını çalıştırmak ve bakım görevlerini gerçekleştirmek için bir veya birden çok veritabanında düzenli aralıklarla yürütülebilecek işler oluşturabilir ve zamanlayabilirsiniz. Bu makale, SQL Yönetilen Örneği için SQL Aracısı kullanımını kapsar.

Not

SQL Aracısı, Azure SQL Veritabanı veya Azure Synapse Analytics'te kullanılamaz. Bunun yerine, Elastik İşler ile İş otomasyonu öneririz.

SQL Aracısı işleri ne zaman kullanılır?

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şiklikleri, kimlik bilgileri yönetimi, performans verisi toplama veya kiracı (müşteri) telemetri verilerini toplama gibi görevleri dağıtın.
    • Başvuru verilerini güncelleştirin (tüm veritabanlarında ortak olan bilgiler), Azure Blob depolamadan veri yükleyin. Microsoft, Azure Blob depolamada kimlik doğrulaması yapmak için SHARED ACCESS SIGNATURE kimlik doğrulamasının kullanılmasını önerir.
    • Sorgu performansını geliştirmek için veri bütünlüğünü veya dizin bakımını sağlamak da dahil olmak üzere DBCC CHECKDB yaygın bakım görevleri. İşleri bir veritabanı koleksiyonunda yoğun saatlerin dışında yenilenecek şekilde yapılandırın.
    • Bir veritabanı kümesinden alınan sorgu sonuçlarını düzenli olarak merkezi bir tabloya toplayın. Performans sorguları sürekli yürütülebilir ve yürütülecek ek görevleri tetikleyecek ş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ği'nde SQL Aracısı işleri

SQL Aracısı İşleri, SQL Server ve SQL Yönetilen Örneği'nde görev otomasyonu için kullanılmaya devam eden SQL Aracısı hizmeti tarafından yürütülür.

SQL Aracısı İşleri, veritabanınızda belirtilen bir dizi T-SQL betikleridir. İşleri kullanarak bir veya daha fazla kez çalıştırılabilir ve başarı veya başarısızlık için izleyebileceğiniz bir yönetim görevi tanımlayın.

bir iş bir yerel sunucuda veya birden çok uzak sunucuda çalıştırılabilir. SQL Aracısı İşleri, SQL Yönetilen Örneği hizmeti içinde yürütülen bir iç Veritabanı Altyapısı bileşenidir.

SQL Aracısı İşlerinde birkaç temel kavram vardır:

  • İş içinde yürütülmesi gereken bir veya birden çok adımdan oluşan iş adımları kümesi. Her iş adımı için yeniden deneme stratejisini 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ılacak 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ı olursa veya başarısız olursa, hata durumunda yeniden deneme sayısı yürütülmesi gereken aşağıdaki adım vardır.

SQL Aracısı, veritabanında tek bir Transact-SQL toplu işlemini yürüten Transact-SQL iş adımları veya özel işletim sistemi betiğini yürütebilen işletim sistemi komutu/PowerShell adımları, SSIS çalışma zamanını kullanarak veri yüklemenizi sağlayan SSIS iş adımları veya veritabanınızdan diğer veritabanlarına değişiklik yayımlayabilen çoğaltma adımları gibi farklı türde iş adımları oluşturmanıza olanak tanır.

Not

SQL Yönetilen Örneği tarafından barındırılan SSISDB ile Azure SSIS Integration Runtime'dan yararlanma hakkında daha fazla bilgi için bkz . Azure Data Factory'de SQL Server Integration Services (SSIS) ile Azure SQL Yönetilen Örneği'ni 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. Daha fazla bilgi için bkz . Azure SQL Yönetilen Örneğinde çoğaltmayı yapılandırma.

Sql Yönetilen Örneği'nde birleştirme çoğaltması ve Kuyruk okuyucusu gibi diğer iş adımları türleri şu anda desteklenmemekte .

İş zamanlamaları

Zamanlama, bir işin ne zaman çalıştırıldığında olduğunu 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. İş her yük devretme işleminden sonra etkinleştirilir.
  • Belirli bir tarih ve saatte bir kez, bazı işlerin gecikmeli yürütülmesi için yararlıdır.
  • Yinelenen bir zamanlamaya göre.

SQL Aracısı işi zamanlama hakkında daha fazla bilgi için bkz . İş 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ğinde 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 kullanılacak e-posta hesabını ayarlayın. Hesabı adlı AzureManagedInstance_dbmail_profilee-posta profiline atayın. SQL Yönetilen Örneği'nde SQL Aracısı işlerini kullanarak e-posta göndermek için, adlı AzureManagedInstance_dbmail_profilebir profil olmalıdır. Aksi takdirde, SQL Yönetilen Örneği 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ış SMTP geçiş hizmetlerini kullanmanızı öneririz. Bu geçiş hizmetleri genellikle TLS üzerinden bağlantılar için 25 veya 587 numaralı TCP 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. Bu bağlantı noktaları, yönetilen örneğinizin ağ güvenlik grubunda yeni bir giden kuralı gerektirir. Bu hizmetler, dış etki alanlarının iletilerinizi reddetme veya istenmeyen posta klasörüne yerleştirme olasılığını en aza indirmek için IP ve etki alanı itibarını korumak 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.

Veritabanı Posta 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_db_mail 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 Aracısı işlerinizle ilgili bir şey olduğunu operatöre bildirebilirsiniz. Operatör, SQL Yönetilen Örneği'nde bir veya daha fazla örneğin bakımından sorumlu bir kişinin kişi bilgilerini tanımlar. Bazen operatör sorumlulukları tek bir kişiye atanır.

SQL Yönetilen Örneği veya SQL Server'da birden çok örneği olan sistemlerde, birçok kişi işleç sorumluluklarını paylaşabilir. Bir işleç güvenlik bilgileri içermez ve bir güvenlik sorumlusu tanımlamaz. İdeal olarak, operatör sorumlulukları değişebilecek bir kişi değil, bir e-posta dağıtım grubudur.

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'deki Veritabanı Posta Günlüğü aracılığıyla e-postanın başarısını veya başarısızlığını onaylayın.

Daha sonra herhangi bir SQL Aracısı işini değiştirebilir ve iş SSMS veya aşağıdaki T-SQL betiğini kullanarak tamamlanırsa, başarısız olursa veya başarılı olursa e-posta yoluyla bilgilendirilecek işleçler atayabilirsiniz:

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 Yönetilen Örneği şu anda temel kayıt defteri değerlerinde depolandığından sql aracısı özelliklerini değiştirmenize izin vermiyor. Bu, iş geçmişi kayıtları için Aracı bekletme ilkesini ayarlama seçeneklerinin varsayılan olarak 1000 toplam 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.

Veritabanı rolü üyeliği düzeltildi

Sistem veritabanındaki üç SQL Aracısı sabit veritabanı rolünden msdb birine sysadmin olmayan oturum açma işlemlerine bağlı kullanıcılar eklenirse, veritabanındaki üç sistem saklı yordamına açık EXECUTE izinlerinin master verilmesi gereken bir sorun vardı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 izinleri 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'nde SQL Aracısı iş sınırlamaları

SQL Server'da kullanılabilen SQL Aracısı ile SQL Yönetilen Örneği'nin bir parçası olarak arasındaki farklara dikkat edin. SQL Server ile SQL Yönetilen Örneği arasındaki desteklenen özellik farkları hakkında daha fazla bilgi için bkz . SQL Server'dan Azure SQL Yönetilen Örneği T-SQL farklılıkları.

SQL Server'da kullanılabilen SQL Aracısı özelliklerinden bazıları SQL Yönetilen Örneği'nde desteklenmez:

  • SQL Aracısı ayarları salt okunur.
    • Sistem saklı yordamı sp_set_agent_properties desteklenmiyor.
  • 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 desteklenmez.
  • Proxy'ler desteklenmez.
  • Eventlog desteklenmez.
  • Boşta cpu'ya dayalı iş zamanlaması tetikleyicisi desteklenmez.
  • Birleştirme çoğaltma işi adımları desteklenmez.
  • Kuyruk Okuyucusu desteklenmez.
  • Analysis Services desteklenmez.
  • Diskte dosya olarak depolanan bir betiği çalıştırmak desteklenmez.
  • dbatools ve dbachecks gibi dış modüllerin içeri aktarılması desteklenmez.
  • PowerShell Core desteklenmez.

Daha fazla bilgi edinin

Sonraki adımlar