全部产品
Search
文档中心

Data Transmission Service:Konfigurasikan sinkronisasi dua arah antara database MySQL

更新时间:Jul 06, 2025

Data Transmission Service (DTS) mendukung sinkronisasi dua arah antara dua database MySQL. Fitur ini cocok untuk berbagai skenario seperti pemulihan bencana geografis dan redundansi geo aktif berbasis unit. Topik ini menjelaskan cara mengonfigurasi sinkronisasi dua arah antara instance ApsaraDB RDS for MySQL. Anda juga dapat mengikuti prosedur ini untuk mengonfigurasi sinkronisasi dua arah untuk jenis database MySQL lainnya.

Prasyarat

Instance ApsaraDB RDS for MySQL sumber dan tujuan telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instance ApsaraDB RDS for MySQL.

Catatan penggunaan

  • DTS menggunakan sumber daya baca dan tulis dari database sumber dan tujuan selama sinkronisasi data penuh awal. Hal ini dapat meningkatkan beban server database. Jika kinerja atau spesifikasi database tidak memadai, atau volume data besar, layanan database mungkin terganggu. Misalnya, DTS menggunakan sejumlah besar sumber daya baca dan tulis dalam kasus berikut: banyak kueri SQL lambat dilakukan pada database sumber, tabel tidak memiliki kunci utama, atau terjadi deadlock di database tujuan. Sebelum menyinkronkan data, evaluasi dampak sinkronisasi terhadap kinerja database sumber dan tujuan. Kami menyarankan Anda menyinkronkan data selama jam non-puncak, misalnya ketika utilisasi CPU server database sumber dan tujuan kurang dari 30%.

  • Kami menyarankan Anda untuk tidak menggunakan gh-ost atau pt-online-schema-change untuk melakukan operasi DDL pada objek selama sinkronisasi data. Jika tidak, sinkronisasi data mungkin gagal.

  • Jika Anda hanya menggunakan DTS untuk menulis data ke database tujuan, Anda dapat menggunakan Data Management (DMS) untuk melakukan operasi DDL online selama sinkronisasi data. Untuk informasi lebih lanjut, lihat Lakukan Operasi DDL tanpa Kunci.

  • Jika database tujuan adalah instance ApsaraDB RDS for MySQL yang menjalankan MySQL 5.7 atau 8.0, DTS membuat akun database dtssyncwriter yang memiliki izin tulis dan eksklusif untuk DTS di database tujuan.

Penagihan

Tipe sinkronisasiBiaya konfigurasi tugas
Sinkronisasi skema dan data penuhGratis.
Sinkronisasi data inkrementalDikenakan biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan.

Topologi sinkronisasi yang didukung

DTS mendukung sinkronisasi dua arah hanya antara dua database MySQL. DTS tidak mendukung sinkronisasi dua arah antara beberapa database MySQL.

Two-way data synchronization

Database yang didukung

Tabel berikut mencantumkan jenis database MySQL yang didukung untuk sinkronisasi dua arah. Topik ini menggunakan instance ApsaraDB RDS for MySQL sebagai sumber data. Anda juga dapat mengikuti prosedur ini untuk mengonfigurasi sinkronisasi dua arah untuk jenis database MySQL lainnya.

Database sumber

Database tujuan

  • Instance ApsaraDB RDS for MySQL

  • Database mandiri yang dihosting di Elastic Compute Service (ECS)

  • Database mandiri yang terhubung melalui Express Connect, VPN Gateway, atau Smart Access Gateway

  • Database mandiri yang terhubung melalui Database Gateway

  • Database mandiri yang terhubung melalui Cloud Enterprise Network (CEN)

  • Instance ApsaraDB RDS for MySQL

  • Database mandiri yang dihosting di Elastic Compute Service (ECS)

  • Database mandiri yang terhubung melalui Express Connect, VPN Gateway, atau Smart Access Gateway

  • Database mandiri yang terhubung melalui Database Gateway

  • Database mandiri yang terhubung melalui Cloud Enterprise Network (CEN)

Operasi SQL yang dapat disinkronkan

Tipe operasi

Pernyataan SQL

DML

INSERT, UPDATE, DELETE, dan REPLACE

DDL

  • ALTER TABLE dan ALTER VIEW

  • CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, dan CREATE VIEW

  • DROP INDEX dan DROP TABLE

  • RENAME TABLE

    Penting

    Operasi RENAME TABLE dapat menyebabkan ketidaksesuaian data antara database sumber dan tujuan. Misalnya, jika Anda memilih tabel sebagai objek yang akan disinkronkan dan mengganti nama tabel selama sinkronisasi data, data tabel ini tidak disinkronkan ke database tujuan. Untuk mencegah situasi ini, Anda dapat memilih database tempat tabel ini berada sebagai objek yang akan disinkronkan saat Anda mengonfigurasi tugas sinkronisasi data. Pastikan bahwa database tempat tabel berada sebelum dan sesudah operasi RENAME TABLE ditambahkan ke objek yang akan disinkronkan.

  • TRUNCATE TABLE

Pendeteksian konflik yang didukung

Untuk memastikan konsistensi data, pastikan bahwa catatan dengan kunci utama, kunci utama bisnis, atau kunci unik yang sama hanya diperbarui di salah satu node sinkronisasi. Jika catatan diperbarui di kedua node, DTS merespons konflik berdasarkan kebijakan resolusi konflik yang Anda tentukan untuk tugas sinkronisasi data.

DTS memeriksa dan memperbaiki konflik untuk memaksimalkan stabilitas instance sinkronisasi dua arah. DTS dapat mendeteksi jenis konflik berikut:

  • Konflik unik yang disebabkan oleh operasi INSERT

    Operasi INSERT yang tidak mematuhi batasan unik tidak dapat disinkronkan. Misalnya, jika catatan dengan nilai kunci utama yang sama dimasukkan ke dalam dua node sinkronisasi hampir pada waktu yang sama, salah satu catatan yang dimasukkan gagal disinkronkan karena catatan dengan nilai kunci utama yang sama sudah ada di node lain.

  • Catatan tidak konsisten yang disebabkan oleh operasi UPDATE

    • Jika catatan yang akan diperbarui tidak ada di instance tujuan, DTS mengubah operasi UPDATE menjadi operasi INSERT. Namun, konflik unik mungkin terjadi.

    • Kunci utama atau kunci unik dari catatan yang akan dimasukkan mungkin bertentangan dengan catatan yang ada di instance tujuan.

  • Catatan tidak ada yang akan dihapus

    Catatan yang akan dihapus tidak ada di instance tujuan. Dalam hal ini, DTS mengabaikan operasi DELETE terlepas dari kebijakan resolusi konflik yang Anda tentukan.

Penting
  • Selama sinkronisasi dua arah, waktu sistem instance sumber dan tujuan mungkin berbeda. Latensi sinkronisasi mungkin terjadi. Karena alasan ini, DTS tidak menjamin bahwa mekanisme pendeteksian konflik mencegah semua konflik data. Untuk melakukan sinkronisasi dua arah, pastikan bahwa catatan dengan kunci utama, kunci utama bisnis, atau kunci unik yang sama hanya diperbarui di salah satu node sinkronisasi.

  • DTS menyediakan kebijakan resolusi konflik untuk mencegah konflik yang mungkin terjadi selama sinkronisasi data. Anda dapat memilih kebijakan resolusi konflik saat mengonfigurasi sinkronisasi dua arah.

Batasan

  • Ketidakcocokan dengan Pemicu

    Jika Anda memilih database sebagai objek yang akan disinkronkan dan database tersebut berisi pemicu yang memperbarui tabel, ketidaksesuaian data mungkin terjadi. Misalnya, database sumber berisi Tabel A dan Tabel B. Jika catatan data dimasukkan ke Tabel A, pemicu memasukkan catatan data ke Tabel B. Dalam hal ini, setelah operasi INSERT dilakukan pada Tabel A di instance sumber, data di Tabel B menjadi tidak konsisten antara instance sumber dan tujuan.

    Untuk mencegah situasi ini, sebelum menyinkronkan data di Tabel B dari instance sumber, hapus pemicu yang disinkronkan ke instance tujuan. Untuk informasi lebih lanjut, lihat Konfigurasikan Tugas Sinkronisasi atau Migrasi Data untuk Database Sumber yang Berisi Pemicu.

  • Batasan pada Operasi RENAME TABLE

    Operasi RENAME TABLE dapat menyebabkan ketidaksesuaian data antara database sumber dan tujuan. Misalnya, jika Anda memilih tabel sebagai objek dan mengganti nama tabel selama sinkronisasi data, data tabel ini tidak disinkronkan ke database tujuan. Untuk mencegah situasi ini, Anda dapat memilih database tempat tabel ini berada sebagai objek saat mengonfigurasi tugas sinkronisasi data.

  • Batasan pada Arah Sinkronisasi DDL

    Untuk memastikan stabilitas sinkronisasi dua arah, Anda hanya dapat menyinkronkan operasi DDL dalam satu arah. Jika sinkronisasi DDL di satu arah dikonfigurasi, sinkronisasi DDL di arah sebaliknya tidak didukung. Hanya operasi DML yang dapat disinkronkan di arah sebaliknya.

