Bagikan melalui


Memecahkan masalah dengan Sinkronisasi Data SQL

Berlaku untuk:Azure SQL Database

Artikel ini menjelaskan cara memecahkan masalah yang diketahui dengan Sinkronisasi Data SQL di Azure. Jika ada resolusi untuk sebuah masalah, itu akan tersedia di sini.

Untuk gambaran umum sinkronisasi data SQL, lihat Menyinkronkan data di beberapa database awan dan lokal dengan Sinkronisasi Data SQL di Azure.

Penting

Sinkronisasi Data SQL tidak mendukung Azure SQL Managed Instance atau Azure Synapse Analytics saat ini.

Masalah sinkronisasi

Sinkronisasi gagal di antarmuka pengguna portal untuk database lokal yang terkait dengan agen klien

Sinkronisasi gagal di antarmuka pengguna portal SQL Data Sync untuk database lokal yang terkait dengan agen klien. Di komputer lokal yang menjalankan agen, Anda akan melihat System.IO.IOException kesalahan di Log Peristiwa. Kesalahan mengatakan bahwa disk tidak memiliki ruang yang mencukupi.

  • Penyebab. Drive tidak memiliki ruang yang mencukupi.

  • Resolusi. Buat lebih banyak ruang pada drive tempat direktori %TEMP% berada.

Grup sinkronisasi saya terjebak dalam kondisi pemrosesan

Grup sinkronisasi dalam SQL Data Sync telah berada dalam status pemrosesan untuk waktu yang lama. Ia tidak merespon perintah berhenti, dan log tidak menunjukkan entri baru.

Salah satu kondisi berikut ini dapat mengakibatkan grup sinkronisasi terjebak dalam status pemrosesan:

  • Penyebab. Agen klien sedang luring

  • Resolusi. Pastikan agen klien sedang online, lalu coba lagi.

  • Penyebab. Agen klien dicopot pemasangannya atau hilang.

  • Resolusi. Jika instalasi agen klien dicopot pemasangannya atau hilang:

    1. Hapus file XML agen dari folder pemasangannya SQL Data Sync, jika file-nya ada.
    2. Instal agen di komputer lokal (bisa di komputer yang sama atau berbeda). Kemudian, kirimkan kunci agen yang dibuat di portal untuk agen yang ditampilkan sebagai luring.
  • Penyebab. Layanan SQL Data Sync dihentikan.

  • Resolusi. Hidupkan ulang layanan Sinkronisasi Data SQL.

    1. Di menu Mulai, cari Layanan.
    2. Dalam hasil pencarian, pilih Layanan.
    3. Temukan layanan SQL Data Sync.
    4. Jika status layanan Dihentikan, klik kanan pada nama layanan, lalu pilih Mulai.

Catatan

Jika informasi sebelumnya tidak memindahkan grup sinkronisasi Anda keluar dari status pemrosesan, Dukungan Microsoft bisa mereset status grup sinkronisasi Anda. Untuk mereset status grup sinkronisasi Anda, di halaman pertanyaan Tanya Jawab Microsoft untuk Azure SQL Database, buat postingan. Di postingan, sertakan ID langganan Anda dan ID grup sinkronisasi untuk grup yang perlu direset. Seorang teknisi Dukungan Microsoft akan menanggapi postingan Anda dan akan memberi tahu Anda ketika status telah direset.

Saya melihat data yang keliru dalam tabel saya

Jika tabel yang memiliki nama sama tetapi berasal dari skema database yang berbeda disertakan dalam sinkronisasi, Anda akan melihat data yang salah dalam tabel setelah sinkronisasi.

  • Penyebab. Proses provisi Sinkronisasi Data SQL menggunakan tabel pelacakan yang sama untuk tabel yang memiliki nama sama tetapi berada dalam skema yang berbeda. Karena itu, perubahan dari kedua tabel terlihat dalam tabel pelacakan yang sama. Hal ini menyebabkan perubahan data yang salah selama sinkronisasi.

  • Resolusi. Pastikan bahwa nama tabel yang terlibat dalam sinkronisasi berbeda, bahkan jika tabel tersebut berasal dari skema yang berbeda dalam database.

Saya melihat data kunci utama yang tidak konsisten setelah sinkronisasi berhasil

Sinkronisasi dilaporkan berhasil, dan log tidak menunjukkan baris yang gagal atau terlewati, tetapi Anda mengamati bahwa data kunci utama tidak konsisten di antara database dalam grup sinkronisasi.

  • Penyebab. Hal ini memang disengaja. Perubahan pada kolom kunci utama mengakibatkan data yang tidak konsisten di baris di mana kunci utama diubah.

  • Resolusi. Untuk mencegah masalah ini, pastikan tidak ada data di kolom kunci utama yang diubah. Untuk memperbaiki masalah ini setelah terjadi, hapus baris yang memiliki data yang tidak konsisten dari semua titik akhir dalam grup sinkronisasi. Kemudian, masukkan kembali baris tersebut.

Saya melihat penurunan performa yang signifikan

Performa Anda terdegradasi secara signifikan, mungkin hingga ke titik di mana Anda bahkan tidak dapat membuka antarmuka pengguna Data Sync.

  • Penyebab. Penyebab yang paling mungkin adalah perulangan sinkronisasi. Pengulangan sinkronisasi terjadi saat sinkronisasi oleh grup sinkronisasi A memicu sinkronisasi oleh grup sinkronisasi B, yang kemudian memicu sinkronisasi oleh grup sinkronisasi A. Situasi aktualnya mungkin lebih kompleks, dan mungkin melibatkan lebih dari dua grup sinkronisasi dalam perulangan. Permasalahannya adalah bahwa ada pemicu sinkronisasi melingkar yang disebabkan oleh grup sinkronisasi yang tumpang tindih satu sama lain.

  • Resolusi. Perbaikan terbaik adalah pencegahan. Pastikan Anda tidak memiliki referensi melingkar dalam grup sinkronisasi Anda. Baris apa pun yang disinkronkan oleh satu grup sinkronisasi tidak bisa disinkronkan oleh grup sinkronisasi lain.

Saya melihat pesan ini: "Tidak dapat menyisipkan nilai NULL ke dalam kolom <column>. Kolom tidak mengizinkan null." Apa artinya ini, dan bagaimana cara memperbaikinya?

Pesan kesalahan ini menunjukkan bahwa salah satu dari dua masalah berikut telah terjadi:

  • Tabel tidak memiliki kunci utama. Untuk memperbaiki masalah ini, tambahkan kunci utama ke semua tabel yang sedang Anda sinkronkan.
  • Ada klausa WHERE dalam pernyataan CREATE INDEX Anda. Sinkronisasi Data tidak menangani kondisi ini. Untuk memperbaiki masalah ini, hapus klausa WHERE atau buat perubahan secara manual ke semua database.

Bagaimana cara Sinkronisasi Data menangani referensi melingkar? Artinya, ketika data yang sama disinkronkan dalam beberapa grup sinkronisasi, dan terus berubah sebagai hasilnya?

Sinkronisasi Data tidak menangani referensi melingkar. Pastikan untuk menghindari mereka.

Masalah agen klien

Untuk memecahkan masalah dengan agen klien, lihat Memecahkan masalah Agen Sinkronisasi Data.

Masalah penyetelan dan pemeliharaan

Saya mendapatkan pesan "disk kehabisan ruang"

  • Penyebab. Pesan "disk kehabisan ruang" mungkin muncul jika file sisa perlu dihapus. Ini mungkin disebabkan oleh perangkat lunak antivirus, atau file terbuka ketika operasi penghapusan dijalankan.

  • Resolusi. Hapus file sinkronisasi yang ada di dalam folder %temp% secara manual (del \*sync\* /s). Kemudian, hapus subdirektori dalam folder %temp%.

Penting

Jangan hapus file apa pun ketika sinkronisasi sedang berlangsung.

Saya tidak bisa menghapus grup sinkronisasi saya

Upaya Anda untuk menghapus grup sinkronisasi gagal. Salah satu skenario berikut ini mungkin mengakibatkan kegagalan untuk menghapus grup sinkronisasi:

  • Penyebab. Agen klien sedang luring.

  • Resolusi. Pastikan agen klien sedang online, lalu coba lagi.

  • Penyebab. Agen klien dicopot pemasangannya atau hilang.

  • Resolusi. Jika instalasi agen klien dicopot pemasangannya atau hilang:
    a. Hapus file XML agen dari folder pemasangannya SQL Data Sync, jika file-nya ada.
    b. Instal agen di komputer lokal (bisa di komputer yang sama atau berbeda). Kemudian, kirimkan kunci agen yang dibuat di portal untuk agen yang ditampilkan sebagai luring.

  • Penyebab. Database sedang luring.

  • Resolusi. Pastikan bahwa semua database Anda online.

  • Penyebab. Grup sinkronisasi sedang menyediakan atau menyinkronkan.

  • Resolusi. Tunggu hingga proses penyediaan atau sinkronisasi selesai lalu coba lagi menghapus grup sinkronisasi.

Saya tidak bisa membatalkan pendaftaran database SQL Server

  • Penyebab. Kemungkinan besar, Anda mencoba membatalkan pendaftaran database yang telah dihapus.

  • Resolusi. Untuk membatalkan pendaftaran database SQL Server, pilih database lalu pilih Hapus Paksa.

    Jika operasi ini gagal menghapus database dari grup sinkronisasi:

    1. Hentikan lalu hidupkan ulang layanan host agen klien:
      a. Pilih menu Mulai.
      b. Dalam kotak pencarian, masukkan services.msc.
      c. Di bagian Program dari panel hasil pencarian, klik Layanan dua kali.
      d. Klik kanan layanan SQL Data Sync.
      e. Jika layanan sedang berjalan, hentikan.
      f. Klik kanan layanan, lalu pilih Mulai.
      g. Periksa apakah database masih terdaftar. Jika tidak lagi terdaftar, Anda sudah selesai. Apabila masih terdaftar, lanjutkan dengan langkah berikutnya.
    2. Buka aplikasi agen klien (SqlAzureDataSyncAgent).
    3. Pilih Edit Kredensial, lalu masukkan informasi masuk untuk database.
    4. Lanjutkan dengan pembatalan pendaftaran.

Saya tidak memiliki hak akses yang cukup untuk memulai layanan sistem

  • Penyebab. Kesalahan ini terjadi dalam dua situasi:

    • Nama pengguna dan/atau sandi keliru.
    • Akun pengguna yang ditentukan tidak memiliki cukup hak akses untuk masuk sebagai layanan.
  • Resolusi. Berikan informasi masuk log-on-as-a-service ke akun pengguna:

    1. Buka Mulai>Panel kontrol>Alat Administratif>Kebijakan Keamanan Lokal>Kebijakan Lokal>Manajemen Hak Pengguna Kebijakan.
    2. Pilih Masuk sebagai layanan.
    3. Dalam kotak dialog Properti, tambahkan akun pengguna.
    4. Pilih Terapkan, lalu pilih OK.
    5. Tutup semua jendela.

Database memiliki status "Kedaluwarsa"

  • Penyebab. SQL Data Sync menghapus database yang telah luring dari layanan selama 45 hari atau lebih (terhitung sejak database luring). Jika database luring selama 45 hari atau lebih dan kemudian kembali online, statusnya Sudah Kedaluwarsa.

  • Resolusi. Anda dapat menghindari status Kedaluwarsa dengan memastikan bahwa tidak ada database Anda yang luring selama 45 hari atau lebih.

    Jika status database sudah Kedaluwarsa:

    1. Hapus database yang memiliki status Kedaluwarsa dari grup sinkronisasi.
    2. Tambahkan kembali database ke grup sinkronisasi.

    Peringatan

    Anda kehilangan semua perubahan yang dilakukan pada basis data ini ketika sedang luring.

Grup sinkronisasi memiliki status "Kedaluwarsa"

  • Penyebab. Jika satu atau beberapa perubahan gagal diterapkan untuk seluruh periode retensi selama 45 hari, grup sinkronisasi dapat menjadi kedaluwarsa.

  • Resolusi. Untuk menghindari status Kedaluwarsa untuk grup sinkronisasi, periksa hasil pekerjaan sinkronisasi Anda di penampil riwayat secara berkala. Selidiki dan atasi perubahan apa pun yang gagal diterapkan.

    Jika status grup sinkronisasi sudah Kedaluarsa, hapus grup sinkronisasi, lalu buat ulang.

Grup sinkronisasi tidak dapat dihapus dalam waktu tiga menit setelah pencopotan atau penghentian agen

Anda tidak dapat menghapus grup sinkronisasi dalam waktu tiga menit setelah pencopotan pemasangannya atau penghentian agen klien SQL Data Sync terkait.

  • Resolusi.

    1. Menghapus grup sinkronisasi saat agen sinkronisasi terkait sedang daring (disarankan).
    2. Jika agen sedang luring tetapi telah terpasang, ubah menjadi daring di komputer lokal. Tunggu hingga status agen muncul sebagai Online di portal SQL Data Sync. Lalu, hapus grup sinkronisasi.
    3. Jika agen luring karena dicopot pemasangannya:
      a. Hapus file XML agen dari folder pemasangannya SQL Data Sync, jika file-nya ada.
      b. Instal agen di komputer lokal (bisa di komputer yang sama atau berbeda). Kemudian, kirimkan kunci agen yang dibuat di portal untuk agen yang ditampilkan sebagai luring.
      c. Coba hapus grup sinkronisasinya.

Apa yang terjadi ketika saya memulihkan database yang hilang atau rusak?

Jika Anda memulihkan database yang hilang atau rusak dari cadangan, mungkin ada data non-konvergensi dalam grup sinkronisasi tempat database berada.

Pesan kesalahan "Sync0022 Pelanggan tidak memiliki otorisasi untuk melakukan tindakan 'syncGroupOperationResults/read'"

Jika Anda menerima pesan Sync0022 Customer does not have authorization to perform action 'syncGroupOperationResults/read'kesalahan , akun yang mencoba operasi tidak memiliki izin tingkat langganan yang memadai. Tambahkan:

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

Untuk mengetahui informasi selengkapnya, lihat Operasi penyedia sumber RBAC dan akun Database Sinkronisasi Data SQL dengan hak istimewa yang paling tidak diperlukan.

Langkah berikutnya

Untuk informasi selengkapnya tentang SQL Data Sync, lihat:

Untuk informasi selengkapnya tentang SQL Database, lihat: