Azure SQL Veritabanı ile kiracı başına veritabanı desenini kullanarak SaaS uygulamasında şemayı yönetme

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

Veritabanı uygulaması geliştikçe, kaçınılmaz olarak veritabanı şemasında veya başvuru verisinde değişiklikler yapılması gerekir. Veritabanı bakım görevleri de düzenli aralıklarla gereklidir. Kiracı başına veritabanı desenini kullanan bir uygulamayı yönetmek için bu değişiklikleri veya bakım görevlerini bir kiracı veritabanı filosuna uygulamanız gerekir.

Bu öğreticide iki senaryo incelenmektedir: tüm kiracılar için başvuru veri güncelleştirmelerini dağıtma ve başvuru verilerini içeren tabloda bir dizini yeniden oluşturma. Elastik işler özelliği, bu eylemleri tüm kiracı veritabanlarında ve yeni kiracı veritabanları oluşturmak için kullanılan şablon veritabanında yürütmek için kullanılır.

Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • İş aracısı oluşturma
  • T-SQL işlerinin tüm kiracı veritabanlarında çalıştırılmasına neden olma
  • Tüm kiracı veritabanlarındaki başvuru verilerini güncelleştirme
  • Tüm kiracı veritabanlarında bir tabloda dizin oluşturma

Bu öğreticiyi tamamlamak için aşağıdaki ön koşulların karşılandığından emin olun:

SaaS şema yönetimi desenlerine giriş

Kiracı başına veritabanı düzeni kiracı verilerini etkili bir şekilde yalıtır, ancak yönetilip korunacak veritabanı sayısını artırır. Elastik İşler , birden çok veritabanının yönetimini ve yönetimini kolaylaştırır. İşler, bir grup veritabanında görevleri (T-SQL betikleri) güvenli ve güvenilir bir şekilde çalıştırmanızı sağlar. İşler, şema ve ortak başvuru verisi değişikliklerini bir uygulamadaki tüm kiracı veritabanlarına dağıtabilir. Elastik İşler, her zaman en son şema ve başvuru verilerine sahip olduğundan emin olarak yeni kiracılar oluşturmak için kullanılan bir şablon veritabanını korumak için de kullanılabilir.

ekran

Elastik İşler

2024'te esnek işler, yeni özelliklere sahip genel kullanıma sunulan bir ürün olarak piyasaya sürüldü. Azure SQL Veritabanı tümleşik bir özelliği olan bkz. elastik veritabanı işleri.

Kiracı başına Wingtip Biletleri SaaS veritabanı uygulama betiklerini alma

Uygulama kaynak kodu ve yönetim betikleri WingtipTicketsSaaS-DbPerTenant GitHub deposunda bulunur. Wingtip Biletleri SaaS betiklerini indirme ve engellemeyi kaldırma adımları için genel kılavuza göz atın.

İş aracısı veritabanı ve yeni iş aracısı oluşturma

Bu öğreticide, bir iş aracısı ve onun destek iş aracısı veritabanı oluşturmak için PowerShell kullanmanız gerekir. İş aracısı veritabanı iş tanımlarını, iş durumunu ve geçmişi tutar. İş aracısı ve veritabanı oluşturulduktan sonra işleri hemen oluşturabilir ve izleyebilirsiniz.

  1. PowerShell ISE'de ...\Learning Modules\Schema Management\Demo-SchemaManagement.ps1 dosyasını açın.
  2. Betiği çalıştırmak için F5'e basın.

Demo-SchemaManagement.ps1 betiği, katalog sunucusunda osagent adlı bir veritabanı oluşturmak için Deploy-SchemaManagement.ps1 betiğini çağırır. Ardından veritabanını parametre olarak kullanarak iş aracısını oluşturur.

Tüm kiracılara yeni başvuru verilerini dağıtmak için bir iş oluşturma

Wingtip Biletleri uygulamasında, her kiracı veritabanı bir dizi desteklenen mekan türü içerir. Her mekan, barındırılabilir olayların türünü tanımlayan ve uygulamada kullanılan arka plan görüntüsünü belirleyen belirli bir mekan türündedir. Uygulamanın yeni olay türlerini desteklemesi için bu başvuru verilerinin güncelleştirilip yeni mekan türleri eklenmesi gerekir. Bu alıştırmada, şu iki ek mekan türünü eklemek için tüm kiracı veritabanlarına yönelik bir güncelleştirmeyi dağıtacaksınız: Motosiklet Yarışı ve Yüzme Kulübü.

İlk olarak, her kiracı veritabanına dahil edilen mekan türlerini gözden geçirin. SQL Server Management Studio'daki (SSMS) kiracı veritabanlarından birine Bağlan ve VenueTypes tablosunu inceleyin. Bu tabloyu, veritabanı sayfasından erişilen Azure portalındaki Sorgu düzenleyicisinde de sorgulayabilirsiniz.

  1. SSMS'yi açın ve kiracı sunucusuna bağlanın: tenants1-dpt-user.database.windows.net<>
  2. Motosiklet Yarışı ve Yüzme Kulübü'ne şu anda dahil olmadığını onaylamak için tenants1-dpt-user<> sunucusundaki contosoconcerthall veritabanına gidin ve VenueTypes tablosunu sorgulayın.

