Apa yang dimaksud dengan SQL Data Sync untuk Azure?

Berlaku untuk:Azure SQL Database

SQL Data Sync adalah layanan yang dibangun di Azure SQL Database yang memungkinkan Anda menyinkronkan data yang Anda pilih dua arah di beberapa database, baik di lokal maupun di cloud.

Penting

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

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 pelanggan yang dibuat dan dimiliki pelanggan. Anda hanya bisa memiliki satu Sync Metadata Database per wilayah dan langganan. Sinkronisasi Database Metadata tidak dapat dihapus atau diganti namanya saat grup sinkronisasi atau agen sinkronisasi ada. 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.

Sync data between databases

Grup sinkronisasi memiliki properti berikut ini:

  • Skema Sinkronisasi mendeskripsikan data mana yang sedang disinkronkan.
  • Arah Sinkronisasi bisa dua arah atau hanya dapat mengalir dalam satu arah. Artinya, Arah Sinkronisasi bisa Hub ke Anggota, atau Anggota ke Hub, atau keduanya.
  • Interval Sinkronisasi mendeskripsikan seberapa sering sinkronisasi terjadi.
  • Conflict Resolution Policy 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 Azure geo-redundant
Membaca Skala Gunakan replika baca-saja untuk menyeimbangkan beban dari beban kerja kueri baca-saja
ETL (OLTP ke OLAP) Azure Data Factory atau SSIS
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. Azure Database Migration Service

Cara kerjanya

  • Melacak perubahan data: Sinkronisasi Data melacak perubahan menggunakan pemicu sisipkan, perbarui, dan hapus. Perubahan direkam dalam tabel samping di database pengguna. INSERT MASSAL tidak mengaktifkan pemicu secara default. Jika FIRE_TRIGGERS tidak ditentukan, tidak ada pemicu sisipan yang dijalankan. Tambahkan opsi FIRE_TRIGGERS agar Sinkronisasi Data bisa melacak sisipan tersebut.
  • Menyinkronkan data: Sinkronisasi Data didesain dalam model hub dan spoke. 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 dalam anggota.
    • Jika Anda memilih Anggota menang, perubahan di anggota selalu menimpa perubahan dalam hub. Jika ada lebih dari satu anggota, nilai akhir bergantung pada anggota mana yang menyinkronkan terlebih dahulu.

Membandingkan dengan Replikasi Transaksional

Sinkronisasi Data Replikasi Transaksional
Kelebihan - Aktif-dukungan aktif
- Dua arah antara lokal 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

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.

Private link for Data Sync

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

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 sesuatu yang salah

Konsistensi dan performa

Konsistensi akhir

Karena Sinkronisasi Data berbasis pemicu, konsistensi transaksional tidak dijamin. Microsoft menjamin bahwa semua perubahan dilakukan pada akhirnya dan Sinkronisasi Data tidak menyebabkan hilangnya 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. Menilai tingkat layanan dan peningkatan Anda jika diperlukan.

Provisi dan pembatalan provisi 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 primer yang ada akan mengakibatkan tindakan yang salah berikut:

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

  • Untuk menggunakan tautan privat Sinkronisasi Data, database anggota dan hub harus dihosting di Azure (wilayah yang sama atau berbeda), dalam jenis cloud yang sama (misalnya, baik di cloud publik atau keduanya di cloud pemerintah). Selain itu, untuk menggunakan tautan privat, Microsoft.Network penyedia sumber daya harus Terdaftar untuk langganan yang menghosting hub dan server anggota. Terakhir, Anda harus menyetujui tautan privat untuk Sinkronisasi Data secara manual selama konfigurasi sinkronisasi, dalam bagian "Koneksi titik akhir privat" di portal Azure atau melalui PowerShell. Untuk informasi selengkapnya tentang cara menyetujui tautan privat, lihat Menyiapkan Sinkronisasi Data SQL. Setelah Anda menyetujui titik akhir privat yang dikelola layanan, semua komunikasi antara layanan sinkronisasi dan database anggota/hub terjadi melalui tautan privat. Grup sinkronisasi yang ada bisa diperbarui agar fitur ini diaktifkan.

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 primer, karena presisi yang didukung hanya untuk yang kedua: waktu, tanggalwaktu, tanggalwaktu2, tanggalwaktuoffset.
  • Nama objek (database, tabel, dan kolom) tidak boleh berisi tanda titik karakter yang dapat dicetak (.), 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 yang berbeda (misalnya, dbo.customers dan sales.customers) hanya salah satu tabel yang dapat ditambahkan ke dalam 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 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 memori tidak didukung.
  • Perubahan skema tidak direplika secara otomatis. Solusi kustom dapat dibuat untuk mengotomatiskan replikasi perubahan skema.
  • Sinkronisasi Data hanya mendukung dua properti indeks berikut: Unik, Berkluster/Tidak Berkluster. Properti lain dari indeks, seperti IGNORE_DUP_KEY atau predikat filter WHERE, tidak didukung dan indeks tujuan disediakan tanpa properti ini bahkan jika 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.

Jenis data yang tidak didukung

  • FileStream
  • SQL/Runtime Bahasa Umum UDT
  • XMLSchemaCollection (didukung XML)
  • Kursor, VersiBaris, Tanda Waktu, Hierarki

Jenis kolom yang tidak didukung

Sinkronisasi Data tidak bisa menyinkronkan kolom baca-saja atau yang dihasilkan sistem. Misalnya:

  • Kolom komputasi.
  • 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 dalam grup 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 titik akhir dalam satu grup sinkronisasi jika hanya ada satu grup sinkronisasi. Jika ada lebih dari satu grup sinkronisasi, jumlah total titik akhir di semua grup sinkronisasi tidak boleh melebihi 30. Jika sebuah database milik beberapa grup sinkronisasi, database dihitung sebagai beberapa titik akhir, bukan satu.

Persyaratan jaringan

Catatan

Jika Anda menggunakan tautan privat Sinkronisasi, 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 IP firewall server atau titik akhir privat untuk memungkinkan agen mengakses server hub.

Catatan

Jika Anda mengubah pengaturan skema grup sinkronisasi, Anda harus mengizinkan layanan Sinkronisasi Data untuk mengakses server lagi sehingga database hub dapat disediakan kembali.

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 SQL Database diperlukan?

Ya. Anda harus memiliki akun 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 langganan, Anda bisa mengonfigurasi grup sinkronisasi di portal Azure.
  • Jika tidak, Anda harus menggunakan PowerShell untuk menambahkan anggota sinkronisasi.

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)?

Ya. Anda dapat menyiapkan sinkronisasi antar database milik cloud yang berbeda. Anda harus menggunakan PowerShell untuk menambahkan anggota sinkronisasi yang termasuk dalam langganan yang berbeda.

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 ke titik waktu tertentu karena sinkronisasi SQL Data Sync tidak diversikan. 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 Salin database 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 kolom menggunakan Column-Level Encryption (CLE), Anda dapat menyinkronkan kolom, 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?

Federation Root Database dapat digunakan dalam Layanan SQL Data Sync tanpa batasan apa pun. Anda tidak bisa menambahkan titik akhir Database Terfederasi 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 pendorongan bertahap (pendorongan penuh tidak didukung) dan mengaktifkan pemicu dalam database target diatur ke ya.

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

  • Untuk memastikan operasi sinkronisasi data di wilayah failover setara dengan wilayah Utama, setelah failover Anda harus membuat ulang Grup Sinkronisasi secara manual di wilayah failover dengan pengaturan yang sama dengan wilayah utama.

Langkah berikutnya

Memperbarui skema database yang disinkronkan

Apakah Anda harus memperbarui skema database dalam grup sinkronisasi? Perubahan skema tidak direplika secara otomatis. Untuk beberapa solusi, lihat artikel berikut ini:

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 selengkapnya tentang Azure SQL Database, lihat artikel berikut ini: