All Products
Search
Document Center

Data Transmission Service:Sinkronisasi data dari database SQL Server yang dikelola sendiri ke kluster PolarDB for MySQL

Last Updated:Mar 29, 2026

Gunakan Data Transmission Service (DTS) untuk menyinkronkan data secara berkelanjutan dari database SQL Server yang dikelola sendiri ke kluster PolarDB for MySQL, mencakup skema, data historis lengkap, dan perubahan berkelanjutan.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Jika database sumber memenuhi salah satu kondisi berikut, bagi tugas menjadi beberapa subtugas:

  • Berisi lebih dari 10 database.

  • Mencadangkan log lebih sering daripada sekali per jam.

  • Menjalankan lebih dari 100 pernyataan DDL per jam per database.

  • Menulis log dengan laju lebih dari 20 MB/detik per database.

  • Memerlukan aktivasi change data capture (CDC) untuk lebih dari 1.000 tabel.

Pilih mode sinkronisasi inkremental

Sebelum mengonfigurasi tugas, tentukan mode sinkronisasi inkremental yang sesuai dengan database sumber Anda. Pilihan ini memengaruhi langkah persiapan database sumber dan batasan yang berlaku.

ModeTipe tabel yang didukungDampak pada database sumberPaling cocok untuk
Hybrid log-based parsingSemua tipe tabel, termasuk heap tables, tabel tanpa kunci primer, tabel terkompresi, dan tabel dengan kolom terhitung.Membuat trigger dts_cdc_sync_ddl, tabel heartbeat dts_sync_progress, dan tabel riwayat DDL dts_cdc_ddl_history; mengaktifkan CDC pada database sumber dan tabel tertentu.Sebagian besar penerapan SQL Server di mana sumber dapat menerima artefak yang ditulis oleh DTS.
Incremental synchronization based on source database logsHanya tabel dengan clustered indexes dan kolom kunci primer; tidak mendukung heap tables, tabel tanpa kunci primer, tabel terkompresi, atau tabel dengan kolom terhitung.Membuat trigger dts_cdc_sync_ddl, tabel heartbeat dts_sync_progress, dan tabel riwayat DDL dts_cdc_ddl_history di database sumber.Sumber di mana Anda tidak dapat memodifikasi database.
Polling CDC instancesAmazon RDS for SQL Server, Microsoft Azure SQL Database, Microsoft Azure SQL Managed Instance, Microsoft Azure SQL Server on Virtual Machine, dan Google Cloud SQL for SQL Server.DTS mengaktifkan CDC tingkat database dan tingkat tabel; menyebabkan penguncian tabel singkat (beberapa detik).Database SQL Server cloud pihak ketiga.
Untuk instans ApsaraDB RDS for SQL Server yang menjalankan edisi Web, Anda harus menggunakan Incremental synchronization based on source database logs.
Untuk memeriksa apakah tabel Anda merupakan heap tables, tabel tanpa kunci primer, tabel terkompresi, atau tabel dengan kolom terhitung, lihat FAQ.

Penagihan

Tipe sinkronisasiBiaya
Sinkronisasi skema dan sinkronisasi data penuhGratis
Sinkronisasi data inkrementalDikenai biaya. Lihat Ikhtisar penagihan.

Topologi sinkronisasi yang didukung

  • Sinkronisasi satu arah satu-ke-satu.

  • Sinkronisasi satu arah satu-ke-banyak.

  • Sinkronisasi satu arah banyak-ke-satu.

Untuk semua topologi yang didukung, lihat Topologi sinkronisasi.

Operasi SQL yang dapat disinkronkan

Tipe operasiPernyataan
DMLINSERT, UPDATE, DELETE
DDLCREATE TABLE, ADD COLUMN, DROP COLUMN, DROP TABLE, CREATE INDEX, DROP INDEX

Operasi DDL berikut tidak disinkronkan:

  • CREATE TABLE untuk tabel partisi atau tabel yang berisi fungsi.

  • Operasi DDL yang melibatkan tipe data yang ditentukan pengguna.

  • Operasi DDL Online.

  • Pernyataan DDL transaksional.

Batasan