Prosedur

  1. Beli instance untuk sinkronisasi dua arah. Untuk informasi lebih lanjut, lihat Beli Instance Sinkronisasi Data.

    Penting

    Di halaman pembelian, atur parameter Instance Sumber dan Instance Tujuan ke MySQL dan parameter Topologi Sinkronisasi ke Two-way Synchronization.

  2. Masuk ke Konsol DTS.

    Catatan
    • Jika Anda dialihkan ke Konsol DMS dari Konsol DTS, Anda dapat memindahkan pointer ke ikon jiqir di sudut kanan bawah dan klik ikon re untuk kembali ke Konsol DTS.

    • Jika versi baru Konsol DTS muncul setelah masuk, Anda dapat mengklik ikon ret di sudut kanan bawah untuk kembali ke versi sebelumnya.

  3. Di panel navigasi di sebelah kiri, klik Data Synchronization.

  4. Di bagian atas halaman Data Synchronization Tasks, pilih wilayah tempat instance tujuan berada.

  5. Temukan instance sinkronisasi data dan klik Configure Task di kolom Tindakan dari tugas sinkronisasi data pertama.

    Penting

    Instance sinkronisasi dua arah berisi dua tugas sinkronisasi data. Anda harus mengonfigurasi parameter untuk setiap tugas.

    image.png

  6. Konfigurasikan instance sumber dan tujuan.

    image.png

    Pengaturan

    Parameter

    Deskripsi

    Tidak Ada

    Nama Tugas Sinkronisasi

    Nama tugas yang DTS hasilkan secara otomatis. Kami menyarankan Anda menentukan nama deskriptif yang memudahkan identifikasi tugas. Anda tidak perlu menggunakan nama tugas unik.

    Database Sumber

    Tipe Instance

    Pilih RDS Instance.

    Wilayah Instance

    Wilayah sumber yang Anda pilih di halaman pembelian. Nilai parameter ini tidak dapat diubah.

    ID Instance

    ID instance ApsaraDB RDS sumber.

    Akun Database

    Akun database dari instance ApsaraDB RDS sumber.

    Penting

    Jika mesin database instance ApsaraDB RDS sumber adalah MySQL 5.5 atau MySQL 5.6, Anda tidak perlu mengonfigurasi parameter Database Account atau Database Password.

    Kata Sandi Database

    Kata sandi akun database.

    Enkripsi

    Menentukan apakah akan mengenkripsi koneksi ke instance sumber. Pilih Non-encrypted atau SSL-encrypted. Jika Anda memilih SSL-encrypted, Anda harus mengaktifkan enkripsi SSL untuk instance ApsaraDB RDS sebelum Anda mengonfigurasi tugas sinkronisasi data. Untuk informasi lebih lanjut, lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL.

    Penting

    Parameter Encryption hanya tersedia di wilayah dalam Tiongkok daratan dan wilayah China (Hong Kong).

    Database Tujuan

    Tipe Instance

    Pilih RDS Instance.

    Wilayah Instance

    Wilayah tujuan yang Anda pilih di halaman pembelian. Nilai parameter ini tidak dapat diubah.

    ID Instance

    ID instance ApsaraDB RDS tujuan.

    Akun Database

    Akun database dari instance ApsaraDB RDS tujuan.

    Penting

    Jika mesin database instance ApsaraDB RDS tujuan adalah MySQL 5.5 atau MySQL 5.6, Anda tidak perlu mengonfigurasi parameter Database Account atau Database Password.

    Kata Sandi Database

    Kata sandi akun database.

    Enkripsi

    Menentukan apakah akan mengenkripsi koneksi ke instance tujuan. Pilih Non-encrypted atau SSL-encrypted. Jika Anda memilih SSL-encrypted, Anda harus mengaktifkan enkripsi SSL untuk instance ApsaraDB RDS sebelum Anda mengonfigurasi tugas sinkronisasi data. Untuk informasi lebih lanjut, lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL.

    Penting

    Parameter Encryption hanya tersedia di wilayah dalam Tiongkok daratan dan wilayah China (Hong Kong).

  7. Di sudut kanan bawah halaman, klik Test Connectivity and Proceed.

    • Anda tidak perlu memodifikasi pengaturan keamanan untuk instance ApsaraDB (seperti ApsaraDB RDS for MySQL dan ApsaraDB for MongoDB) dan database yang di-hosting di ECS. DTS secara otomatis menambahkan blok CIDR server DTS ke daftar putih instance ApsaraDB atau aturan grup keamanan instance Elastic Compute Service (ECS). Untuk informasi lebih lanjut, lihat Tambahkan Blok CIDR Server DTS ke Pengaturan Keamanan Database Lokal.
    • Setelah sinkronisasi data selesai, kami menyarankan Anda menghapus blok CIDR server DTS dari daftar putih atau grup keamanan.
  8. Konfigurasikan kebijakan sinkronisasi dan objek yang akan disinkronkan. Select the synchronization policy and the objects to be synchronized

    Pengaturan

    Parameter

    Deskripsi

    Atur kebijakan sinkronisasi

    Kecualikan Operasi DDL

    • Yes: tidak menyinkronkan operasi DDL.

    • No: menyinkronkan operasi DDL.

      Penting

      Batasan pada arah sinkronisasi DDL: Untuk memastikan stabilitas sinkronisasi data dua arah, Anda hanya dapat menyinkronkan operasi DDL dalam arah maju.

    Pernyataan DML untuk sinkronisasi

    Jenis operasi DML yang ingin Anda sinkronkan. Secara default, operasi INSERT, UPDATE, dan DELETE dipilih. Anda dapat memilih jenis operasi DML berdasarkan kebutuhan bisnis Anda.

    Kebijakan Resolusi Konflik

    Kebijakan resolusi untuk konflik sinkronisasi. Secara default, TaskFailed dipilih. Anda dapat memilih kebijakan resolusi konflik berdasarkan kebutuhan bisnis Anda.

    • TaskFailed (Ketika terjadi konflik, kesalahan dilaporkan dan tugas dihentikan.)

      Kebijakan resolusi konflik default. Jika terjadi konflik selama sinkronisasi data, tugas sinkronisasi melaporkan kesalahan dan keluar. Tugas masuk ke status gagal dan Anda harus menyelesaikan konflik secara manual.

    • Ignore (Ketika terjadi konflik, catatan yang bertentangan di instance tujuan digunakan.)

      Jika terjadi konflik selama sinkronisasi data, tugas sinkronisasi mengabaikan pernyataan saat ini dan melanjutkan. Catatan yang bertentangan di database tujuan digunakan.

    • Overwrite (Catatan yang bertentangan di instance tujuan ditimpa.)

      Jika terjadi konflik selama sinkronisasi data, catatan yang bertentangan di database tujuan ditimpa.

    Pilih objek yang akan disinkronkan

    Tidak Ada

    Pilih satu atau lebih objek (tabel atau database) dari bagian Source Objects dan klik ikon Rightwards arrow untuk menambahkan objek ke bagian Selected Objects.

    Penting
    • Jika Anda memilih database sebagai objek yang akan disinkronkan, semua perubahan skema di database disinkronkan ke database tujuan.

    • Secara default, setelah objek disinkronkan ke instance tujuan, nama objek tetap tidak berubah. Anda dapat menggunakan fitur pemetaan nama objek untuk mengganti nama objek yang disinkronkan ke instance tujuan. Untuk informasi lebih lanjut, lihat Ganti nama objek yang akan disinkronkan.

    Ganti Nama Database dan Tabel

    Tidak Ada

    Anda dapat menggunakan fitur pemetaan nama objek untuk mengganti nama objek yang disinkronkan ke instance tujuan. Untuk informasi lebih lanjut, lihat Pemetaan nama objek.

    Replikasi Tabel Sementara Saat DMS Melakukan Operasi DDL

    Tidak Ada

    Jika Anda menggunakan DMS untuk melakukan operasi DDL online di database sumber, Anda dapat menentukan apakah akan menyinkronkan tabel sementara yang dihasilkan oleh operasi DDL online.

    • Yes: DTS menyinkronkan data tabel sementara yang dihasilkan oleh operasi DDL online.

      Catatan

      Jika operasi DDL online menghasilkan sejumlah besar data, tugas sinkronisasi data mungkin tertunda.

    • No: DTS tidak menyinkronkan data tabel sementara yang dihasilkan oleh operasi DDL online. Hanya data DDL asli dari database sumber yang disinkronkan.

      Catatan

      Jika Anda memilih Tidak, tabel di database tujuan mungkin terkunci.

    Waktu Ulang untuk Koneksi Gagal

    Tidak Ada

    Secara default, jika DTS gagal terhubung ke database sumber atau tujuan, DTS mencoba kembali dalam waktu 720 menit (12 jam) ke depan. Anda dapat menentukan waktu percobaan ulang berdasarkan kebutuhan Anda. Jika DTS berhasil tersambung kembali ke database sumber dan tujuan dalam waktu yang ditentukan, DTS melanjutkan tugas sinkronisasi data. Jika tidak, tugas sinkronisasi data gagal.

    Catatan

    Saat DTS mencoba kembali koneksi, Anda dikenakan biaya untuk instance DTS. Kami menyarankan Anda menentukan waktu percobaan ulang berdasarkan kebutuhan bisnis Anda. Anda juga dapat melepaskan instance DTS sesegera mungkin setelah instance sumber dan tujuan dilepaskan.

  9. Di sudut kanan bawah halaman, klik Next.

  10. Pilih jenis sinkronisasi awal. Advanced settings

    Selama sinkronisasi awal, DTS menyinkronkan skema dan data objek yang dipilih dari instance sumber ke instance tujuan. Skema dan data tersebut merupakan dasar untuk sinkronisasi inkremental berikutnya. Sinkronisasi awal mencakup initial schema synchronization dan initial full data synchronization. Anda harus memilih kedua Initial Schema Synchronization dan Initial Full Data Synchronization dalam banyak kasus.

    Penting

    Jika tabel yang akan disinkronkan dalam satu arah juga termasuk dalam objek yang akan disinkronkan dalam arah sebaliknya, DTS tidak akan menyinkronkan tabel-tabel ini selama sinkronisasi awal.

  11. Di sudut kanan bawah halaman, klik Precheck.

    Penting
    • Sebelum Anda dapat memulai tugas sinkronisasi data, pemeriksaan awal dilakukan. Anda hanya dapat memulai tugas sinkronisasi data setelah tugas lulus pemeriksaan awal.

    • Jika tugas gagal lulus pemeriksaan awal, Anda dapat mengklik ikon Info di sebelah setiap item yang gagal untuk melihat detailnya.

      • Setelah Anda menyelesaikan masalah berdasarkan penyebabnya, Anda dapat menjalankan pemeriksaan awal lagi.

      • Jika Anda tidak perlu menyelesaikan masalah, Anda dapat mengabaikan item yang gagal dan menjalankan pemeriksaan awal lagi.

  12. Tutup kotak dialog Precheck setelah pesan The precheck is passed. ditampilkan di kotak dialog Precheck. Kemudian, tugas sinkronisasi data dimulai.

  13. Tunggu hingga sinkronisasi awal selesai dan tugas sinkronisasi data berada dalam status Synchronizing.

    Anda dapat melihat status tugas sinkronisasi data di halaman Synchronization Tasks.

  14. Temukan tugas sinkronisasi data kedua dan klik Configure Task di kolom Tindakan. Konfigurasikan tugas dengan melakukan Langkah 5 hingga 12 dari topik ini. Configure data synchronization in the reverse direction

  15. Setelah tugas sinkronisasi data kedua dikonfigurasi, tunggu hingga kedua tugas berada dalam status Synchronizing. Tugas sinkronisasi dua arah telah dikonfigurasi. Status of two-way data synchronization tasks