Azure SQL Data Sync için en iyi yöntemler

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

Bu makalede Azure SQL Data Sync için en iyi yöntemler açıklanmaktadır.

SQL Data Sync hizmetine genel bakış için bkz. Azure SQL Data Sync ile birden fazla bulut ve şirket içi veritabanı arasında veri eşitleme.

Önemli

Azure SQL Data Sync şu anda Azure SQL Yönetilen Örneği veya Azure Synapse Analytics'i desteklememektedir.

Güvenlik ve güvenilirlik

İstemci aracısı

  • Ağ hizmeti erişimi olan en az ayrıcalıklı kullanıcı hesabını kullanarak istemci aracısını yükleyin.
  • İstemci aracısını SQL Server'ın yüklü olduğu sunucudan farklı bir sunucuya yükleyin.
  • Şirket içi veritabanını birden fazla aracıyla kaydetmeyin.
    • Farklı eşitleme grupları için farklı tabloları eşitleseniz bile bundan kaçının.
    • Şirket içi veritabanını birden çok istemci aracısıyla kaydetmek, eşitleme gruplarından birini sildiğinizde zorluklara neden olur.

En az gerekli ayrıcalıklara sahip veritabanı hesapları

  • Eşitleme kurulumu için:

    • SQL Server izinleri: CREATE/ALTER TABLE, ALTER DATABASE, CREATE PROCEDURE, SELECT/ALTER SCHEMA, CREATE TYPE. Bu izinler yerleşik veritabanı rolüne ddl_admin(diğer izinlerle birlikte) dahil edilir.
    • Kaynak grubu düzeyinde, SQL DB Katkıda Bulunanı rolüne üyelik gereklidir. Daha fazla bilgi için bkz. Azure portalı kullanarak Azure rolleri atama. Katkıda Bulunan veya Sahip gibi daha geniş rollerdeki üyelikler de zaten atanmışsa çalışır.
    • Abonelik düzeyinde izinler gerekli olmamalıdır, ancak bir abonelikteki birden çok Azure Data Sync uygulaması için gerekli izinleri sağlamak için basitleştirilmiş (en az gerekli olmasa da) bir yol sağlayabilir. Özgün, kullanım dışı bir API bu Azure RBAC izinlerini gerektiriyordu, ancak artık kullanımda olmamalıdır.
      • "Microsoft.Sql/locations/syncMemberOperationResults/read"
      • "Microsoft.Sql/locations/syncAgentOperationResults/read"
      • "Microsoft.Sql/locations/syncGroupOperationResults/read"
  • Devam eden eşitleme için.

    • SQL Server izinleri: Eşitleme için seçilen kullanıcı tablolarında SELECT, INSERT, UPDATE ve DELETE izinleri. Kullanıcı tanımlı tablo türlerinde EXECUTE izni.
    • SQL Server izinleri: Eşitleme meta verileri ve sistem tarafından oluşturulan izleme tablolarında SELECT, INSERT, UPDATE ve DELETE izinleri. Hizmet tarafından oluşturulan saklı yordamlarda YÜRÜTME izni.
      • Şema DataSync , hub ve üye veritabanlarında sistem tarafından oluşturulan nesneler için kullanılır.
      • dss ve TaskHosting şemaları, eşitleme meta veri veritabanında sistem tarafından oluşturulan nesneler için kullanılır.
  • Sağlamayı kaldırma için.

    • SQL Server izinleri: Eşitlemenin tüm tablolarında ALTER; Eşitleme meta veri tablolarında SELECT ve DELETE; Eşitleme izleme tablolarında, saklı yordamlarda ve kullanıcı tanımlı türlerde CONTROL.
    • Temizleme için, , dssve TaskHosting şemalarında DataSyncsistem tarafından oluşturulan nesneleri kaldırın.

Azure SQL Veritabanı yalnızca tek bir kimlik bilgisi kümesini destekler. Bu sınırlama içinde bu görevleri gerçekleştirmek için aşağıdaki seçenekleri göz önünde bulundurun:

  • Farklı aşamaların kimlik bilgilerini değiştirin (örneğin, kurulum için kimlik bilgileri1 ve devam eden kimlik bilgileri2 ).
  • Kimlik bilgilerinin iznini değiştirin (yani eşitleme ayarlandıktan sonra izni değiştirin).

Denetim

Eşitleme gruplarındaki veritabanları düzeyinde denetimi etkinleştirmeniz önerilir. Azure SQL veritabanınızda denetimi etkinleştirmeyi veya SQL Server veritabanınızda denetimi etkinleştirmeyi öğrenin.

