SQL Data Sync ile ilgili sorunları giderme

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

Bu makalede, Azure'da SQL Data Sync ile ilgili bilinen sorunları giderme adımları açıklanmaktadır. Bir sorunun çözümü varsa burada sağlanır.

SQL Data Sync'e genel bakış için bkz . Azure'da SQL Data Sync ile verileri birden çok bulut ve şirket içi veritabanı arasında eşitleme.

Önemli

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

Eşitleme sorunları

İstemci aracısı ile ilişkili şirket içi veritabanları için portal kullanıcı arabiriminde eşitleme başarısız oluyor

İstemci aracısı ile ilişkili şirket içi veritabanları için Azure SQL Data Sync portal kullanıcı arabiriminde eşitleme başarısız oluyor. Aracıyı çalıştıran yerel bilgisayarda, Olay Günlüğü'nde hatalar görürsünüz System.IO.IOException . Hatalar diskte yeterli alan olmadığını belirtiyor.

  • Neden, neden? Sürücüde yeterli alan yok.

  • Çözüm. %TEMP% dizininin bulunduğu sürücüde daha fazla alan oluşturun.

Eşitleme grubum işlem durumunda takıldı

Azure SQL Data Sync'daki bir eşitleme grubu uzun süredir işlem durumunda. Durdur komutuna yanıt vermez ve günlüklerde yeni girdi gösterilmez.

Aşağıdaki koşullardan herhangi biri, eşitleme grubunun işlem durumunda takılması ile sonuçlanabilir:

  • Neden, neden? İstemci aracısı çevrimdışı

  • Çözüm. İstemci aracısının çevrimiçi olduğundan emin olun ve işlemi yeniden deneyin.

  • Neden, neden? İstemci aracısı yüklü değil veya eksik.

  • Çözüm. İstemci aracısı yüklü değilse veya eksikse:

    1. Aracı XML dosyası mevcutsa, dosyayı SQL Data Sync yükleme klasöründen kaldırın.
    2. Aracıyı bir şirket içi bilgisayara yükleyin (aynı bilgisayar veya farklı bir bilgisayar olabilir). Ardından, portalda çevrimdışı olarak gösterilen aracı için oluşturulan aracı anahtarını gönderin.
  • Neden, neden? SQL Data Sync hizmeti durduruldu.

  • Çözüm. SQL Data Sync hizmetini yeniden başlatın.

    1. Başlat menüsünde Hizmetler’i arayın.
    2. Arama sonuçlarında Hizmetler’i seçin.
    3. SQL Data Sync hizmetini bulun.
    4. Hizmet durumu Durduruldu ise, hizmet adına sağ tıklayın ve ardından Başlat'ı seçin.

Dekont

Yukarıdaki bilgiler eşitleme grubunuzu işlem durumundan çıkarmazsa Microsoft Desteği eşitleme grubunuzun durumunu sıfırlayabilir. Eşitleme grubu durumunuzun sıfırlanması için Azure SQL Veritabanı için Microsoft Soru-Cevap soru sayfasında bir gönderi oluşturun. Gönderiye, abonelik kimliğinizi ve sıfırlanması gereken grubun eşitleme grubu kimliğini ekleyin. bir Microsoft Desteği mühendisi gönderinize yanıt verir ve durum sıfırlandığında size bildirir.

Tablolarımda hatalı veriler görüyorum

Aynı ada sahip ancak farklı veritabanı şemalarından gelen tablolar eşitlemeye dahil edilirse eşitlemeden sonra tablolarda hatalı veriler görürsünüz.

  • Neden, neden? Azure SQL Data Sync sağlama işlemi aynı ada sahip ancak farklı şemalarda bulunan tablolar için aynı izleme tablolarını kullanır. Bu nedenle her iki tablodan yapılan değişiklikler aynı izleme tablosuna yansıtılır. Eşitleme sırasında hatalı veri değişikliklerine neden olur.

  • Çözüm. Bir veritabanındaki farklı şemalara ait olsa bile eşitlemeye katılan tabloların adlarının farklı olduğundan emin olun.

Başarılı bir eşitlemeden sonra tutarsız birincil anahtar verileri görüyorum

Eşitlemenin başarılı olduğu bildirilir ve günlükte başarısız veya atlanmış kayıtlar yoktur ancak birincil anahtar verilerinin eşitleme grubundaki veritabanları arasında tutarsız olduğunu gözlemlersiniz.

  • Neden, neden? Tasarım gereği bu sonuç elde edilir. Herhangi bir birincil anahtar sütunundaki değişiklikler, birincil anahtarın değiştirildiği kayıtlarda tutarsız veriler elde eder.

  • Çözüm. Bu sorunu önlemek için birincil anahtar sütunundaki hiçbir verinin değiştirilmediğinden emin olun. Bu sorun oluştuktan sonra düzeltmek için eşitleme grubundaki tüm uç noktalardan tutarsız veriler içeren kaydı silin. Ardından kaydı yeniden yerleştirin.

Performansta önemli bir düşüş görüyorum

Performansınız, büyük olasılıkla SQL Data Sync kullanıcı arabirimini bile açamıyorsanız önemli ölçüde düşer.

  • Neden, neden? Bunun en olası nedeni eşitleme döngüsüdür. Eşitleme döngüsü A eşitleme grubu tarafından yapılan eşitleme, B eşitleme grubu tarafından tetiklendiğinde gerçekleşir ve bu da A eşitleme grubu tarafından eşitlemeyi tetikler. Gerçek durum daha karmaşık olabilir ve döngü ikiden fazla eşitleme grubu içerebilir. Sorun, eşitleme gruplarının birbiriyle çakışmasının neden olduğu döngüsel bir eşitleme tetikleyicisi olmasıdır.

  • Çözüm. En iyi düzeltme, önlemedir. Eşitleme gruplarınızda döngüsel başvurular olmadığından emin olun. Bir eşitleme grubu tarafından eşitlenen herhangi bir kaydı başka bir eşitleme grubu tarafından eşitlenemez.

Şu iletiyi görüyorum: "Sütun <sütununa> NULL değeri eklenemiyor. Sütun null değerlere izin vermiyor." Bu ne anlama geliyor ve nasıl düzeltebilirim?

Bu hata iletisi aşağıdaki iki sorundan birinin oluştuğuna işaret eder:

  • Tabloda birincil anahtar yoktur. Bu sorunu çözmek için eşitlediğiniz tüm tablolara bir birincil anahtar ekleyin.
  • CREATE INDEX deyiminizde bir WHERE yan tümcesi vardır. SQL Data Sync bu koşulu işlemez. Bu sorunu çözmek için WHERE yan tümcesini kaldırın veya değişiklikleri tüm veritabanlarında el ile yapın.

Data Sync döngüsel başvuruları nasıl işler? Yani, aynı veriler birden çok eşitleme grubunda eşitlendiğinde ve sonuç olarak değişmeye devam ettiğinde?

SQL Data Sync döngüsel başvuruları işlemez. Bunları kullanmadığınızdan emin olun.

İstemci aracısı sorunları

İstemci aracısı ile ilgili sorunları gidermek için bkz . Veri Eşitleme Aracısı sorunlarını giderme.

Kurulum ve bakım sorunları

"Diskte yer yok" iletisi alıyorum

  • Neden, neden? Artık dosyaların silinmesi gerekiyorsa "diskte yer yok" iletisi görünebilir. Bunun nedeni virüsten koruma yazılımı olabilir veya silme işlemleri denendiğinde dosyalar açık olabilir.

  • Çözüm. %temp% klasöründeki (del \*sync\* /s ) eşitleme dosyalarını el ile silin. Ardından %temp% klasöründeki alt dizinleri silin.

Önemli

Eşitleme devam ederken hiçbir dosyayı silmeyin.

Eşitleme grubumu silemiyorum

Eşitleme grubunu silme girişiminiz başarısız oluyor. Aşağıdaki senaryolardan herhangi biri eşitleme grubunun silinememesine neden olabilir:

  • Neden, neden? İstemci aracısı çevrimdışı.

  • Çözüm. İstemci aracısının çevrimiçi olduğundan emin olun ve yeniden deneyin.

  • Neden, neden? İstemci aracısı yüklü değil veya eksik.

  • Çözüm. İstemci aracısı yüklü değilse veya eksikse:
    a. Aracı XML dosyası mevcutsa, dosyayı SQL Data Sync yükleme klasöründen kaldırın.
    b. Aracıyı bir şirket içi bilgisayara yükleyin (aynı bilgisayar veya farklı bir bilgisayar olabilir). Ardından, portalda çevrimdışı olarak gösterilen aracı için oluşturulan aracı anahtarını gönderin.

  • Neden, neden? Veritabanı çevrimdışı.

  • Çözüm. Veritabanlarınızın tümünün çevrimiçi olduğundan emin olun.

  • Neden, neden? Eşitleme grubu sağlanıyor veya eşitleniyor.

  • Çözüm. Sağlama veya eşitleme işlemi bitene kadar bekleyin ve eşitleme grubunu silmeyi yeniden deneyin.

SQL Server veritabanının kaydını kaldıramıyorum

  • Neden, neden? Büyük olasılıkla zaten silinmiş bir veritabanının kaydını kaldırmaya çalışıyorsunuz.

  • Çözüm. SQL Server veritabanının kaydını kaldırmak için veritabanını seçin ve ardından Zorla Sil'i seçin.

    Bu işlem veritabanını eşitleme grubundan kaldıramazsa:

    1. İstemci aracısı konak hizmetini durdurun ve yeniden başlatın:
      a. Başlat menüsünü seçin.
      b. Arama kutusuna services.msc girin.
      c. Arama sonuçları bölmesinin Programlar bölümünde Hizmetler’e çift tıklayın.
      d. SQL Data Sync hizmetine sağ tıklayın.
      e. Hizmet çalışıyorsa durdurun.
      f. Hizmete sağ tıklayın ve ardından Başlat'ı seçin.
      g. Veritabanının hala kayıtlı olup olmadığını denetleyin. Artık kayıtlı değilse işiniz bitmiştir. Aksi takdirde sonraki adıma geçin.
    2. İstemci aracısı uygulamasını (SqlAzureDataSyncAgent) açın.
    3. Kimlik Bilgilerini Düzenle'yi seçin ve veritabanı için kimlik bilgilerini girin.
    4. Kaydı kaldırma işlemine devam edin.

Sistem hizmetlerini başlatmak için yeterli ayrıcalığım yok

  • Neden, neden? Bu hata iki durumda oluşur:

    • Kullanıcı adı ve/veya parola yanlış.
    • Belirtilen kullanıcı hesabının hizmet olarak oturum açmak için yeterli ayrıcalığı yok.
  • Çözüm. Kullanıcı hesabına hizmet olarak oturum açma kimlik bilgileri sağlayın:

    1. Başlangıç> Denetim Masası> Yönetici Istrative Araçları>Yerel Güvenlik İlkesi>Yerel İlkesi>Kullanıcı Hakları Yönetimi'ne gidin.
    2. Hizmet olarak oturum aç'ı seçin.
    3. Özellikler iletişim kutusunda kullanıcı hesabını ekleyin.
    4. Uygula’yı ve sonra Tamam’ı seçin.
    5. Tüm pencereleri kapatın.

Bir veritabanında "Güncel Değil" durumu var

  • Neden, neden? SQL Data Sync, 45 gün veya daha uzun süredir hizmetten çevrimdışı olan veritabanlarını kaldırır (veritabanı çevrimdışı olduğu andan itibaren sayılır). Veritabanı 45 gün veya daha fazla süre çevrimdışıysa ve sonra yeniden çevrimiçi olursa durumu Güncel Değil olur.

  • Çözüm. Veritabanlarınızdan hiçbirinin 45 gün veya daha fazla süreyle çevrimdışı kalmamasını sağlayarak Güncel Olmayan durumundan kaçınabilirsiniz.

    Veritabanının durumu Güncel Değil ise:

    1. Eşitleme grubundan Güncel Olmayan durumuna sahip veritabanını kaldırın.
    2. Veritabanını eşitleme grubuna geri ekleyin.

    Uyarı

    Çevrimdışıyken bu veritabanında yapılan tüm değişiklikleri kaybedersiniz.

Eşitleme grubunun "Güncel Değil" durumu var

  • Neden, neden? 45 günlük saklama süresinin tamamı için bir veya daha fazla değişiklik uygulanamazsa, eşitleme grubu güncel değildir.

  • Çözüm. Eşitleme grubu için Güncel Değil durumundan kaçınmak için, geçmiş görüntüleyicisindeki eşitleme işlerinizin sonuçlarını düzenli olarak inceleyin. Uygulanamaz değişiklikleri araştırın ve çözün.

    Eşitleme grubunun durumu Güncel Değil ise eşitleme grubunu silin ve yeniden oluşturun.

Eşitleme grubu aracıyı kaldırdıktan veya durdurduktan sonra üç dakika içinde silinemez

İlişkili SQL Data Sync istemci aracısını kaldırdıktan veya durdurduktan sonra üç dakika içinde eşitleme grubunu silemezsiniz.

  • Çözüm.

    1. İlişkili eşitleme aracıları çevrimiçiyken eşitleme grubunu kaldırın (önerilir).
    2. Aracı çevrimdışıysa ancak yüklüyse şirket içi bilgisayarda çevrimiçine getirin. Aracının durumunun SQL Data Sync portalında Çevrimiçi olarak görünmesini bekleyin. Ardından eşitleme grubunu kaldırın.
    3. Aracı kaldırıldığı için çevrimdışıysa:
      a. Aracı XML dosyası mevcutsa, dosyayı SQL Data Sync yükleme klasöründen kaldırın.
      b. Aracıyı bir şirket içi bilgisayara yükleyin (aynı bilgisayar veya farklı bir bilgisayar olabilir). Ardından, portalda çevrimdışı olarak gösterilen aracı için oluşturulan aracı anahtarını gönderin.
      c. Eşitleme grubunu silmeyi deneyin.

Kayıp veya bozuk bir veritabanını geri yüklediğimde ne olur?

Kayıp veya bozuk bir veritabanını yedekten geri yüklerseniz veritabanının ait olduğu eşitleme gruplarında veri yakınsaması olmayabilir.

"Sync0022 Müşteri 'syncGroupOperationResults/read' eylemini gerçekleştirme yetkisi yok" hata iletisi

hata iletisini Sync0022 Customer does not have authorization to perform action 'syncGroupOperationResults/read'alırsanız, işlemi deneyen hesabın abonelik düzeyi izinleri yeterli değildir. Ekle:

  • "Microsoft.Sql/locations/syncMemberOperationResults/read"
  • "Microsoft.Sql/locations/syncAgentOperationResults/read"
  • "Microsoft.Sql/locations/syncGroupOperationResults/read"

Daha fazla bilgi için bkz. Kaynak sağlayıcısı işlemleri RBAC ve en az gerekli ayrıcalıklara sahip SQL Data Sync Veritabanı hesapları.

Sonraki adımlar

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

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