Şimdi yeni mekan türlerini eklemek için tüm kiracı veritabanlarındaki VenueTypes tablosunu güncelleştirmek için bir iş oluşturalım.

Yeni bir iş oluşturmak için, iş aracısı oluşturulduğunda jobagent veritabanında oluşturulan bir dizi iş sistemi saklı yordamı kullanırsınız.

  1. SSMS'de katalog sunucusuna bağlanın: catalog-dpt-user.database.windows.net>< sunucusu
  2. SSMS'de ...\Learning Modules\Schema Management\DeployReferenceData.sql dosyasını açın
  3. Deyimini değiştirin: SET @wtpUser = <user> ve Wingtip Tickets SaaS Database Per Tenant uygulamasını dağıtırken kullanılan Kullanıcı değerini değiştirin
  4. jobagent veritabanına bağlı olduğunuzdan emin olun ve betiği çalıştırmak için F5 tuşuna basın

DeployReferenceData.sql betiğinde aşağıdaki öğeleri gözlemleyin:

  • sp_add_target_group DemoServerGroup hedef grup adını oluşturur.
  • sp_add_target_group_member hedef veritabanları kümesini tanımlamak için kullanılır. İlk olarak tenants1-dpt-user>< sunucusu eklenir. Sunucuyu hedef olarak eklemek, iş yürütme sırasında bu sunucudaki veritabanlarının işe dahil edilmesine neden olur. Ardından basetenantdb veritabanı ve adhocreporting veritabanı (sonraki bir öğreticide kullanılır) hedef olarak eklenir.
  • sp_add_job Başvuru Verileri Dağıtımı adlı bir iş oluşturur.
  • sp_add_jobstep, VenueTypes başvuru tablosunu güncelleştirmek için T-SQL komut metnini içeren iş adımını oluşturur.
  • Betikteki kalan görünümler, nesnelerin varlığını gösterir ve işin yürütülüşünü izler. İşin tüm hedef veritabanlarında ne zaman tamamlandığını belirlemek üzere yaşam döngüsü sütunundaki durum değerini gözden geçirmek için bu sorguları kullanın.

Betik tamamlandıktan sonra başvuru verilerinin güncelleştirildiğini doğrulayabilirsiniz. SSMS'de tenants1-dpt-user sunucusundaki contosoconcerthall veritabanına göz atın ve VenueTypes tablosunu sorgular.<> Motosiklet Yarışı ve Yüzme Kulübü'ne göz atın.

Başvuru tablosu dizinini yönetmek için bir iş oluşturma

Bu alıştırmada başvuru tablosu birincil anahtarında dizini yeniden oluşturmak için bir iş kullanılır. Bu, büyük miktarda veri yüklendikten sonra yapılabilecek tipik bir veritabanı bakım işlemidir.

Aynı iş “sistem” saklı yordamlarını kullanarak bir iş oluşturun.

  1. SSMS'yi açın ve catalog-dpt-user.database.windows.net<> sunucusuna bağlanın
  2. ...\Learning Modules\Schema Management\OnlineReindex.sql dosyasını açın
  3. Sağ tıklayın, Bağlan ion'u seçin ve zaten bağlı değilse catalog-dpt-user.database.windows.net<> sunucusuna bağlanın
  4. jobagent veritabanına bağlı olduğunuzdan emin olun ve betiği çalıştırmak için F5 tuşuna basın

OnlineReindex.sql betiğinde aşağıdaki öğeleri gözlemleyin:

  • sp_add_job "Online Reindex PK__VenueTyp__265E44FD7FD4C885" adlı yeni bir iş oluşturur
  • sp_add_jobstep dizini güncelleştirmek için T-SQL komut metnini içeren iş adımını oluşturur
  • Betik izleyicisinin iş yürütmesindeki kalan görünümler. İşin tüm hedef grup üyelerinde başarıyla ne zaman tamamlandığını belirlemek için yaşam döngüsü sütunundaki durum değerini gözden geçirmek için bu sorguları kullanın.

Sonraki adımlar

Bu öğreticide, şunları öğrendiniz:

  • T-SQL işleri arasında birden çok veritabanında çalışacak bir iş aracısı oluşturma
  • Tüm kiracı veritabanlarındaki başvuru verilerini güncelleştirme
  • Tüm kiracı veritabanlarında bir tabloda dizin oluşturma

Ardından, kiracı veritabanları arasında dağıtılmış sorguları çalıştırmayı keşfetmek için Geçici raporlama öğreticisini deneyin.

Ek kaynaklar