Kurulum

Veritabanı ile ilgili dikkat edilmesi gerekenler ve kısıtlamalar

Veritabanı boyutu

Yeni bir veritabanı oluşturduğunuzda, her zaman dağıttığınız veritabanından daha büyük olacak şekilde en büyük boyutu ayarlayın. En büyük boyutu dağıtılan veritabanından daha büyük olarak ayarlamazsanız eşitleme başarısız olur. SQL Data Sync otomatik büyüme sunmasa da, veritabanının oluşturulduktan sonra boyutunu artırmak için komutunu çalıştırabilirsiniz ALTER DATABASE . Veritabanı boyutu sınırları içinde olduğunuzdan emin olun.

Önemli

SQL Data Sync her veritabanıyla ek meta verileri depolar. Gereken alanı hesaplarken bu meta verileri hesaba eklediğinizden emin olun. Eklenen ek yük miktarı, tabloların genişliğiyle (örneğin, dar tablolar daha fazla ek yük gerektirir) ve trafik miktarıyla ilgilidir.

Tabloyla ilgili dikkat edilmesi gerekenler ve kısıtlamalar

Tabloları seçme

Veritabanındaki tüm tabloları eşitleme grubuna eklemeniz gerekmez. Eşitleme grubuna eklediğiniz tablolar verimliliği ve maliyetleri etkiler. Bir eşitleme grubuna yalnızca iş gereksinimleri gerektirdiğinde tabloları ve bağımlı oldukları tabloları dahil edin.

Birincil anahtarlar

Eşitleme grubundaki her tablonun birincil anahtarı olmalıdır. SQL Data Sync, birincil anahtarı olmayan bir tabloyu eşitleyemez.

Üretimde SQL Data Sync'i kullanmadan önce ilk ve devam eden eşitleme performansını test edin.

Boş tablolar en iyi performansı sağlar

Boş tablolar başlatma zamanında en iyi performansı sağlar. Hedef tablo boşsa, Veri Eşitleme verileri yüklemek için toplu ekleme kullanır. Aksi takdirde, Data Sync çakışmaları denetlemek için satır satır karşılaştırma ve ekleme yapar. Ancak performans önemli değilse, zaten veri içeren tablolar arasında eşitleme ayarlayabilirsiniz.

Hedef veritabanları sağlama

SQL Data Sync temel veritabanı otomatik sağlamasını sağlar.

Bu bölümde SQL Data Sync'te sağlamanın sınırlamaları ele alınmaktadır.

Otomatik sağlama sınırlamaları

SQL Data Sync otomatik sağlama için aşağıdaki sınırlamalara sahiptir:

  • Yalnızca hedef tabloda oluşturulan sütunları seçin. Eşitleme grubunun parçası olmayan sütunlar hedef tablolarda sağlanmamıştır.
  • Dizinler yalnızca seçili sütunlar için oluşturulur. Kaynak tablo dizininde eşitleme grubunun parçası olmayan sütunlar varsa, bu dizinler hedef tablolarda sağlanmamıştır.
  • XML türü sütunlarında dizinler sağlanmamıştır.
  • Veri Eşitleme yalnızca şu iki dizin özelliğini destekler: Benzersiz, Kümelenmiş/Kümelenmemiş. IGNORE_DUP_KEY, Burada filtre koşulu vb. gibi dizinin diğer özellikleri desteklenmez ve kaynak Dizin bu özelliklere sahip olsa bile hedef dizin bu özellikler olmadan sağlanır.
  • CHECK kısıtlamaları sağlanmamıştır.
  • Kaynak tablolarda var olan tetikleyiciler sağlanmamıştır.
  • Görünümler ve saklı yordamlar hedef veritabanında oluşturulmaz.
  • ON UPDATE CASCADE ve ON DELETE CASCADE eylemleri yabancı anahtar kısıtlamalarına yönelik hedef tablolarda yeniden oluşturmaz.
  • Duyarlık değeri 28'den büyük olan ondalık veya sayısal sütunlarınız varsa, SQL Data Sync eşitleme sırasında bir dönüştürme taşması sorunuyla karşılaşabilir. Ondalık veya sayısal sütunların duyarlığı 28 veya daha az ile sınırlandırmanızı öneririz.

Öneriler

  • SQL Data Sync otomatik sağlama özelliğini yalnızca hizmeti denerken kullanın.
  • Üretim için veritabanı şemasını sağlayın.

