Parçalı çok kiracılı veritabanları kullanan bir SaaS uygulamasında şemayı yönetme

ŞUNUN İÇİN GEÇERLİDİR: Azure SQL Database

Bu öğreticide, Hizmet Olarak Yazılım (SaaS) uygulamasında bir veritabanı filosunun bakımının zor olduğu ele alınmaktadır. Veritabanları filosunda şema değişikliklerini ortaya çıkaran çözümler gösterilmektedir.

Tüm uygulamalarda olduğu gibi Wingtip Bilet SaaS uygulaması da zaman içinde gelişecek ve veritabanında değişiklik gerektirecektir. Değişiklikler şemayı veya başvuru verilerini etkileyenin ya da veritabanı bakım görevlerini uygulayabilir. Kiracı düzeni başına veritabanı kullanan bir SaaS uygulamasıyla, değişiklikler potansiyel olarak çok büyük bir kiracı veritabanı filosunda koordine edilmesi gerekir. Ayrıca, oluşturulduklarında yeni veritabanlarına dahil edildiklerini emin olmak için bu değişiklikleri veritabanı sağlama sürecine dahil etmek gerekir.

İki senaryo

Bu öğretici aşağıdaki iki senaryoyu inceler:

  • Tüm kiracılar için başvuru verisi güncelleştirmelerini dağıtın.
  • Başvuru verilerini içeren tabloda bir dizini yeniden oluşturma.

Bu işlemleri kiracı Azure SQL Veritabanı yürütmek için Azure SQL Veritabanı elastik işler özelliği kullanılır. İşler ayrıca 'şablon' kiracı veritabanında da çalışır. Wingtip Biletleri örnek uygulamasında, bu şablon veritabanı yeni bir kiracı veritabanı sağlanması için kopyalanır.

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

  • bir iş aracısı oluşturun.
  • Birden çok kiracı veritabanında T-SQL sorgusu yürütün.
  • Tüm kiracı veritabanlarında başvuru verilerini güncelleştirin.
  • Tüm kiracı veritabanlarında bir tabloda dizin oluşturun.

Önkoşullar

Not

Bu öğreticide, Azure SQL Veritabanı önizlemesi(Esnek Veritabanı işleri)olan Esnek Veritabanı işleri. Bu öğreticiyi yapmak isterseniz, konu=Elastik İşler Önizlemesi ile SaaSFeedback @ microsoft.com aboneliğinizin kimliğini girin. Aboneliğinizin etkinleştirildiğini belirten onayı aldıktan sonra, en son ön sürüm işleri cmdlet’lerini indirip yükleyin. Bu önizleme sınırlıdır, bu nedenle ilgili sorular veya destek için SaaSFeedback @ microsoft.com ile iletişime geçin.

SaaS şema yönetimi düzenleri ile ilgili giriş

Bu örnekte kullanılan parçalı çok kiracılı veritabanı modeli, kiracı veritabanının bir veya daha fazla kiracı içermesi için olanak sağlar. Bu örnek, karma kiracı yönetim modelini etkinleştirerek çok kiracılı ve tek kiracılı veritabanlarının bir karışımını kullanma potansiyelini keşfeder. Bu veritabanlarında yapılan değişiklikleri yönetmek karmaşık olabilir. Elastik İşler, çok sayıda veritabanının yönetimini ve yönetimini kolaylaştırır. İşler, transact-SQL betiklerini bir grup kiracı veritabanına karşı görev olarak güvenli ve güvenilir bir şekilde çalıştırmanızı sağlar. Görevler, kullanıcı etkileşimi veya girişlerden bağımsızdır. Bu yöntem, bir uygulamanın tüm kiracılarında şemaya veya ortak başvuru verilerine yapılan değişiklikleri dağıtmak için kullanılabilir. Elastik İşler, veritabanının altın şablon kopyasını korumak için de kullanılabilir. Şablon yeni kiracılar oluşturmak için kullanılır ve her zaman en son şemanın ve başvuru verisi kullanımının sağlanmasını sağlar.

ekran

Esnek İşler sınırlı önizlemesi

Elastik İşlerin yeni bir sürümü vardır ve bu sürüm artık yeni iş Azure SQL Veritabanı. Esnek İşler’in bu yeni sürümü, şu anda sınırlı önizlemeyle sunulmaktadır. Sınırlı önizleme şu anda iş aracısı oluşturmak için PowerShell ve işleri oluşturmak ve yönetmek için T-SQL kullanmayı destekler.

Not

Bu öğretici, SQL Veritabanı hizmetinin sınırlı önizleme (Elastik Veritabanı işleri) olarak sunulan özelliklerini kullanır. Bu öğreticiyi yapmak isterseniz konu=Elastik İşler Önizlemesi SaaSFeedback@microsoft.com ile abonelik kimliğinizi girin. Aboneliğinizin etkinleştirildiğini belirten onayı aldıktan sonra, en son ön sürüm işleri cmdlet’lerini indirip yükleyin. Bu önizleme sınırlıdır, bu nedenle ilgili sorular SaaSFeedback@microsoft.com veya destek için iletişime geçin.

Wingtip Biletleri SaaS Çok Kiracılı Veritabanı uygulama kaynak kodunu ve betiklerini alın

Wingtip Biletleri SaaS Çok Kiracılı Veritabanı betikleri ve uygulama kaynak kodu GitHub'daki WingtipTicketsSaaS-MultitenantDB deposunda mevcuttur. Wingtip Bilet SaaS betiklerini indirme ve engellemesini kaldırma adımları için genel kılavuza bakın.

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

Bu öğretici, iş aracısı veritabanı ve iş aracısı oluşturmak için PowerShell'i kullanmanızı gerektirir. SQL Aracısı tarafından kullanılan MSDB veritabanı gibi, iş aracısı da iş tanımlarını, Azure SQL Veritabanı geçmişini depolamak için Azure SQL Veritabanı içinde bir veritabanı kullanır. İş aracısı oluşturulduktan sonra işleri hemen oluşturabilir ve izleyebilirsiniz.

  1. PowerShell ISE'de... \ Öğrenme Modülleri \ Şema Yönetimi \Demo-SchemaManagement.ps1.
  2. Betiği çalıştırmak için F5'e basın.

Aşağıdaki Demo-SchemaManagement.ps1, katalog Deploy-SchemaManagement.ps1 jobagent adlı bir veritabanı oluşturmak içinDeploy-SchemaManagement.ps1betiğine çağrı gönderir. Betik daha sonra jobagent veritabanını parametre olarak geçerek iş aracıyı oluşturur.

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

Hazırlama

Her kiracının veritabanı, VenueTypes tablosunda bir dizi mekan türü içerir. Her mekan türü, bir mekanda barındırilebilecek olayların türünü tanımlar. Bu mekan türleri, kiracı olayları uygulamasında gördüğünüz arka plan görüntülerine karşılık gelen görüntülerdir. Bu alıştırmada, tüm veritabanlarına bir güncelleştirme dağıtarak iki ek mekan türü ekleyebilirsiniz: Motosiklet Yarışı ve Yüzme Kulübü.

İlk olarak, her kiracı veritabanına dahil olan mekan türlerini gözden geçirebilirsiniz. SQL Server Management Studio (SSMS) kiracı veritabanlarından biri ile bağlantı kurarak VenueTypes tablosuna bakın. Bu tabloyu, veritabanı sayfasından erişilen Azure portal sorgu düzenleyicisinde de sorguleyebilirsiniz.

  1. SSMS'i açın ve kiracı sunucusuna bağlanın: tenants1-dpt- < user > .database.windows.net
  2. Motosiklet Yarışı ve Yüzme Kulübü'nün şu anda dahil olmadığını onaylamak için < > tenants1-dpt- kullanıcı sunucusunda contosoconcerthall veritabanına göz atarak VenueTypes tablosuna bakın.

Adımlar

Şimdi, iki yeni mekan türü ekleyerek her kiracı veritabanında VenueTypes tablosu güncelleştirmek için bir iş oluşturabilirsiniz.

