Apa yang dimaksud dengan SQL Data Sync untuk Azure?

Berlaku untuk:Azure SQL Database

Penting

SQL Data Sync akan pensiun pada 30 September 2027. Pertimbangkan untuk bermigrasi ke solusi replikasi dan sinkronisasi data alternatif. Sebagai bagian dari proses pensiun, Anda tidak dapat membuat grup sinkronisasi baru di langganan Azure yang sebelumnya tidak menggunakan SQL Data Sync. Grup sinkronisasi yang sudah ada dapat terus beroperasi hingga tanggal pensiun, tetapi Anda harus memigrasi mereka ke solusi alternatif sebelum tanggal tersebut.

SQL Data Sync adalah layanan yang dibangun di atas Azure SQL Database yang dapat Anda gunakan untuk menyinkronkan data terpilih secara dua arah di berbagai basis data, baik di lokasi maupun di cloud.

Azure SQL Data Sync tidak mendukung Azure SQL Managed Instance atau Azure Synapse Analytics.

Gambaran Umum

Sinkronisasi Data didasarkan pada konsep grup sinkronisasi. Grup sinkronisasi adalah grup database yang ingin Anda sinkronkan.

Sinkronisasi Data menggunakan topologi hub dan spoke untuk menyinkronkan data. Anda menetapkan salah satu database dalam grup sinkronisasi sebagai database hub. Database lainnya adalah database anggota. Sinkronisasi hanya terjadi antara hub dan anggota individu.

  • Database Hub harus merupakan Azure SQL Database.
  • Database anggota dapat berupa database di Azure SQL Database atau dalam instans SQL Server.
  • Sync Metadata Database berisi metadata dan log untuk Sinkronisasi Data. Sync Metadata Database harus menjadi Azure SQL Database yang terletak di wilayah yang sama dengan Database Hub. Sync Metadata Database adalah basis data yang dibuat dan dimiliki oleh pelanggan. Anda hanya bisa memiliki satu Sync Metadata Database per wilayah dan langganan. Database Metadata Sinkronisasi tidak dapat dihapus atau diganti namanya selama masih ada grup sinkronisasi atau agen sinkronisasi. Microsoft merekomendasikan untuk membuat database baru yang kosong untuk digunakan sebagai Database Metadata Sinkronisasi. Sinkronisasi Data membuat tabel dalam database ini dan menjalankan beban kerja yang sering.

Catatan

Jika Anda menggunakan database lokal sebagai database anggota, Anda harus menginstal dan mengonfigurasi agen sinkronisasi lokal.

Diagram yang menjelaskan proses Sinkronkan data antar database.

Grup sinkronisasi memiliki properti berikut ini:

  • Skema Sinkronisasi mendeskripsikan data mana yang sedang disinkronkan.
  • Arah Sinkronisasi bisa bersifat dua arah, atau hanya mengalir ke satu arah: Hub ke Anggota, Anggota ke Hub, atau keduanya.
  • Interval Sinkronisasi mendeskripsikan seberapa sering sinkronisasi terjadi.
  • Kebijakan Penyelesaian Konflik adalah kebijakan tingkat grup, yang bisa menjadi Hub menang atau Anggota menang.

Waktu menggunakan

Sinkronisasi Data berguna dalam kasus di mana data perlu terus diperbarui di beberapa database di Azure SQL Database atau SQL Server. Berikut adalah kasus penggunaan utama untuk Sinkronisasi Data:

  • Sinkronisasi Data Hibrid: Dengan Data Sync, Anda dapat menjaga data tetap tersinkronisasi antara database Anda di SQL Server dan Azure SQL Database untuk mengaktifkan aplikasi hibrid. Kemampuan ini mungkin menarik bagi pelanggan yang mempertimbangkan untuk pindah ke cloud dan ingin menempatkan beberapa aplikasi mereka di Azure.
  • Aplikasi Terdistribusi: Dalam banyak kasus, aplikasi terdistribusi akan bermanfaat untuk memisahkan beban kerja yang berbeda di seluruh database yang berbeda. Misalnya, jika Anda memiliki database produksi besar, tetapi Anda juga perlu menjalankan beban kerja pelaporan atau analitik pada data ini, sangat membantu untuk memiliki database kedua untuk beban kerja tambahan ini. Pendekatan ini mengecilkan dampak performa pada beban kerja produksi Anda. Anda bisa menggunakan Sinkronisasi Data agar kedua database ini tetap sinkron.
  • Aplikasi Terdistribusi Secara Global: Banyak bisnis mencakup beberapa wilayah dan bahkan beberapa negara/wilayah. Untuk mengecilkan latensi jaringan, yang terbaik adalah memiliki data Anda di wilayah yang dekat dengan Anda. Dengan Sinkronisasi Data, Anda dapat dengan mudah menyinkronkan database di wilayah di seluruh dunia.