Hub veritabanının bulunacağı yer

Kurumsaldan buluta senaryo

Gecikme süresini en aza indirmek için hub veritabanını eşitleme grubunun veritabanı trafiğinin en yüksek yoğunluğuna yakın tutun.

Buluttan buluta senaryo

  • Eşitleme grubundaki tüm veritabanları tek bir veri merkezinde olduğunda, hub aynı veri merkezinde bulunmalıdır. Bu yapılandırma, veri merkezleri arasındaki veri aktarımının gecikme süresini ve maliyetini azaltır.
  • Eşitleme grubundaki veritabanları birden çok veri merkezinde olduğunda, hub veritabanlarının ve veritabanı trafiğinin çoğuyla aynı veri merkezinde bulunmalıdır.

Karma senaryolar

Kurumsaldan buluta ve buluttan buluta senaryoların bir karışımı olan karmaşık eşitleme grubu yapılandırmalarına yukarıdaki yönergeleri uygulayın.

Sync

Yavaş ve maliyetli ilk eşitlemeden kaçının

Bu bölümde, bir eşitleme grubunun ilk eşitlemesini ele aacağız. İlk eşitlemenin daha uzun sürmesini ve gerekenden daha maliyetli olmasını önlemeye yardımcı olmayı öğrenin.

İlk eşitleme nasıl çalışır?

Eşitleme grubu oluştururken tek bir veritabanındaki verilerle başlayın. Birden fazla veritabanında verileriniz varsa, SQL Data Sync her satırı çözülmesi gereken bir çakışma olarak değerlendirir. Bu çakışma çözümü, ilk eşitlemenin yavaş gitmesine neden olur. Birden çok veritabanında veriniz varsa, veritabanı boyutuna bağlı olarak ilk eşitleme birkaç gün ile birkaç ay arasında sürebilir.

Veritabanları farklı veri merkezlerindeyse, her satır farklı veri merkezleri arasında hareket etmelidir. Bu, ilk eşitlemenin maliyetini artırır.

Öneri

Mümkünse, eşitleme grubunun veritabanlarından yalnızca birindeki verilerle başlayın.

Eşitleme döngülerini önlemek için tasarlama

Eşitleme grubu içinde döngüsel başvurular olduğunda eşitleme döngüsü gerçekleşir. Bu senaryoda, bir veritabanındaki her değişiklik eşitleme grubundaki veritabanları aracılığıyla sonsuz ve döngüsel olarak çoğaltılır.

Eşitleme döngülerinden kaçındığınızdan emin olun çünkü bunlar performans düşüşlerine neden olur ve maliyetleri önemli ölçüde artırabilir.

Yayılması başarısız olan değişiklikler

Değişikliklerin yayılamamasının nedenleri

Değişiklikler aşağıdaki nedenlerden biri nedeniyle yayılamayabilir:

  • Şema/veri türü uyumsuzluğu.
  • Null değer atanamayan sütunlara null ekleme.
  • Yabancı anahtar kısıtlamalarını ihlal etme.

Değişiklikler yayılamazsa ne olur?

  • Eşitleme grubu, uyarı durumunda olduğunu gösterir.
  • Ayrıntılar portal kullanıcı arabirimi günlük görüntüleyicisinde listelenir.
  • Sorun 45 gün boyunca çözülmezse veritabanı güncel olmaz.

Not

Bu değişiklikler hiçbir zaman yayılmaz. Bu senaryoda kurtarmanın tek yolu eşitleme grubunu yeniden oluşturmaktır.

Öneri

Eşitleme grubunu ve veritabanı durumunu portal ve günlük arabirimi aracılığıyla düzenli olarak izleyin.

Bakım

Güncel olmayan veritabanlarından ve eşitleme gruplarından kaçının

Eşitleme grubu veya eşitleme grubundaki bir veritabanı eski olabilir. Eşitleme grubunun durumu Güncel değil olduğunda çalışmayı durdurur. Veritabanının durumu Güncel değil olduğunda veriler kaybolabilir. Kurtarmayı denemek yerine bu senaryodan kaçınmak en iyisidir.

Güncel olmayan veritabanlarından kaçının

Veritabanının durumu, 45 gün veya daha uzun süre çevrimdışı olduğunda Güncel değil olarak ayarlanır. Veritabanında güncel olmayan bir durumdan kaçınmak için veritabanlarından hiçbirinin 45 gün veya daha fazla çevrimdışı kalmadığından emin olun.

Güncel olmayan eşitleme gruplarından kaçının

Eşitleme grubundaki herhangi bir değişiklik 45 gün veya daha fazla süreyle eşitleme grubunun geri kalanına yayılamazsa, eşitleme grubunun durumu Güncel değil olarak ayarlanır. Eşitleme grubunda güncel olmayan bir durumdan kaçınmak için eşitleme grubunun geçmiş günlüğünü düzenli olarak denetleyin. Tüm çakışmaların çözümlenmesini ve değişikliklerin eşitleme grubu veritabanlarına başarıyla yayıldığından emin olun.

Eşitleme grubu aşağıdaki nedenlerden biri nedeniyle değişiklik uygulayamayabilir:

  • Tablolar arasındaki şema uyumsuzluğu.
  • Tablolar arasındaki veri uyumsuzluğu.
  • Null değerlere izin vermeyen bir sütuna null değer içeren bir satır ekleme.
  • Yabancı anahtar kısıtlamasını ihlal eden bir değerle satırı güncelleştirme.

Güncel olmayan eşitleme gruplarını önlemek için:

  • Başarısız satırlarda yer alan değerlere izin vermek için şemayı güncelleştirin.
  • Yabancı anahtar değerlerini, başarısız satırlarda yer alan değerleri içerecek şekilde güncelleştirin.
  • Başarısız satırdaki veri değerlerini, hedef veritabanındaki şema veya yabancı anahtarlarla uyumlu olacak şekilde güncelleştirin.

Sağlamayı kaldırma sorunlarından kaçının

Bazı durumlarda, bir veritabanının kaydını istemci aracısı ile kaldırmak eşitlemenin başarısız olmasına neden olabilir.

Senaryo

  1. Eşitleme grubu A, bir SQL Veritabanı örneği ve yerel aracı 1 ile ilişkili bir SQL Server veritabanı kullanılarak oluşturulmuştur.
  2. Aynı şirket içi veritabanı yerel aracı 2'ye kaydedilir (bu aracı herhangi bir eşitleme grubuyla ilişkilendirilmemiştir).
  3. Yerel aracı 2'den şirket içi veritabanının kaydının kaldırılması, şirket içi veritabanı için A eşitleme grubuna yönelik izleme ve meta tablolarını kaldırır.
  4. Eşitleme grubu A işlemleri şu hatayla başarısız oluyor: "Veritabanı eşitleme için sağlanmadığından veya eşitleme yapılandırma tablolarında izinleriniz olmadığından geçerli işlem tamamlanamadı."

Çözüm

Bu senaryodan kaçınmak için veritabanını birden fazla aracıya kaydetmeyin.

Bu senaryodan kurtarmak için:

  1. Veritabanını ait olduğu her eşitleme grubundan kaldırın.
  2. Veritabanını kaldırdığınız her eşitleme grubuna yeniden ekleyin.
  3. Etkilenen her eşitleme grubunu dağıtın (bu eylem veritabanını sağlar).

Eşitleme grubunu değiştirme

Bir eşitleme grubundan veritabanını kaldırmayı ve ardından değişikliklerden birini dağıtmadan eşitleme grubunu düzenlemeyi denemeyin.

Bunun yerine, önce eşitleme grubundan bir veritabanını kaldırın. Ardından değişikliği dağıtın ve sağlamayı kaldırma işleminin tamamlanmasını bekleyin. Sağlamayı kaldırma işlemi tamamlandığında eşitleme grubunu düzenleyebilir ve değişiklikleri dağıtabilirsiniz.

Önce değişikliklerden birini dağıtmadan bir veritabanını kaldırmayı ve ardından eşitleme grubunu düzenlemeyi denerseniz, bir veya diğer işlem başarısız olur. Portal arabirimi tutarsız hale gelebilir. Böyle bir durumda, doğru durumu geri yüklemek için sayfayı yenileyin.

Şema yenileme zaman aşımından kaçının

Eşitlenecek karmaşık bir şemanız varsa, eşitleme meta veri veritabanında daha düşük bir SKU varsa şema yenilemesi sırasında "işlem zaman aşımı" ile karşılaşabilirsiniz (örnek: temel).

Çözüm

Bu sorunu azaltmak için eşitleme meta veri veritabanı kaynaklarınızın ölçeğini artırmayı göz önünde bulundurun.

Sonraki adımlar

SQL Data Sync hakkında daha fazla bilgi için bkz:

SQL Veritabanı hakkında daha fazla bilgi için bkz: