Elastik işleri kullanarak yönetim görevlerini otomatikleştirme (önizleme)

Şunlar için geçerlidir: Azure SQL Veritabanı

Transact-SQL (T-SQL) sorgularını çalıştırmak ve bakım görevlerini gerçekleştirmek için belirli aralıklarla bir veya birden çok Azure SQL veritabanında yürütülebilecek esnek işler oluşturabilir ve zamanlayabilirsiniz.

İşin yürütüldüğü hedef veritabanı veya veritabanı gruplarını tanımlayabilir ve iş çalıştırmak için zamanlamaları belirleyebilirsiniz. İşler, hedef veritabanında oturum açma görevini üstlenir. Veritabanı grubunda çalıştırılacak Transact-SQL betiklerinin tanımlama, bakımını yapma ve sürekliliğini sağlama konusunda da denetim sahibi olursunuz.

Her iş yürütmenin durumunu günlüğe kaydeder ve herhangi bir hata oluşursa otomatik olarak işlemleri yeniden dener.

Elastik işler ne zaman kullanılır?

Elastik iş otomasyonu kullanabileceğiniz çeşitli senaryolar vardır:

  • Yönetim görevlerini otomatikleştirin ve bunları hafta içi, saat sonra 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 yaygın olarak kullanılan bilgiler), Azure Blob depolamadan veri yükleyin.
  • İş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 toplama.
    • Ç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 hareketleri

Diğer platformlarda otomasyon

Farklı platformlarda aşağıdaki iş zamanlama teknolojilerini göz önünde bulundurun:

  • Elastik İşler, Azure SQL Veritabanındaki bir veya birden çok veritabanında özel işler yürüten İş Zamanlama hizmetleridir.
  • SQL Aracısı İşleri, SQL Server'da görev otomasyonu için kullanılmaya devam eden SQL Aracısı hizmeti tarafından yürütülür ve Azure SQL Yönetilen Örneklere de dahil edilir. SQL Aracısı İşleri Azure SQL Veritabanında kullanılamaz.

Elastik İşler Azure SQL Veritabanlarını, Azure SQL Veritabanı elastik havuzlarını ve parça eşlemelerindeki Azure SQL Veritabanlarını hedefleyebilir.

SQL Aracısı (SQL Server ve SQL Yönetilen Örneği kapsamında kullanılabilir) ile Veritabanı Elastik İş aracısı (Azure SQL Veritabanlarında veya SQL Server'deki veritabanlarında T-SQL yürütebilen) arasındaki farklara dikkat etmeye değer Azure SQL Yönetilen Örneği, Azure Synapse Analytics).

Elastik İşler SQL Aracısı
Kapsam Azure SQL Veritabanı'ndaki ve/veya iş aracısı ile aynı Azure bulutundaki veri ambarlarındaki herhangi bir sayıda veritabanı. Hedefler farklı sunucularda, aboneliklerde ve/veya bölgelerde olabilir.

Hedef gruplar tek tek veritabanlarından veya veri ambarlarından ya da bir sunucu, havuz veya parça eşlemesindeki tüm veritabanlarından (iş çalışma zamanında dinamik olarak numaralandırılır) oluşabilir.
SQL aracısı ile aynı örnekteki tek tek veritabanları. SQL Server Agent Çoklu Sunucu Yönetimi özelliği, ana/hedef örneklerin iş yürütmeyi koordine etmesine olanak tanır, ancak bu özellik SQL yönetilen örneğinde kullanılamaz.
Desteklenen API’ler ve Araçlar Portal, PowerShell, T-SQL, Azure Resource Manager T-SQL, SQL Server Management Studio (SSMS)

Elastik iş hedefleri

Elastik İşler , bir veya daha fazla T-SQL betiği paralel olarak, çok sayıda veritabanında bir zamanlamaya veya isteğe bağlı olarak çalıştırma olanağı sağlar.

Zamanlanmış işleri veritabanlarının herhangi bir bileşimine göre çalıştırabilirsiniz: bir veya daha fazla veritabanı, bir sunucudaki tüm veritabanları, elastik havuzdaki tüm veritabanları veya parça eşlemesi, belirli bir veritabanını dahil etme veya hariç tutma esnekliği. İşler birden fazla sunucu ve birden fazla havuzda çalışabilir, hatta farklı aboneliklerde bulunan veritabanlarını kullanabilir. Sunucular ve havuzlar çalışma zamanında dinamik olarak numaralandırıldığından işler, yürütme zamanında hedef grupta bulunan tüm veritabanlarında çalışır.

Aşağıdaki resimde farklı türlerdeki hedef gruplarda iş yürüten bir iş aracısı gösterilmektedir:

Elastik İş aracısı kavramsal modeli

Elastik iş bileşenleri

Bileşen Açıklama (ek ayrıntılar tablonun altındadır)
Elastik İş aracısı İşleri çalıştırmak ve yönetmek için oluşturduğunuz Azure kaynağıdır.
İş veritabanı İş aracısının işle ilgili verileri, iş tanımlarını vb. depolamak için kullandığı Azure SQL Veritabanındaki bir veritabanı.
Hedef grup Bir işin çalıştırılacağı sunucu, havuz, veritabanı ve parça eşlemesi kümesidir.
İş, bir veya daha fazla iş adımından oluşan bir çalışma birimidir. İş adımları çalıştırılacak T-SQL betiğinin yanı sıra betiğin yürütülmesi için gerekli olan diğer ayrıntıları belirtir.

Elastik iş aracısı

Elastik İş aracısı; işlerin oluşturulması, çalıştırılması ve yönetilmesi için kullanılan Azure kaynağıdır. Elastik İş aracısı, portalda oluşturduğunuz bir Azure kaynağıdır (PowerShell ve REST de desteklenir).

Elastik İş aracısı oluşturmak için Azure SQL Veritabanında mevcut bir veritabanı gerekir. Aracı bu mevcut Azure SQL Veritabanını İş veritabanı olarak yapılandırıyor.

Elastik İş aracısı ücretsizdir. İş veritabanı, Azure SQL Veritabanındaki tüm veritabanlarıyla aynı oranda faturalandırılır.

Elastik iş veritabanı

İş veritabanı, işleri tanımlamanın yanı sıra iş yürütme durumunu ve geçmişini takip etmek için kullanılır. İş veritabanı aracı meta verilerini, günlüklerini, sonuçlarını, iş tanımlarını depolamak için de kullanılır ve ayrıca T-SQL kullanarak işleri oluşturmak, çalıştırmak ve yönetmek için birçok yararlı saklı yordam ve diğer veritabanı nesnelerini içerir.

Geçerli önizlemede, Azure SQL Veritabanı'ndaki (S1 veya üzeri) mevcut bir veritabanının Elastik İş aracısı oluşturması önerilir.

İş veritabanı temiz, boş, S1 veya daha yüksek bir hizmet hedefi Azure SQL Veritabanı olmalıdır. İş veritabanının önerilen hizmet hedefi S1 veya üzeridir, ancak en uygun seçim işlerinizin performans gereksinimlerine bağlıdır: iş adımlarının sayısı, iş hedefi sayısı ve işlerin ne sıklıkta çalıştırıldığından.

İş veritabanına yönelik işlemler beklenenden daha yavaşsa, Azure portal veya sys.dm_db_resource_stats DMV kullanarak yavaşlık dönemlerinde veritabanı performansını ve iş veritabanındaki kaynak kullanımını izleyin. CPU, Veri GÇ veya Günlük Yazma gibi bir kaynağın kullanımı %100'e yaklaşıyorsa ve yavaşlık dönemleriyle bağıntılıysa, iş veritabanı performansı yeterince iyileştirilene kadar veritabanını artımlı olarak daha yüksek hizmet hedeflerine ( DTU modelinde veya sanal çekirdek modelinde) ölçeklendirmeyi göz önünde bulundurun.

Elastik iş veritabanı izinleri

İş aracısı oluşturma sırasında İş veritabanında bir şema, tablolar ve jobs_reader adlı bir rol oluşturulur. Rol, aşağıdaki izinle oluşturulur ve yöneticilere iş izleme için daha ayrıntılı erişim denetimi sunmak üzere tasarlanmıştır:

Rol adı 'jobs' şeması izinleri 'jobs_internal' şeması izinleri
jobs_reader SELECT Hiçbiri

Önemli

Veritabanı yöneticisi olarak İş veritabanına erişim izni vermeden önce güvenlik durumunu gözden geçirin. İş oluşturma veya düzenleme izinlerine sahip kötü amaçlı bir kullanıcı, kötü amaçlı kullanıcının denetimi altındaki bir veritabanına bağlanmak için depolanan kimlik bilgilerini kullanan bir iş oluşturabilir veya düzenleyebilir ve bu da kötü amaçlı kullanıcının kimlik bilgilerinin parolasını belirlemesine olanak sağlayabilir.

Hedef grup

Hedef grup, işin üzerinde çalışacağı veritabanı kümesini tanımlar. Hedef grup içinde aşağıdaki bileşenlerden birden fazlası veya birleşimi bulunabilir:

  • Mantıksal SQL sunucusu - bir sunucu belirtilirse, iş yürütme sırasında sunucuda bulunan tüm veritabanları grubun bir parçasıdır. İş yürütülmeden önce grubun numaralandırılması ve güncelleştirilmesi için asıl veritabanı kimlik bilgisinin sağlanması gerekir. Mantıksal sunucular hakkında daha fazla bilgi için bkz. Azure SQL Veritabanı ve Azure Synapse Analytics'te sunucu nedir?.
  • Elastik havuz: Elastik havuz belirtilirse işin yürütülmesi sırasında elastik havuzda mevcut olan tüm veritabanları gruba dahil edilir. Sunucuda olduğu gibi iş yürütülmeden önce grubun güncelleştirilmesi için asıl veritabanı kimlik bilgisinin sağlanması gerekir.
  • Tek veritabanı: Gruba eklenmek üzere bir veya daha fazla tek veritabanı belirtin.
  • Parça eşlemesi - parça eşlemesinin veritabanları.

İpucu

İşin yürütülmesi sırasında dinamik numaralandırma, sunucuları veya havuzları içeren hedef gruplardaki veritabanı kümesini yeniden değerlendirir. Dinamik numaralandırma, işlerin, yürütüldükleri sırada sunucuda veya havuzda mevcut olan tüm veritabanlarında çalıştırılmasını sağlar. Veritabanı listesinin çalışma zamanında yeniden değerlendirilmesi özellikle havuz veya sunucu üyeliğinin sık değiştiği senaryolar için kullanışlıdır.

Havuzlar ve tek veritabanları gruba dahil edilebilir veya gruptan hariç tutulabilir. Bu sayede istenen veritabanlarını içeren bir hedef grup oluşturulabilir. Örneğin hedef gruba bir sunucuyu ekleyebilir ancak bir elastik havuzdaki belirli veritabanlarını (veya bir havuzun tamamını) hariç tutabilirsiniz.

Hedef grupta birden fazla abonelikte ve bölgede bulunan veritabanları mevcut olabilir. Birden fazla bölgenin söz konusu olduğu yürütme işlemlerinin aynı bölgedeki yürütmelere kıyasla daha yüksek gecikme süresine sahip olacağını unutmayın.

Aşağıdaki örneklerde işin çalıştırılacağı veritabanlarının belirlenmesi için farklı hedef grubu tanımlarının iş yürütme sırasında nasıl dinamik olarak numaralandırıldığı gösterilmektedir:

Hedef grup örnekleri

Örnek 1'de tek veritabanlarının listesini içeren bir hedef grup gösterilmektedir. Bir iş adımı bu hedef grup kullanılarak yürütüldüğünde iş adımının eylemi bu veritabanlarının her birinde yürütülür.
Örnek 2'de , hedef olarak sunucu içeren bir hedef grup gösterilmektedir. Bir iş adımı bu hedef grup kullanılarak yürütüldüğünde sunucudaki veritabanı listesinin belirlenmesi için sunucu dinamik olarak numaralandırılır. İş adımının eylemi bu veritabanlarının her birinde yürütülür.
Örnek 3'te gösterilen hedef grup Örnek 2'dekine benzer ancak belirli veritabanları özel olarak hariç tutulmuştur. İş adımının eylemi hariç tutulan veritabanında yürütülmez.
Örnek 4'te hedef olarak bir elastik havuz içeren bir hedef grup gösterilmektedir. Örnek 2'ye benzer şekilde havuz iş çalıştırma zamanında dinamik olarak numaralandırılarak havuzdaki veritabanlarının listesi belirlenir.

Ek hedef grup örnekleri

Örnek 5 ve Örnek 6'da sunucuların, elastik havuzların ve veritabanlarının ekleme ve dışlama kuralları kullanılarak birleştirilebildiği gelişmiş senaryolar gösterilir.
Örnek 7'de parça eşlemesi içinde bulunan ve iş çalıştırma zamanında değerlendirilebilecek parçalar gösterilmektedir.

Not

İş veritabanının kendisi işin hedefi olabilir. Bu senaryoda, İş veritabanı diğer tüm hedef veritabanları gibi değerlendirilir. İş kullanıcısının İş veritabanında oluşturulması ve yeterli izinlere sahip olması ve iş kullanıcısının veritabanı kapsamlı kimlik bilgilerinin diğer tüm hedef veritabanlarında olduğu gibi İş veritabanında da bulunması gerekir.

Elastik işler ve iş adımları

İş, bir zamanlamaya göre veya tek seferlik yürütülen bir çalışma birimidir. Bir işte bir veya daha fazla iş adımı bulunur.

Her işte yürütülecek bir T-SQL betiği, bu T-SQL betiğinin çalıştırılacağı bir veya daha fazla hedef grup ve iş aracısının hedef veritabanına bağlanması için gereken kimlik bilgileri belirtilir. İşin her adımı özelleştirilebilir zaman aşımı ve yeniden deneme ilkelerine sahiptir ve her adımda isteğe bağlı çıkış parametreleri belirtilebilir.

İş çıktısı

İş adımlarının her bir hedef veritabanında elde ettiği sonuç ayrıntılı olarak kaydedilir ve betik çıktısı, belirtilen bir tabloya aktarılabilir. Bir işin döndürdüğü verilerin kaydedileceği bir veritabanı belirtebilirsiniz.

İş geçmişi

Tablo jobs.job_executions sorgulayarakİş veritabanında Elastik İş yürütme geçmişini görüntüleyin. Sistem temizleme işlemi 45 günden daha eski olan yürütme geçmişi verilerini siler. 45 günden daha eski bir geçmişi kaldırmak için İş veritabanında saklı yordamı çağırınsp_purge_jobhistory.

İş durumu

Tablo jobs.job_executions sorgulayarakİş veritabanındaki Elastik İş yürütmelerini izleyebilirsiniz.

Aracı performansı, kapasitesi ve sınırlamaları

Elastik İşler, uzun süren işlerin tamamlanması sırasında en az düzeyde işlem kaynağı kullanır.

Hedef veritabanı grubunun boyutuna ve bir işin istenen yürütme süresine (eşzamanlı çalışan sayısı) bağlı olarak aracı için gerekli olan işlem süresi ve İş veritabanı performansı değişiklik gösterir (hedef ve iş sayısı ne kadar yüksek olursa gereken işlem zamanı o kadar fazla olur).

Şu anda sınır 100 eşzamanlı iştir.

İşlerin hedef veritabanının performansını düşürmesini engelleme

Bir SQL elastik havuzundaki veritabanları üzerinde iş çalıştırılması sırasında kaynakların aşırı yüklenmesini önlemek için işler aynı anda üzerinde çalışılabilecek veritabanı sayısını sınırlayacak şekilde yapılandırılabilir.

Sonraki adımlar