Batasan database sumber

  • Tabel harus memiliki PRIMARY KEY atau kendala UNIK, dengan semua bidang unik. Tanpa ini, database tujuan mungkin berisi catatan duplikat.

  • Jika Anda memilih tabel sebagai objek dan mengganti namanya di database tujuan: maksimal 5.000 tabel per tugas. Untuk jumlah tabel lebih banyak, konfigurasikan beberapa tugas atau sinkronkan pada tingkat database.

  • Maksimal 10 database per tugas sinkronisasi. Untuk jumlah lebih banyak, konfigurasikan beberapa tugas.

  • DTS menggunakan fungsi fn_log untuk membaca log sumber. Jangan menghapus log database sumber sebelum tugas selesai — tindakan ini dapat menyebabkan tugas gagal.

  • Persyaratan pencatatan data:

    • Mode pencadangan harus diatur ke Full, dan pencadangan fisik penuh harus dilakukan.

    • Untuk sinkronisasi hanya inkremental: pertahankan log setidaknya selama 24 jam.

    • Untuk sinkronisasi penuh plus inkremental: pertahankan log setidaknya selama 7 hari. Setelah sinkronisasi penuh selesai, Anda dapat mengurangi periode retensi menjadi 24 jam.

  • Jika sumber adalah instansi hanya baca, operasi DDL tidak dapat disinkronkan.

  • Jika database sumber adalah Azure SQL Database, tugas sinkronisasi data hanya dapat menyinkronkan data dari satu database.

  • Untuk instans ApsaraDB RDS for SQL Server: nonaktifkan Transparent Data Encryption (TDE) sebelum memulai tugas. Lihat Nonaktifkan TDE.

  • Selama sinkronisasi skema dan sinkronisasi data penuh, jangan jalankan pernyataan DDL. Melakukannya akan menyebabkan tugas gagal.

  • Untuk sinkronisasi data penuh, gunakan mode isolasi transaksi READ_COMMITTED_SNAPSHOT pada database sumber untuk mencegah shared lock menghalangi penulisan data. Jika Anda melewati langkah ini, ketidakkonsistenan data atau kegagalan instansi dapat terjadi dan tidak dicakup oleh perjanjian tingkat layanan (SLA) DTS.

Persyaratan CDC (berlaku saat CDC perlu diaktifkan pada tabel sumber):

  • Bidang srvname dalam sys.sysservers harus sesuai dengan nilai kembali fungsi SERVERPROPERTY.

  • Untuk database SQL Server yang dikelola sendiri: pemilik database harus merupakan pengguna sa. Untuk ApsaraDB RDS for SQL Server: pemilik database harus merupakan pengguna sqlsa.

  • Edisi Enterprise: diperlukan SQL Server 2008 atau versi lebih baru.

  • Edisi Standard: diperlukan SQL Server 2016 SP1 atau versi lebih baru.

  • Jika menjalankan SQL Server 2017 (edisi Standard atau Enterprise), perbarui ke versi yang lebih baru.

  • Jumlah tabel yang diaktifkan CDC dalam satu tugas tidak boleh melebihi batas maksimum yang didukung oleh DTS. Jika melebihi, pemeriksaan awal akan gagal.

  • Jika satu bidang dalam tabel yang diaktifkan CDC melebihi 64 KB, jalankan: exec sp_configure 'max text repl size', -1;

Batasan khusus mode

Hybrid log-based parsing:

  • Jangan menambahkan atau menghapus kolom dalam rentang waktu 10 menit. Misalnya, urutan berikut dalam waktu 10 menit menyebabkan kesalahan tugas:

    ALTER TABLE test_table DROP COLUMN Flag;
    ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
  • Anda tidak dapat menjalankan SELECT INTO atau TRUNCATE pada tabel yang diaktifkan CDC. Jangan menghapus trigger yang dibuat oleh DTS.

  • Komponen CDC menyimpan data inkremental selama 3 hari secara default. Untuk mengubah periode retensi, jalankan:

    exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention = <time>;

    <time> adalah periode retensi dalam menit. Jika catatan inkremental harian melebihi 10 juta, atur <time> menjadi 1.440.

  • Pertahankan jumlah tabel yang diaktifkan CDC pada atau di bawah 1.000 per tugas untuk menghindari latensi atau ketidakstabilan.

  • Atur laju penulisan maksimum untuk tabel yang diaktifkan CDC menjadi 1.000 catatan per detik.

  • Mengaktifkan CDC menyebabkan penguncian tabel singkat (beberapa detik) pada database sumber.

Incremental synchronization based on source database logs:

  • Hanya tabel dengan clustered indexes yang mencakup kolom kunci primer yang didukung.

Polling CDC instances:

  • Akun DTS harus memiliki keanggotaan role sysadmin untuk mengaktifkan CDC tingkat database. Untuk CDC tingkat tabel, diperlukan akun istimewa.

    • Microsoft Azure SQL Database (model vCore): semua database didukung. Azure SQL Database (model DTU): hanya database dengan tier layanan S3 atau lebih tinggi yang didukung.

    • Amazon RDS for SQL Server: akun istimewa dapat mengaktifkan CDC pada tingkat database melalui prosedur tersimpan.

    • Clustered columnstore indexes tidak didukung untuk CDC.

  • Maksimal 1.000 tabel per tugas.

  • Tidak dapat menambahkan atau menghapus kolom lebih dari dua kali per menit.

  • Jangan memodifikasi instansi CDC pada database sumber selama sinkronisasi — hal ini dapat menyebabkan kehilangan data.

  • CDC menyimpan data inkremental selama 3 hari secara default. Gunakan perintah retensi yang sama seperti pada mode hybrid.

  • Mengaktifkan CDC menyebabkan penguncian tabel singkat (beberapa detik) pada database sumber.

Batasan umum

  • Sinkronisasi skema mendukung database, skema, dan tabel. View, trigger, dan prosedur tersimpan tidak disinkronkan dalam skenario lintas mesin database.

  • Tipe data yang tidak didukung: TIMESTAMP, CURSOR, ROWVERSION, SQL_VARIANT, HIERARCHYID, POLYGON, GEOMETRY, dan GEOGRAPHY.

  • Jika data yang disinkronkan berisi karakter 4-byte (karakter langka atau emoji), database dan tabel tujuan harus menggunakan set karakter UTF8mb4. Atur parameter character_set_server pada database tujuan ke UTF8mb4.

  • DTS tidak mendukung operasi DDL kompleks, operasi DDL yang melibatkan tipe data yang ditentukan pengguna, operasi DDL Online, atau pernyataan DDL transaksional.

  • Jangan melakukan pengindeksan ulang selama sinkronisasi inkremental — hal ini dapat menyebabkan tugas gagal dan data hilang. DTS juga tidak dapat menyinkronkan operasi DDL yang terkait dengan kunci primer pada tabel yang diaktifkan CDC.

  • Jika DTS gagal menulis pernyataan DDL ke database tujuan, tugas tetap berjalan. Lihat pernyataan DDL yang gagal di log tugas. Lihat Lihat log tugas.

  • Sinkronisasi data penuh menggunakan operasi INSERT konkuren, yang menyebabkan fragmentasi pada tabel tujuan. Setelah sinkronisasi penuh selesai, ruang tabel tujuan lebih besar daripada sumber.

  • Sebelum menyinkronkan data, evaluasi dampak sinkronisasi data terhadap kinerja database sumber dan tujuan. Kami menyarankan agar Anda menyinkronkan data selama jam sepi. Selama sinkronisasi data penuh awal, DTS menggunakan sumber daya baca dan tulis database sumber dan tujuan, yang dapat meningkatkan beban pada server database.

  • Jangan menulis data dari sumber lain ke database tujuan selama sinkronisasi. Melakukannya menyebabkan ketidakkonsistenan data.

  • Anda tidak dapat menambahkan atau menghapus database saat memodifikasi objek sinkronisasi setelah tugas dimulai.

  • Jika instans sumber adalah instans ApsaraDB RDS for SQL Server, DTS membuat akun bernama rdsdt_dtsacct. Jangan menghapus akun ini atau mengubah kata sandinya selama tugas berjalan. Untuk informasi lebih lanjut, lihat Akun sistem.

  • Jika tugas DTS gagal, dukungan teknis DTS berusaha memulihkannya dalam waktu 8 jam. Selama pemulihan, tugas mungkin dimulai ulang dan parameter tugas (bukan parameter database) mungkin dimodifikasi.

Persiapkan database sumber

Konfigurasikan pengaturan log pada database SQL Server yang dikelola sendiri sebelum membuat tugas sinkronisasi. Jika Anda menyinkronkan dari beberapa database, ulangi langkah-langkah ini untuk setiap database.

  1. Ubah model pemulihan ke Full. Anda juga dapat melakukannya di SQL Server Management Studio (SSMS). Lihat Lihat atau Ubah Model Pemulihan Database (SQL Server).

    use master;
    GO
    ALTER DATABASE <database_name> SET RECOVERY FULL WITH ROLLBACK IMMEDIATE;
    GO

    Ganti <database_name> dengan nama database sumber Anda. Contoh:

    use master;
    GO
    ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE;
    GO
  2. Buat cadangan logis database sumber. Lewati langkah ini jika cadangan logis sudah ada.

    • <database_name>: nama database sumber.

    • <physical_backup_device_name>: path dan nama file untuk file cadangan.

    BACKUP DATABASE <database_name> TO DISK='<physical_backup_device_name>';
    GO

    Contoh:

    BACKUP DATABASE mytestdata TO DISK='D:\backup\dbdata.bak';
    GO
  3. Buat cadangan log untuk database sumber.

    BACKUP LOG <database_name> to DISK='<physical_backup_device_name>' WITH init;
    GO

    Contoh:

    BACKUP LOG mytestdata TO DISK='D:\backup\dblog.bak' WITH init;
    GO

Konfigurasikan tugas sinkronisasi

  1. Buka halaman Tugas Sinkronisasi Data.

    1. Login ke Konsol Data Management (DMS).

    2. Di bilah navigasi atas, klik Data + AI.

    3. Di panel navigasi kiri, pilih DTS (DTS) > Data Synchronization.

    Jalur navigasi dapat berbeda tergantung pada mode dan tata letak Konsol DMS. Lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS. Anda juga dapat langsung menuju halaman Tugas Sinkronisasi Data.
  2. Pilih wilayah tempat instans sinkronisasi berada. Di Konsol DTS baru, pilih wilayah di bilah navigasi atas.

  3. Klik Create Task. Konfigurasikan database sumber dan tujuan menggunakan parameter berikut.

    BagianParameterDeskripsi
    N/ATask NameNama deskriptif untuk mengidentifikasi tugas. Tidak perlu unik. DTS menghasilkan nama default.
    Source DatabaseSelect a DMS database instancePilih instans database DMS yang sudah ada untuk mengisi parameter secara otomatis, atau biarkan kosong untuk mengonfigurasi secara manual.
    Database TypePilih SQL Server.
    Access MethodPilih Express Connect, VPN Gateway, or Smart Access Gateway.
    Instance RegionWilayah tempat database SQL Server yang dikelola sendiri berada. Jika merupakan database yang dikelola sendiri, siapkan lingkungan jaringan yang diperlukan terlebih dahulu. Lihat Ikhtisar persiapan.
    Replicate Data Across Alibaba Cloud AccountsPilih No untuk skenario ini.
    Connected VPCID virtual private cloud (VPC) tempat database SQL Server sumber diterapkan.
    IP addressAlamat IP server database sumber.
    Port NumberPort layanan. Default: 1433.
    Database AccountAkun yang digunakan untuk menghubungkan ke database sumber. Harus memiliki izin role sysadmin. Lihat CREATE USER dan GRANT (Transact-SQL).
    Database PasswordKata sandi untuk akun database.
    Destination DatabaseSelect a DMS database instancePilih instans database DMS yang sudah ada untuk mengisi parameter secara otomatis, atau biarkan kosong untuk mengonfigurasi secara manual.
    Database TypePilih PolarDB for MySQL.
    Access MethodPilih Alibaba Cloud Instance.
    Instance RegionWilayah tempat kluster PolarDB for MySQL berada.
    PolarDB Cluster IDID kluster PolarDB for MySQL tujuan.
    Database AccountAkun yang digunakan untuk menghubungkan ke kluster tujuan. Harus memiliki izin baca dan tulis pada database tujuan.
    Database PasswordKata sandi untuk akun database.
  4. Klik Test Connectivity and Proceed. DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih instans database Alibaba Cloud dan ke aturan grup keamanan instans Elastic Compute Service (ECS). Untuk database yang dikelola sendiri di pusat data atau platform cloud pihak ketiga, tambahkan secara manual blok CIDR server DTS ke daftar putih database. Lihat Blok CIDR server DTS.

    Peringatan

    Menambahkan blok CIDR DTS ke daftar putih atau aturan grup keamanan menimbulkan risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan seperti menggunakan kredensial kuat, membatasi port yang terbuka, mengotentikasi panggilan API, dan secara berkala mengaudit aturan daftar putih. Untuk keamanan tambahan, hubungkan database ke DTS melalui Express Connect, VPN Gateway, atau Smart Access Gateway.

  5. Konfigurasikan objek yang akan disinkronkan dan pengaturan lanjutan.

    ParameterDeskripsi
    Synchronization TypesPilih Schema Synchronization, Full Data Synchronization, dan Incremental Data Synchronization. Sinkronisasi data penuh dijalankan terlebih dahulu untuk menyalin data historis, memberikan garis dasar untuk sinkronisasi inkremental.
    Processing Mode of Conflicting TablesPrecheck and Report Errors (default): pemeriksaan awal gagal jika tujuan berisi tabel dengan nama yang sama seperti tabel sumber. Gunakan pemetaan nama objek jika Anda perlu mengganti nama tabel tujuan. Ignore Errors and Proceed: melewati pemeriksaan konflik nama. Selama sinkronisasi penuh, catatan dengan kunci primer atau unik yang bertentangan dilewati. Selama sinkronisasi inkremental, catatan tersebut menimpa catatan tujuan. Jika skema berbeda, inisialisasi mungkin gagal atau sebagian data hilang.
    SQL Server Incremental Synchronization ModePilih mode yang Anda pilih di Pilih mode sinkronisasi inkremental. Label UI-nya adalah: Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables (Hybrid Log-based Parsing), Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported), dan Polling and querying CDC instances for incremental synchronization.
    Source ObjectsPilih objek yang akan disinkronkan dan klik ikon panah untuk memindahkannya ke Selected Objects. Dalam skenario database heterogen ini, hanya tabel yang dapat disinkronkan.
    Selected ObjectsUntuk mengganti nama satu objek di tujuan, klik kanan objek tersebut dan gunakan opsi ganti nama. Lihat Peta nama objek tunggal. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Lihat Peta nama beberapa objek sekaligus. Untuk memilih operasi SQL mana yang akan disinkronkan untuk tabel tertentu, klik kanan tabel tersebut dan konfigurasikan operasinya. Untuk memfilter baris berdasarkan kondisi, klik kanan objek dan tentukan kondisi WHERE. Lihat Tentukan kondisi filter.
  6. Klik Next: Advanced Settings dan konfigurasikan parameter berikut.

    ParameterDeskripsi
    Monitoring and AlertingPilih Yes untuk menerima notifikasi saat tugas gagal atau latensi sinkronisasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Lihat Konfigurasi pemantauan dan peringatan.
    Retry Time for Failed ConnectionsBerapa lama DTS mencoba kembali setelah kegagalan koneksi. Rentang: 10–1.440 menit. Default: 720. Atur minimal 30 menit. Jika DTS terhubung kembali dalam periode ini, tugas dilanjutkan. Jika beberapa tugas berbagi database sumber atau tujuan yang sama, waktu coba ulang terpendek yang berlaku. Saat DTS mencoba kembali koneksi, Anda dikenai biaya untuk instans DTS. Kami menyarankan agar Anda menentukan rentang waktu coba ulang berdasarkan kebutuhan bisnis Anda, dan segera rilis instans DTS setelah instans sumber dan tujuan dirilis.
    Retry Time for Other IssuesBerapa lama DTS mencoba kembali setelah kegagalan DDL atau DML. Rentang: 1–1.440 menit. Default: 10. Atur minimal 10 menit. Harus kurang dari Retry Time for Failed Connections.
    Configure ETLPilih Yes untuk menggunakan ekstrak, transformasi, dan muat (ETL) untuk mentransformasi data selama sinkronisasi. Lihat Apa itu ETL? dan Konfigurasi ETL.
  7. Klik Next: Save Task Settings and Precheck. Untuk melihat pratinjau parameter OpenAPI untuk konfigurasi ini, arahkan kursor ke tombol dan klik Preview OpenAPI parameters sebelum melanjutkan.

    DTS menjalankan pemeriksaan awal sebelum tugas dimulai. Jika ada pemeriksaan yang gagal, klik View Details untuk melihat penyebabnya dan melakukan pemecahan masalah. Kemudian klik Precheck Again. Jika item peringatan dapat diabaikan, klik Confirm Alert Details, lalu Ignore, dan kemudian Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
  8. Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.

  9. Konfigurasikan metode penagihan dan kelas instans untuk instans sinkronisasi.

    BagianParameterDeskripsi
    New Instance ClassBilling MethodSubscription: bayar di muka untuk jangka waktu tetap — lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: ditagih per jam — cocok untuk penggunaan jangka pendek. Rilis instans saat Anda tidak lagi membutuhkannya untuk menghentikan penagihan.
    Resource Group SettingsKelompok sumber daya untuk instans sinkronisasi. Default: default resource group. Lihat Apa itu Resource Management?
    Instance ClassKelas throughput sinkronisasi. Lihat Kelas instans instansi sinkronisasi data.
    Subscription DurationHanya tersedia untuk metode penagihan Subscription. Pilih jangka waktu satu hingga sembilan bulan, atau satu, dua, tiga, atau lima tahun.
  10. Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms.

  11. Klik Buy and Start. Di dialog konfirmasi, klik OK.

Tugas muncul di daftar tugas. Anda dapat memantau kemajuan sinkronisasi di sana.

Langkah selanjutnya