Azure SQL Veritabanında Elastik İşler
Şunlar için geçerlidir: Azure SQL Veritabanı
Bu makalede, Azure SQL Veritabanı için elastik işlerin özelliklerini ve ayrıntılarını gözden geçireceğiz.
- Elastik işleri yapılandırma öğreticisi için bkz. elastik işler öğreticisi.
- Azure veritabanı platformlarındaki otomasyon kavramları hakkında daha fazla bilgi edinin.
Elastik işlere genel bakış
Transact-SQL (T-SQL) sorguları çalıştırmak ve bakım görevlerini gerçekleştirmek için bir veya birden çok Azure SQL veritabanında düzenli aralıklarla 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. Elastik işlerdeki tüm tarihler ve saatler UTC saat dilimindedir.
İş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 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 dağıtma.
- Performans verisi toplama veya kiracı (müşteri) telemetri koleksiyonu.
- Başvuru verilerini (tüm veritabanlarında bulunan ortak veriler) güncelleştirin.
- Azure Blob depolamadan veri yükleme.
- İşleri, yoğun olmayan saatlerde olduğu gibi yinelenen bir veritabanı koleksiyonunda yürütülecek şekilde yapılandırın.
- Bir veritabanı kümesindeki sorgu sonuçlarını sürekli olarak merkezi bir tabloya toplayın.
- Sorgular sürekli olarak yürütülebilir ve yürütülecek ek görevleri 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
- Özel geliştirilmiş çözümler, iş otomasyonu veya diğer görev yönetimi için.
- Veritabanındaki tablolar arasında veri ayıklamak/işlemek/eklemek için ETL işleme.
Şu durumlarda elastik işleri göz önünde bulundurun:
- Bir veya daha fazla veritabanını hedefleyen bir zamanlamaya göre düzenli olarak çalıştırılması gereken bir görev edinin.
- Bir kez, ancak birden çok veritabanında çalıştırılması gereken bir göreviniz var.
- Bir veya daha fazla veritabanı, bir sunucudaki tüm veritabanları, elastik havuzdaki tüm veritabanları, belirli bir veritabanını dahil etme veya hariç tutma esnekliğiyle, veritabanlarının herhangi bir bileşimine göre iş çalıştırmanız gerekir. İş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.
- Bu, özellikle veritabanlarının dinamik olarak eklendiği/silindiği SaaS müşteri senaryolarında hedef veritabanlarını dinamik olarak numaralandıramayan SQL Aracısı'ndan önemli bir farktır.
Elastik iş bileşenleri
Bileşen | Veri Akışı Açıklaması |
---|---|
Elastik iş 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ı veritabanı. |
İş | İş, 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. |
Hedef grup | İş çalıştırılacak sunucu, havuz ve veritabanı kümesi. |
Elastik iş aracısı
Elastik iş aracısı, işleri oluşturmaya, çalıştırmaya ve yönetmeye yönelik Azure kaynağıdır. Elastik iş aracısı portalda oluşturduğunuz bir Azure kaynağıdır (PowerShell ve REST API kullanarak elastik işler oluşturma ve yönetme de desteklenir).
Elastik iş aracısı oluşturmak için Azure SQL Veritabanı'da mevcut bir veritabanı gerekir. Aracı bu mevcut Azure SQL Veritabanı iş veritabanı olarak yapılandırıyor.
Azure portalı üzerinden bir işi başlatabilir, devre dışı bırakabilir veya iptal edebilirsiniz. Azure portalı ayrıca iş tanımlarını ve yürütme geçmişini görüntülemenizi sağlar.
Elastik iş aracısı maliyeti
İş veritabanı, Azure SQL Veritabanı'daki tüm veritabanlarıyla aynı oranda faturalandırılır. Elastik iş aracısı maliyeti için, İş Aracısı için seçilen hizmet katmanının sabit fiyatlandırmasını temel alır. Bkz. Azure SQL Veritabanı fiyatlandırma sayfası.
Elastik iş veritabanı
İş veritabanı , işleri tanımlamak ve iş yürütmelerinin durumunu ve geçmişini izlemek için kullanılır. İşler hedef veritabanlarında yürütü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.
Elastik iş aracısı oluşturmak için bir Azure SQL Veritabanı (S1 veya üzeri) ö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ını veya sys.dm_db_resource_stats DMV'yi kullanarak yavaşlık dönemlerinde iş veritabanındaki veritabanı performansını ve 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 tabanlı satın alma modelinde veya sanal çekirdek satın alma modelinde) ölçeklendirmeyi göz önünde bulundurun.
Önemli
Raporlama ve analiz tablolarından okuyabilmenize rağmen, mevcut nesneleri değiştirmeyin veya iş veritabanında yeni nesneler oluşturmayın.
Elastik işler ve iş adımları
İş, bir plan dahilinde veya tek seferlik olarak yürütülen ç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.
Elastik iş hedefleri
Elastik iş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. Hedef herhangi bir Azure SQL Veritabanı katmanı olabilir.
Zamanlanmış işleri veritabanlarının herhangi bir bileşiminde çalıştırabilirsiniz: bir veya daha fazla bağımsız veritabanı, bir sunucudaki tüm veritabanları, elastik havuzdaki tüm veritabanları, 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:
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. İş
master
yürütmeden önce grubun numaralandırılabilmesi ve güncelleştirilebilmesi için veritabanı kimlik bilgileri sağlanmalıdır. Mantıksal sunucular hakkında daha fazla bilgi için bkz. Azure SQL Veritabanı ve Azure Synapse'te mantıksal 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. Sunucuya
master
gelince, grubun iş yürütmeden önce güncelleştirilebilmesi için veritabanı kimlik bilgileri sağlanmalıdır. - Tek veritabanı: Gruba eklenmek üzere bir veya daha fazla tek veritabanı belirtin.
İ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. Bölgeler arası yürütmeler, aynı bölge içindeki yürütmelerden daha yüksek gecikme süresine sahiptir.
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:
- Ö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.
- Örnek 5 ve Örnek 6'da sunucuların, elastik havuzların ve veritabanlarının ekleme ve dışlama kuralları kullanılarak birleştirilebileceği gelişmiş senaryolar gösterilir.
Not
İş veritabanının kendisi işin hedefi olabilir. Bu senaryoda, iş veritabanı diğer tüm hedef veritabanları gibi değerlendirilir. İş kullanıcısının iş 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 iş veritabanında da bulunması gerekir.
Kimlik Doğrulaması
Elastik iş aracısı için tüm hedefler için bir yöntem seçin. Örneğin, tek bir elastik iş aracısı için bir hedef sunucuyu veritabanı kapsamlı kimlik bilgilerini kullanacak şekilde, diğerini ise Microsoft Entra Id kimlik doğrulamasını kullanacak şekilde yapılandıramazsınız.
Elastik iş aracısı, hedef grup tarafından belirtilen sunuculara/veritabanlarına iki kimlik doğrulama seçeneği aracılığıyla bağlanabilir:
- Kullanıcı tarafından atanan yönetilen kimlik (UMI) ile Microsoft Entra (eski adıyla Azure Active Directory) kimlik doğrulamayı kullanın.
- Veritabanı kapsamlı kimlik bilgilerini kullanın.
Kullanıcı tarafından atanan yönetilen kimlik (UMI) aracılığıyla kimlik doğrulaması
Kullanıcı tarafından atanan yönetilen kimlik (UMI) aracılığıyla Microsoft Entra (eski adıyla Azure Active Directory) kimlik doğrulaması, elastik işleri Azure SQL Veritabanı bağlamak için önerilen seçenektir. Microsoft Entra ID desteği sayesinde iş aracısı UMI kullanarak hedef veritabanlarına (veritabanları, sunucular, elastik havuzlar) ve çıkış veritabanlarına bağlanabilir.
İsteğe bağlı olarak, Microsoft Entra Id kimlik doğrulaması, elastik iş veritabanını içeren mantıksal sunucuda, Microsoft Entra ID bağlantıları aracılığıyla bu veritabanına erişmek/sorgulamak için etkinleştirilebilir. Ancak, iş aracısı kendi iş veritabanına bağlanmak için iç sertifika tabanlı kimlik doğrulamasını kullanır.
Bir UMI oluşturabilir veya mevcut bir UMI'yi kullanabilir ve aynı UMI'yi birden çok iş aracısına atayabilirsiniz. İş aracısı başına yalnızca bir UMI desteklenir. UmI bir İş aracısına atandıktan sonra, bu İş Aracısı bu kimliği yalnızca hedef veritabanlarında t-SQL İşleri'ne bağlanmak ve çalıştırmak için kullanır. SQL Kimlik Doğrulaması, bu İş Aracısı'nın hedef sunucularında/veritabanlarında kullanılmaz.
UMI adı bir harf veya sayı ile başlamalıdır ve uzunluğu 3 ile 128 arasında olmalıdır. ve _
karakterlerini -
içerebilir.
Azure SQL Veritabanı'daki UMI hakkında daha fazla bilgi için bkz. Azure SQL için yönetilen kimlikler, Azure SQL Veritabanı mantıksal sunucu kimliği olarak UMI kullanmanın gerekli adımları ve avantajları. Daha fazla bilgi için bkz. Microsoft Entra kimlik doğrulamasını kullanma.
Önemli
Microsoft Entra Id kimlik doğrulamayı kullanırken, her hedef veritabanında bu Microsoft Entra Id'den kullanıcınızı jobuser
oluşturun. Bu kullanıcıya her hedef veritabanında işlerinizi yürütmek için gereken izinleri verin.
Sistem tarafından atanan yönetilen kimlik (SMI) kullanılması desteklenmez.
Veritabanı kapsamlı kimlik bilgileri aracılığıyla kimlik doğrulaması
Önerilen seçenek Microsoft Entra (eski adıYla Azure Active Directory) kimlik doğrulaması olsa da, işler yürütüldükten sonra hedef grup tarafından belirtilen veritabanlarına bağlanmak için veritabanı kapsamlı kimlik bilgilerini kullanacak şekilde yapılandırılabilir. Ekim 2023'e kadar veritabanı kapsamlı kimlik bilgileri tek kimlik doğrulama seçeneğiydi.
Hedef grup sunucular veya havuzlar içeriyorsa, kullanılabilir veritabanlarını listelemek üzere veritabanına bağlanmak master
için bu veritabanı kapsamlı kimlik bilgileri kullanılır.
- Veritabanı kapsamlı kimlik bilgileri iş veritabanında oluşturulmalıdır.
- Tüm hedef veritabanlarında, işin başarıyla
jobuser
tamamlanması için (aşağıdaki diyagramda) yeterli izinlere sahip bir oturum açma bilgileri olmalıdır. - Aşağıdaki diyagramda hedef veritabanlarında (
LOGIN
vePASSWORD
içinmasteruser
vejobuser
için) oluşturulan kimlik bilgileri, iş veritabanında oluşturulan veSECRET
kimlik bilgileriyle eşleşmelidirIDENTITY
. - Kimlik bilgileri farklı işlerde yeniden kullanılabilir ve kimlik bilgileri parolaları şifrelenir ve iş nesnelerine salt okunur erişimi olan kullanıcılardan korunur.
Aşağıdaki görüntü, uygun iş kimlik bilgilerini ayarlamaya ve elastik iş aracısının hedef sunuculardaki/veritabanlarındaki oturum açma/kullanıcılar için kimlik doğrulaması olarak veritabanı kimlik bilgilerini kullanarak nasıl bağlanyacağını anlamanıza yardımcı olmak için tasarlanmıştır.
Not
Veritabanı kapsamlı kimlik bilgilerini kullanırken, her hedef veritabanında kullanıcınızı jobuser
oluşturmayı unutmayın.
Elastik iş özel uç noktaları
Elastik iş aracısı, elastik iş özel uç noktalarını destekler. Elastik işler özel uç noktası oluşturmak, elastik iş ile hedef sunucu arasında özel bir bağlantı oluşturur. Elastik işler özel uç noktaları özelliği Azure Özel Bağlantı farklıdır.
Elastik iş özel uç noktaları özelliği, "Genel Erişimi Reddet" seçeneği etkinleştirildiğinde bile iş aracısının bunlara yine de ulaşabilmesi için hedef/çıkış sunucularına özel bağlantıları destekler. "Azure hizmetlerinin ve kaynaklarının bu sunucuya erişmesine izin ver" seçeneğini devre dışı bırakmak istiyorsanız, özel uç noktaların kullanılması da olası çözümlerden biridir.
Elastik iş özel uç noktaları, elastik iş aracısı kimlik doğrulamasının tüm seçeneklerini destekler.
Elastik iş özel uç noktası özelliği, iş aracısı ile hedef/çıkış sunucuları arasında güvenli bir bağlantı kurmak için hizmet tarafından yönetilen bir özel uç nokta seçmenize olanak tanır. Hizmet tarafından yönetilen özel uç nokta, belirli bir sanal ağ ve alt ağ içindeki özel bir IP adresidir. İş aracınızın hedef/çıkış sunucularından birinde özel uç noktaları kullanmayı seçtiğinizde, Microsoft tarafından hizmet tarafından yönetilen bir özel uç nokta oluşturulur. Bu özel uç nokta daha sonra iş aracısı tarafından yalnızca işleri bağlamak ve yürütmek veya iş çıkışını bu hedef/çıkış veritabanlarına yazmak için kullanılır.
Elastik iş özel uç noktaları Azure portalı üzerinden oluşturulabilir ve izin verilir. Özel bağlantı üzerinden bağlanan hedef sunucular, farklı coğrafyalarda ve aboneliklerde bile Azure'da herhangi bir yerde olabilir. Bu iletişimi etkinleştirmek için istenen her hedef sunucu ve iş çıktı sunucusu için özel bir uç nokta oluşturmanız gerekir.
Elastik işler için hizmet tarafından yönetilen yeni bir özel uç nokta yapılandırma öğreticisi için bkz . Azure SQL elastik işleri özel uç noktasını yapılandırma.
Elastik iş özel uç noktaları için gereksinimler
- Elastik işler özel uç noktasını kullanmak için hem iş aracısı hem de hedef sunucuların/veritabanlarının Azure'da (aynı veya farklı bölgelerde) ve aynı bulut türünde (örneğin, hem genel bulutta hem de kamu bulutunda) barındırılması gerekir.
Microsoft.Network
kaynak sağlayıcısının hem iş aracısının hem de hedef/çıkış sunucularının konak abonelikleri için kaydedilmesi gerekir.- Elastik iş özel uç noktaları hedef/çıkış sunucusu başına oluşturulur. Elastik iş aracısının bunları kullanabilmesi için önce bunların onaylanması gerekir. Bu işlem, bu mantıksal sunucunun Ağ bölmesi veya tercih ettiğiniz istemci aracılığıyla yapılabilir. Elastik iş aracısı daha sonra özel bağlantı kullanarak bu sunucu altındaki tüm veritabanlarına ulaşabilir.
- Elastik iş aracısından işler veritabanına bağlantı özel uç nokta kullanmaz. İş aracısı, iş veritabanına bağlanmak için iç sertifika tabanlı kimlik doğrulamasını kullanır. İşler veritabanını hedef grup üyesi olarak eklerseniz bir uyarı. Ardından, gerektiğinde özel uç noktayla ayarlamanız gereken normal bir hedef gibi davranır.
Elastik iş veritabanı izinleri
İş aracısı oluşturma sırasında, iş veritabanında ş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 sağlamak üzere tasarlanmıştır. Yöneticiler, kullanıcılara iş veritabanındaki jobs_reader rolüne ekleyerek iş yürütmeyi izleme olanağı sağlayabilir.
Rol adı | jobs şema izinleri |
jobs_internal şema izinleri |
---|---|---|
jobs_reader |
SELECT |
Hiçbiri |
Dikkat
İş veritabanındaki jobs.target_group_members gibi iç katalog görünümlerini güncelleştirmemelisiniz. Bu katalog görünümlerini el ile değiştirmek iş veritabanını bozabilir ve hataya neden olabilir. Bu görünümler yalnızca salt okunur sorgulama içindir. jobs.sp_add_target_group_member gibi hedef grupları/üyeleri eklemek/silmek için iş veritabanınızda saklı yordamları kullanabilirsiniz.
Önemli
İş veritabanına yükseltilmiş erişim vermeden önce güvenlik etkilerini göz önünde bulundurun. İş oluşturma veya düzenleme izinleri olan 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 veya kötü amaçlı komutlar yürütmesine olanak sağlayabilir.
Elastik işleri izleme
Elastik iş aracısı, iş durumu bildirimleri için Azure Uyarıları ile tümleştirmeye sahiptir ve bu da iş yürütme durumunu ve geçmişini izlemeye yönelik çözümü basitleştirir.
Azure portalında esnek işleri ve iş izlemeyi desteklemeye yönelik yeni ek özellikler de vardır. Elastik iş aracısının Genel Bakış sayfasında, aşağıdaki ekran görüntüsünde olduğu gibi en son iş yürütmeleri görüntülenir.
Azure portalı, Azure CLI, PowerShell ve REST API ile Azure İzleyici Uyarı kuralları oluşturabilirsiniz. Başarısız Elastik işler ölçümü, elastik iş yürütme uyarılarını izlemek ve almak için iyi bir başlangıç noktasıdır. Buna ek olarak, Azure Uyarı tesisi tarafından SMS veya e-posta gibi yapılandırılabilir bir eylem aracılığıyla uyarı almayı seçebilirsiniz. Daha fazla bilgi için bkz. Azure portalında Azure SQL Veritabanı için uyarılar oluşturma.
Örnek için bkz . Elastik işleri oluşturma, yapılandırma ve yönetme.
İş çı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
tablosunu jobs.job_executions
sorgulayarak iş veritabanında elastik iş 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 el ile kaldırmak için saklı yordamı iş veritabanında yürütebilirsiniz.sp_purge_jobhistory
İş durumu
tablosunu jobs.job_executions
sorgulayarak iş veritabanındaki elastik iş yürütmelerini izleyebilirsiniz.
En iyi yöntemler
Elastik veritabanı işleriyle çalışırken aşağıdaki en iyi yöntemleri göz önünde bulundurun.
En iyi güvenlik uygulamaları
- API’lerin kullanımını güvenilir kişilerle sınırlayın.
- Kimlik bilgileri iş adımını gerçekleştirmek için gerekli olan en düşük ayrıcalıklara sahip olmalıdır. Daha fazla bilgi için bkz . Yetkilendirme ve İzinler.
- Sunucu ve/veya havuz hedef grubu üyesi kullanılırken, iş yürütmeden önce sunucuların ve/veya havuzların veritabanı listelerini genişletmek için kullanılan veritabanlarını görüntülemek/listelemek için veritabanında ayrı
master
bir kimlik bilgisi oluşturulması önerilir.
Elastik iş performansı
Elastik işler, uzun süre çalışan işlerin tamamlanmasını beklerken en düşük işlem kaynaklarını kullanır.
Hedef veritabanı grubunun boyutuna ve bir iş için istenen yürütme süresine (eş zamanlı çalışan sayısı) bağlı olarak aracı, iş veritabanının farklı işlem ve performans miktarlarını gerektirir (ne kadar fazla hedef ve ne kadar fazla iş olursa, gereken işlem miktarı o kadar yüksek olur).
Eşzamanlı kapasite katmanları
Ekim 2023'te başlayan elastik iş aracısı, kapasiteyi artırmaya olanak sağlayan birden çok performans katmanına sahiptir.
Kapasite artışları, iş aracısının bağlanabileceği ve bir işi başlatabileceği toplam eş zamanlı hedef veritabanı sayısını gösterir. İş yürütmeye yönelik daha eşzamanlı hedef bağlantılar için, bir iş aracısının katmanını 100 eşzamanlı hedef bağlantı sınırı olan varsayılan JA100 katmanından yükseltin.
Çoğu ortam için her zaman 100'den az eşzamanlı iş gerekir, bu nedenle varsayılan olarak JA100 kullanılır.
Elastik iş aracısı katmanı | En fazla eşzamanlı iş |
---|---|
JA100 |
100 |
JA200 |
200 |
JA400 |
400 |
JA800 |
800 |
İş hedefleriyle iş aracısı eşzamanlılık kapasitesi katmanının aşılması, bazı hedef veritabanları/sunucular için kuyruğa alma gecikmeleri oluşturur. Örneğin, JA100 katmanında 110 hedefi olan bir işe başlarsanız, diğerleri bitene kadar 10 hedef başlamayı bekler.
Elastik iş aracısının katman veya hizmet hedefi Azure portalı, PowerShell veya İş Aracıları REST API'siyle değiştirilebilir. Örnek için bkz . İş aracısını ölçeklendirme.
Elastik havuzlar üzerindeki iş etkisini sınırlama
İşleri Azure SQL Veritabanı elastik havuzdaki veritabanlarında çalıştırırken kaynakların aşırı yüklenmemesini sağlamak için işler, bir işin aynı anda çalıştırabileceği veritabanı sayısını sınırlandıracak şekilde yapılandırılabilir.
T-SQL'de saklı yordamın @max_parallelism
parametresini ayarlayarak bir işin üzerinde çalıştığı eşzamanlı veritabanlarının sp_add_jobstep
sayısını ayarlayın.
Bir kez etkili betikler
Elastik bir işin T-SQL betikleri bir kez etkili olmalıdır. Idempotent , betiğin başarılı olması ve yeniden çalıştırılması durumunda aynı sonucun ortaya çıkması anlamına gelir. Geçici ağ sorunları nedeniyle bir betik başarısız olabilir. Bu durumda iş, betiği atlamadan önce otomatik olarak önceden belirtilen sayıda yeniden deneme gerçekleştirir. İki kez (veya daha fazla) başarılı bir şekilde çalıştırılmış olsa bile, aynı sonuç, etkili bir betiğin sonucuna sahiptir.
Basit bir yöntem, bir nesneyi oluşturmadan önce mevcut olup olmadığını test etmektir. Aşağıda varsayımsal bir örnek verilmiştir:
IF NOT EXISTS (SELECT * FROM sys.objects WHERE [name] = N'some_object')
print 'Object does not exist'
-- Create the object
ELSE
print 'Object exists'
-- If it exists, drop the object before recreating it.
Benzer şekilde bir betiğin mantıksal olarak test ederek ve bulduğu sonuçlara göre kendini ayarlayarak başarılı şekilde yürütülebilmesi gerekir.
Sınırlamalar
Elastik iş hizmeti için geçerli sınırlamalar bunlardır. Bu sınırlamaların mümkün olduğunca çoğunu kaldırmak için etkin bir şekilde çalışıyoruz.
Sorun | Description |
---|---|
Elastik iş aracısının yeniden oluşturulması ve yeni bir Azure bölgesine yük devretme/taşıma işleminden sonra yeni bölgede başlatılması gerekir. | Elastik işler hizmeti, tüm iş aracısını ve iş meta verilerini iş veritabanında depolar. Azure kaynaklarının yeni bir Azure bölgesine yük devretmesi veya taşınması, iş veritabanı, iş aracısı ve iş meta verilerini de yeni Azure bölgesine taşır. Ancak elastik iş aracısı yalnızca işlem kaynağıdır ve işlerin yeni bölgede yeniden yürütülmeye başlaması için önce yeni bölgede açıkça yeniden oluşturulması ve başlatılması gerekir. Elastik iş aracısı başlatıldıktan sonra, önceden tanımlanmış iş zamanlamasına göre yeni bölgede işleri yürütmeye devam eder. |
İşler veritabanından aşırı Denetim günlükleri | Elastik iş aracısı, yeni işlerin ve diğer CRUD işlemlerinin gelişini denetlemek için iş veritabanını sürekli yoklayarak çalışır. bir iş veritabanını barındıran sunucuda denetim etkinleştirildiyse, iş veritabanı tarafından çok sayıda denetim günlüğü oluşturulabilir. Bu durum, bir koşul ifadesiyle komutu kullanılarak Set-AzSqlServerAudit bu denetim günlüklerinin filtrelenmesiyle azaltılabilir.Örneğin: Set-AzSqlServerAudit -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -BlobStorageTargetState Enabled -StorageAccountResourceId "/subscriptions/7fe3301d-31d3-4668-af5e-211a890ba6e3/resourceGroups/resourcegroup01/providers/Microsoft.Storage/storageAccounts/mystorage" -PredicateExpression "database_principal_name <> '##MS_JobAccount##'" Bu komut, iş aracısını hedef veritabanları denetim günlüklerine değil yalnızca iş veritabanı denetim günlüklerine filtreleyecektir. |
Hiper Ölçek veritabanını iş veritabanı olarak kullanma | hiper ölçek veritabanını iş veritabanı olarak kullanma desteklenmez. Ancak elastik işler Hiper Ölçek veritabanlarını Azure SQL Veritabanı'daki diğer veritabanlarıyla aynı şekilde hedefleyebilir. |
Sunucusuz veritabanları ve elastik işlerle otomatik duraklatma. | Otomatik duraklatma etkin sunucusuz veritabanı, iş veritabanı olarak desteklenmez. Elastik işler tarafından hedeflenen sunucusuz veritabanları otomatik duraklatma desteği sağlar ve iş bağlantıları tarafından sürdürülür. |
İş Veritabanını BACPAC dosyasına aktarma | İş Veritabanının BACPAC dosyasına dışarı aktarımı desteklenmez. İş Veritabanı içeren SQL Server'ın dışarı aktarılması gerekiyorsa, sunucuyu dışarı aktarmadan önce İş Veritabanı bırakılmalıdır. |
İlgili içerik
- Elastik işleri oluşturma, yapılandırma ve yönetme
- Azure SQL'de yönetim görevlerini otomatikleştirme
- PowerShell kullanarak elastik işler oluşturma ve yönetme
- T-SQL kullanarak elastik işler oluşturma ve yönetme