Sinkronisasi Data bukanlah solusi yang disukai untuk skenario berikut:

Skenario Beberapa solusi yang disarankan
Pemulihan Bencana Pencadangan otomatis di Azure SQL Database
Membaca dan Menafsirkan Skala Menggunakan replika baca-saja untuk mengalihkan beban kerja kueri baca-saja
ETL (OLTP ke OLAP) Azure Data Factory atau Layanan Integrasi SQL Server
Migrasi dari SQL Server ke Azure SQL Database. Namun, SQL Data Sync dapat digunakan setelah migrasi selesai, untuk memastikan bahwa sumber dan target tetap sinkron. Layanan Migrasi Basis Data Azure

Cara kerjanya

  • Pelacakan perubahan data: Data Sync melacak perubahan dengan menggunakan pemicu sisipkan, pembaruan, dan hapus. Perubahan direkam dalam tabel samping di database pengguna. BULK INSERT tidak menjalankan pemicu secara bawaan. Jika Anda tidak menentukan FIRE_TRIGGERS, tidak ada pemicu penyisipan yang akan dijalankan. Tambahkan FIRE_TRIGGERS opsi agar Data Sync dapat melacak sisipan tersebut.
  • Menyinkronkan data: Sinkronisasi Data dirancang menggunakan model hub dan jari-jari. Hub disinkronkan dengan setiap anggota satu per satu. Perubahan dari hub diunduh ke anggota lalu perubahan dari anggota diunggah ke hub.
  • Mengatasi konflik: Sinkronisasi Data menyediakan dua opsi untuk penyelesaian konflik, Hub menang atau Anggota menang.
    • Jika Anda memilih Hub menang, perubahan di hub selalu menimpa perubahan pada anggota.
    • Jika Anda memilih Anggota menang, perubahan pada anggota menggantikan perubahan dalam hub. Jika ada lebih dari satu anggota, nilai akhir bergantung pada anggota mana yang menyinkronkan terlebih dahulu.

Bandingkan dengan replikasi transaksional

Sinkronisasi Data Replikasi Transaksional
Kelebihan - Dukungan aktif-aktif
- Dua arah antara lingkungan on-premises dan Azure SQL Database
- Latensi yang lebih rendah
- Konsistensi transaksional
- Gunakan kembali topologi yang ada setelah migrasi
-Dukungan Azure SQL Managed Instance
Kerugian - Tidak ada konsistensi transaksional
- Dampak performa yang lebih tinggi
- Tidak dapat menerbitkan dari Azure SQL Database
- Biaya pemeliharaan tinggi

Perhatian

Sinkronisasi Data SQL memerlukan autentikasi SQL untuk koneksi ke database hub dan anggota. Autentikasi Microsoft Entra ID tidak didukung oleh SQL Data Sync.

Karena autentikasi SQL bergantung pada kata sandi statis, ia tidak mendapatkan perlindungan modern seperti autentikasi multifaktor (MFA), Akses Bersyarat, atau identitas terkelola. Ketergantungan ini dapat meningkatkan eksposur seluruh instance SQL terhadap pencurian kredensial, serangan brute-force, dan overhead operasional untuk rotasi kata sandi dan penegakan kebijakan.

Jika memungkinkan, pilih solusi yang mendukung autentikasi Microsoft Entra atau identitas terkelola. Karena SQL Data Sync dijadwalkan untuk pensiun, migrasi ke alternatif yang sesuai dengan standar keamanan organisasi Anda.