Yeni bir iş oluşturmak için jobagent veritabanında oluşturulan iş sistemi saklı yordamları kümesi kullanırsınız. Saklı yordamlar, iş aracısı oluşturulduğunda oluşturulmuş.

  1. SSMS'de kiracı sunucusuna bağlanın: tenants1-mt- < > kullanıcı .database.windows.net

  2. tenants1 veritabanına göz atma.

  3. Motosiklet Yarışı ve Yüzme Kulübü'nün henüz sonuç listesinde olmadığını doğrulamak için VenueTypes tablosundan sorgulayın.

  4. catalog-mt- kullanıcı < > .database.windows.net katalog sunucusuna bağlanın.

  5. Katalog sunucusundaki jobagent veritabanına bağlanabilirsiniz.

  6. SSMS'de dosyasını açın... \ Öğrenme Modülleri Şema \ Yönetimi \ DeployReferenceData.sql.

  7. deyimini değiştirme: set @User = < user ve > Wingtip Tickets SaaS Multi-tenant Database uygulamasını dağıtıldığında kullanılan User değerini kullanın.

  8. Betiği çalıştırmak için F5'e basın.

Gözlemle -mek

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

  • sp _ add target _ _ group, DemoServerGroup hedef grup adını oluşturur ve hedef üyeleri gruba ekler.

  • sp _ add target group _ _ _ member adds the following items:

    • Sunucu hedefi üye türü.
      • Bu, kiracı veritabanlarını içeren < > tenants1-mt- kullanıcı sunucusudur.
      • Sunucu dahil, işin yürütül olduğu sırada mevcut olan kiracı veritabanlarını içerir.
    • Catalog-mt- < > kullanıcı sunucusunda bulunan şablon veritabanı (basetenantdb) için veritabanı hedef üye türü,
    • Sonraki bir öğreticide kullanılan geçici veritabanını dahil etmek için bir veritabanı hedef üye türü.
  • sp _ add _ job, Başvuru Veri Dağıtımı adlı bir iş oluşturur.

  • sp _ add _ jobstep, VenueTypes başvuru tablosuna 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 ne zaman tamamlandığını öğrenmek için yaşam döngüsü sütunundaki durum değerini gözden geçirmek üzere bu sorguları kullanın. İş kiracılar veritabanını güncelleştirir ve başvuru tablosunu içeren iki ek veritabanını günceller.

SSMS 'de, tenants1-MT- < user > sunucusundaki kiracı veritabanına gidin. Otocycle yarış ve yüzme kulübünün tabloya eklendiğini onaylamak için venuetype tablosunu sorgulayın. Mekan türlerinin toplam sayısı iki ile artmalıdır.

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

Bu alıştırma, tüm kiracı veritabanlarındaki başvuru tablosu birincil anahtarındaki dizini yeniden oluşturmak için bir iş oluşturur. Dizin yeniden oluşturma, performansı artırmak için bir yöneticinin büyük miktarda veri yükü yükledikten sonra çalıştırabilecek tipik bir veritabanı yönetimi işlemidir.

  1. SSMS 'de, Katalog-MT- < User > . Database.Windows.net Server 'daki JobAgent veritabanına bağlanın.

  2. SSMS 'de açın ... \ Öğrenme modülleri \ Şema Yönetimi \ onlinereindex. SQL.

  3. Betiği çalıştırmak için F5'e basın.

Uyarak

Onlinereındex. SQL betiğinin aşağıdaki öğelerini gözlemleyin:

  • SP _ Add _ Job , ÇEVRIMIÇI yeniden dizin oluşturma 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 izleyici işi yürütmesindeki kalan görünümler. İşin tüm hedef grup üyelerinde başarıyla tamamlandığını öğrenmek için yaşam döngüsü sütunundaki durum değerini gözden geçirmek üzere bu sorguları kullanın.

Ek kaynaklar

Sonraki adımlar

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

  • Birden çok veritabanı arasında T-SQL işlerini çalıştırmak için bir iş Aracısı oluşturma
  • Tüm kiracı veritabanlarındaki başvuru verilerini Güncelleştir
  • Tüm kiracı veritabanlarında bir tabloda dizin oluşturma

Ardından, kiracı veritabanlarında dağıtılmış sorguları çalıştırmayı araştırmak için geçici Raporlama öğreticisini deneyin.