Catatan

Tautan privat SQL Data Sync berbeda dari Azure Private Link.

Fitur tautan privat baru memungkinkan Anda memilih titik akhir privat yang dikelola layanan untuk membuat koneksi aman antara layanan sinkronisasi dan anggota/database hub selama proses sinkronisasi data. Titik akhir privat yang dikelola layanan adalah alamat IP privat di dalam jaringan virtual tertentu dan subnet. Dalam Sinkronisasi Data, titik akhir privat yang dikelola layanan dibuat oleh Microsoft dan secara eksklusif digunakan oleh layanan Sinkronisasi Data untuk operasi sinkronisasi tertentu.

Sebelum menyiapkan tautan privat, baca persyaratan umum untuk fitur tersebut.

Diagram tautan privat untuk Sinkronisasi Data.

Catatan

Anda harus menyetujui titik akhir privat yang dikelola layanan secara manual di halaman Koneksi titik akhir privat portal Microsoft Azure selama penyebaran grup sinkronisasi atau dengan menggunakan PowerShell.

Mulai Sekarang

Menyiapkan Sinkronisasi Data di portal Microsoft Azure

Menyiapkan Sinkronisasi Data dengan PowerShell

Menyiapkan Sinkronisasi Data dengan REST API

Mengulas praktik terbaik untuk Sinkronisasi Data

Apakah ada yang salah?

Konsistensi dan performa

Konsistensi Pada Akhirnya

Karena Data Sync berbasis trigger, ini tidak menjamin konsistensi transaksi. Microsoft menjamin bahwa Data Sync pada akhirnya akan melakukan semua perubahan dan tidak menyebabkan kehilangan data.

Dampak performa

Sinkronisasi Data menggunakan pemicu sisipkan, perbarui, dan hapus untuk melacak perubahan. Ini membuat tabel samping di database pengguna untuk pelacakan perubahan. Aktivitas pelacakan perubahan ini berdampak pada beban kerja database Anda. Tinjau tingkat layanan Anda dan tingkatkan jika diperlukan.

Provisi dan deprovisi selama pembuatan, pembaruan, dan penghapusan grup sinkronisasi juga dapat memengaruhi performa database.

Persyaratan dan batasan

Persyaratan umum

  • Setiap tabel harus memiliki kunci primer. Jangan mengubah nilai kunci primer di baris mana pun. Jika Anda harus mengubah nilai kunci primer, hapus baris dan buat ulang dengan nilai kunci primer baru.

Penting

Mengubah nilai kunci utama yang ada menghasilkan perilaku cacat berikut:

  • Data antara hub dan member bisa hilang meskipun sinkronisasi tidak melaporkan masalah apapun.
  • Sinkronisasi dapat gagal karena tabel pelacakan memiliki baris yang sudah tidak ada lagi di sumber akibat perubahan kunci primer.
  • Isolasi snapshot harus diaktifkan untuk anggota Sync dan hub. Untuk informasi selengkapnya, lihat Isolasi Snapshot di SQL Server.

  • Untuk menggunakan tautan pribadi Data Sync, baik basis data anggota maupun hub harus dihosting di Azure (wilayah yang sama atau berbeda), dalam tipe cloud yang sama (misalnya, baik di public cloud maupun keduanya di government cloud). Selain itu, daftarkan penyedia sumber daya Microsoft.Network untuk langganan yang menghosting server hub dan server anggota. Anda harus menyetujui tautan privat untuk Data Sync secara manual selama konfigurasi sinkronisasi, dalam bagian koneksi endpoint pribadi di portal Azure atau melalui PowerShell. Untuk informasi lebih lanjut tentang cara menyetujui tautan privat, lihat Tutorial: Mengatur SQL Data Sync antara database di Azure SQL Database dan SQL Server. Setelah Anda menyetujui endpoint pribadi yang dikelola layanan, semua komunikasi antara layanan sinkronisasi dan basis data anggota/hub terjadi melalui tautan privat. Anda dapat memperbarui grup sinkronisasi yang sudah ada untuk mengaktifkan fitur ini.

Batasan umum

  • Tabel tidak bisa memiliki kolom identitas yang bukan kunci primer.
  • Kunci primer tidak dapat memiliki jenis data berikut: sql_variant, biner, varbinary, gambar, xml.
  • Berhati-hatilah saat Anda menggunakan jenis data berikut sebagai kunci utama, karena presisi yang didukung hanya sampai detik: time, datetime, datetime2, datetimeoffset.
  • Nama objek (database, tabel, dan kolom) tidak boleh mengandung karakter cetak seperti titik (.), tanda kurung siku kiri ([), atau tanda kurung siku kanan (]).
  • Nama tabel tidak boleh berisi karakter yang dapat dicetak: ! " # $ % ' ( ) * + - atau spasi.
  • Autentikasi Microsoft Entra (sebelumnya Azure Active Directory) tidak didukung.
  • Jika ada tabel dengan nama yang sama tetapi skema berbeda (misalnya, dbo.customers dan sales.customers), Anda hanya dapat menambahkan satu tabel ke grup sinkronisasi.
  • Kolom dengan jenis data yang ditentukan pengguna tidak didukung.
  • Memindahkan server di antara langganan yang berbeda tidak didukung.
  • Jika dua kunci primer hanya berbeda dalam huruf besar/kecil (misalnya Foo dan foo), Sinkronisasi Data tidak akan mendukung skenario ini.
  • Memotong tabel bukan operasi yang didukung oleh Sinkronisasi Data (perubahan tidak akan dilacak).
  • Menggunakan database Azure SQL Hyperscale sebagai database Metadata Hub atau Sinkronisasi tidak didukung. Namun, database Hyperscale dapat menjadi database anggota di topologi Sinkronisasi Data.
  • Tabel yang dioptimalkan untuk memori tidak didukung.
  • Perubahan skema tidak direplika secara otomatis.
  • Data Sync hanya mendukung dua properti indeks berikut: Unik, Klaster/Tidak Klaster. Properti lain dari indeks, seperti IGNORE_DUP_KEY atau WHERE predikat filter, tidak didukung dan indeks tujuan disediakan tanpa properti ini meskipun Indeks sumber memiliki kumpulan properti ini.
  • Database pekerjaan Azure Elastic tidak dapat digunakan sebagai database Metadata Sinkronisasi Data SQL, dan sebaliknya.
  • Sinkronisasi Data SQL tidak didukung untuk database ledger.
  • Data Sync bukanlah alat pemulihan bencana atau ketersediaan tinggi, dan tidak menyinkronkan informasi grup sinkronisasi miliknya sendiri. Tidak ada pemulihan bencana otomatis untuk Data Sync.
  • Data Sync memang tidak mendukung perimeter keamanan jaringan secara desain. Data Sync berjalan sebagai layanan proxy, bukan sumber daya Azure, sehingga tidak memiliki nama domain atau alamat IP yang sepenuhnya memenuhi syarat untuk menulis aturan perimeter. Perimeter memblokir jalur jaringan yang dibutuhkan Data Sync baik dalam mode transisi maupun mode penegakan, dan tidak ada aturan akses yang membuatnya berfungsi. Jika server logis Anda terkait dengan perimeter, migrasikan ke solusi pemindahan data yang mendukung perimeter keamanan jaringan.

Jenis data yang tidak didukung

  • FileStream
  • SQL/CLR UDT
  • XMLSchemaCollection (mendukung XML)
  • Kursor, RowVersion, Tanda Waktu, Hierarkiid

Jenis kolom yang tidak didukung

Sinkronisasi Data tidak bisa menyinkronkan kolom yang hanya bisa dibaca atau yang dihasilkan sistem. Contohnya:

  • Kolom Terhitung
  • Kolom yang dihasilkan sistem untuk tabel temporal

Batasan dimensi layanan dan database

Dimensi Batas Solusi Sementara
Jumlah maksimum grup sinkronisasi yang bisa dimiliki database mana pun. 5
Jumlah maksimum titik akhir dalam grup sinkronisasi tunggal 30
Jumlah maksimum titik akhir lokal dalam kelompok sinkronisasi tunggal. 5 Membuat beberapa grup sinkronisasi
Nama database, tabel, skema, dan kolom 50 karakter per nama
Tabel dalam grup sinkronisasi 500 Membuat beberapa grup sinkronisasi
Kolom dalam tabel dalam grup sinkronisasi 1000
Ukuran baris data pada tabel 24 MB

Catatan

Mungkin ada hingga 30 endpoint dalam satu grup sinkronisasi jika hanya ada satu grup sinkronisasi. Jika ada lebih dari satu grup sinkronisasi, jumlah total endpoint di semua grup sinkronisasi tidak boleh melebihi 30. Jika sebuah database termasuk dalam beberapa grup sinkronisasi, maka dihitung sebagai beberapa endpoint, bukan satu.

Persyaratan jaringan

Catatan

Jika Anda menggunakan Sync private link, persyaratan jaringan ini tidak berlaku.

Saat grup sinkronisasi ditetapkan, layanan Sinkronisasi Data perlu tersambung ke database hub. Saat membuat grup sinkronisasi, server Azure SQL harus memiliki konfigurasi berikut dalam pengaturannya Firewalls and virtual networks :

Setelah grup sinkronisasi dibuat dan disediakan, Anda kemudian dapat menonaktifkan pengaturan ini. Agen sinkronisasi terhubung langsung ke database hub, dan Anda dapat menggunakan aturan firewall IP server atau titik akhir privat untuk memungkinkan agen mengakses server hub.

Catatan

Jika Anda mengubah pengaturan skema grup sinkronisasi, Anda perlu mengizinkan layanan Data Sync mengakses server lagi sehingga database hub dapat diprovisionasi ulang.

Residensi data wilayah

Jika Anda menyinkronkan data dalam wilayah yang sama, Sinkronisasi Data SQL tidak menyimpan/memproses data pelanggan di luar wilayah tempat instans layanan disebarkan. Jika Anda menyinkronkan data di berbagai wilayah, Sinkronisasi Data SQL mereplikasi data pelanggan ke wilayah yang dipasangkan.

Tanya Jawab Umum tentang SQL Data Sync

Berapa biaya layanan SQL Data Sync?

Tidak ada biaya untuk layanan SQL Data Sync itu sendiri. Namun, Anda masih mengumpulkan biaya transfer data untuk pergerakan data masuk dan keluar dari instans SQL Database Anda. Untuk informasi selengkapnya, lihat biaya transfer data.

Wilayah apa yang mendukung Sinkronisasi Data?

SQL Data Sync tersedia di semua wilayah.

Apakah akun Azure SQL Database diperlukan?

Ya. Anda harus memiliki akun Azure SQL Database untuk menghosting database hub.

Bisakah saya menggunakan Sinkronisasi Data untuk menyinkronkan antara database SQL Server saja?

Tidak secara langsung. Anda bisa menyinkronkan antara database SQL Server secara tidak langsung, namun, dengan membuat database Hub di Azure, lalu menambahkan database lokal ke grup sinkronisasi.

Bisakah saya mengonfigurasi Sinkronisasi Data untuk menyinkronkan antar database di Azure SQL Database yang termasuk dalam langganan yang berbeda?

Ya. Anda dapat mengonfigurasi sinkronisasi antara database yang termasuk dalam grup sumber daya yang dimiliki oleh langganan berbeda, meskipun langganan tersebut milik penyewa yang berbeda.

  • Jika langganan milik penyewa yang sama dan Anda memiliki izin ke semua langganan, Anda dapat mengonfigurasikan grup sinkronisasi melalui portal Azure.
  • Jika tidak, Anda harus menggunakan PowerShell untuk menambahkan anggota sinkronisasi.
  • Private Link tidak didukung dalam skenario lintas tenant.

Bisakah saya menyiapkan Sinkronisasi Data untuk menyinkronkan antara database di SQL Database yang termasuk dalam cloud yang berbeda (seperti Azure Public Cloud dan Azure yang dioperasikan oleh 21Vianet)?

Data Sync tidak mendukung sinkronisasi lintas cloud.

Bisakah saya menggunakan Sinkronisasi Data untuk menyemai data dari database produksi saya ke database kosong, lalu menyinkronkannya?

Ya. Buat skema secara manual di database baru dengan membuat skrip dari aslinya. Setelah Anda membuat skema, tambahkan tabel ke grup sinkronisasi untuk menyalin data dan membuatnya tetap sinkron.

Haruskah saya menggunakan Sinkronisasi Data SQL untuk mencadangkan dan memulihkan database saya?

Tidak disarankan untuk menggunakan SQL Data Sync untuk membuat cadangan data Anda. Anda tidak dapat mencadangkan dan memulihkan pada satu titik waktu tertentu karena sinkronisasi SQL Data Sync tidak berversi. Selain itu, SQL Data Sync tidak mencadangkan objek SQL lainnya, seperti prosedur tersimpan, dan tidak melakukan operasi pemulihan yang setara dengan cepat.

Untuk satu teknik pencadangan yang direkomendasikan, lihat Menyalin salinan database yang konsisten secara transaksional di Azure SQL Database.

Bisakah Sinkronisasi Data menyinkronkan tabel dan kolom terenkripsi?

  • Jika database menggunakan Always Encrypted, Anda hanya bisa menyinkronkan tabel dan kolom yang tidak dienkripsi. Anda tidak bisa menyinkronkan kolom terenkripsi, karena Sinkronisasi Data tidak dapat mendekripsi data.
  • Jika sebuah kolom menggunakan Column-Level Encryption (CLE), Anda dapat menyinkronkan kolom tersebut, selama ukuran baris kurang dari ukuran maksimum 24 MB. Sinkronisasi Data memperlakukan kolom yang dienkripsi oleh kunci (CLE) sebagai data biner normal. Untuk mendekripsi data pada anggota sinkronisasi lainnya, Anda harus memiliki sertifikat yang sama.

Apakah kolase didukung dalam Sinkronisasi Data SQL?

Ya. Sinkronisasi Data SQL mendukung konfigurasi pengaturan kolase dalam skenario berikut:

  • Jika tabel skema sinkronisasi yang dipilih belum ada di hub atau database anggota Anda, maka saat Anda menyebarkan grup sinkronisasi, layanan secara otomatis membuat tabel dan kolom terkait dengan pengaturan kolase yang dipilih di database tujuan kosong.
  • Jika tabel yang akan disinkronkan sudah ada di hub dan database anggota Anda, SQL Data Sync mengharuskan kolom kunci primer memiliki kolase yang sama antara hub dan database anggota untuk berhasil menggunakan grup sinkronisasi. Tidak ada batasan kolase pada kolom selain kolom kunci primer.

Apakah federasi didukung dalam Sinkronisasi Data SQL?

Anda dapat menggunakan database root federasi dengan SQL Data Sync tanpa batasan. Anda tidak dapat menambahkan endpoint database federasi ke versi SQL Data Sync saat ini.

Bisakah saya menggunakan Sinkronisasi Data untuk menyinkronkan data yang diekspor dari Dynamics 365 menggunakan fitur bring your own database (BYOD)?

Dynamics 365 menghadirkan fitur bring your own database memungkinkan admin mengekspor entitas data dari aplikasi ke dalam database Microsoft Azure SQL mereka sendiri. Sinkronisasi Data dapat digunakan untuk menyinkronkan data ini ke database lain jika data diekspor menggunakan dorongan bertahap (dorongan penuh tidak didukung) dan mengaktifkan pemicu di database target diatur ke ya.

Bagaimana cara membuat Sinkronisasi Data di grup Failover untuk mendukung Pemulihan Bencana?

Sinkronisasi Data SQL tidak menawarkan kemampuan failover otomatis atau pemulihan bencana. Jika database mengalami failover ke wilayah lain, grup sinkronisasi akan berhenti berfungsi. Buat ulang grup sinkronisasi secara manual di region failover dengan pengaturan yang sama seperti region utama.

Pantau dan pecahkan masalah

Apakah SQL Data Sync berfungsi seperti yang diharapkan? Untuk memantau aktivitas dan memecahkan masalah, lihat artikel berikut ini:

Pelajari selengkapnya tentang Azure SQL Database

Untuk informasi lebih lanjut tentang Azure SQL Database, lihat artikel berikut: