All Products
Search
Document Center

Data Transmission Service:Sinkronisasi data antar instans RDS for SQL Server

Last Updated:Aug 28, 2026

Gunakan DTS untuk menyinkronkan data antara instans ApsaraDB RDS for SQL Server.

Prasyarat

  • Anda telah membuat instans sumber dan target ApsaraDB RDS for SQL Server. Untuk versi yang didukung, lihat Ikhtisar solusi sinkronisasi. Untuk membuat instans, lihat Buat instans ApsaraDB RDS for SQL Server.

    Penting

    Versi dan edisi database sumber berikut didukung dalam mode parsing berbasis log hibrid (ketika parameter SQL Server Incremental Synchronization Mode diatur ke Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables):

    • Edisi Enterprise atau Enterprise Evaluation: 2012, 2014, 2016, 2019, 2022, atau 2025.

    • Edisi Standard: 2016, 2019, 2022, atau 2025.

  • Instans target ApsaraDB RDS for SQL Server harus memiliki ruang penyimpanan lebih besar daripada instans sumber ApsaraDB RDS for SQL Server.

  • Saat menyinkronkan data dari SQL Server yang dikelola sendiri ke instans ApsaraDB RDS for SQL Server, kami menyarankan menggunakan fitur backup database ApsaraDB RDS for SQL Server jika salah satu kondisi berikut berlaku. Untuk informasi selengkapnya, lihat Migrasikan data dari database yang dikelola sendiri ke instans ApsaraDB RDS for SQL Server.

    • Instans sumber memiliki lebih dari 10 database.

    • Backup log dilakukan lebih dari sekali per jam untuk satu database.

    • Lebih dari 100 operasi Data Definition Language (DDL) dilakukan per jam pada satu database.

    • Laju pembuatan log untuk satu database melebihi 20 MB/s.

    • Anda harus mengaktifkan change data capture (CDC) pada lebih dari 1.000 tabel.

    • Database sumber berisi tabel heap, tabel tanpa kunci primer, tabel terkompresi, tabel dengan kolom terhitung, atau tabel dengan kolom sparse. Anda dapat menjalankan pernyataan SQL berikut untuk memeriksa jenis tabel tersebut di database sumber:

      1. Periksa tabel heap di database sumber:

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.indexes WHERE index_id = 0);
      2. Periksa tabel tanpa kunci primer:

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id NOT IN (SELECT parent_object_id FROM sys.objects WHERE type = 'PK');
      3. Periksa kolom kunci primer yang tidak termasuk dalam indeks terkluster:

        SELECT s.name schema_name, t.name table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id WHERE t.type = 'U' AND s.name NOT IN('cdc', 'sys') AND t.name NOT IN('systranschemas') AND t.object_id IN ( SELECT pk_colums_counter.object_id AS object_id FROM (select pk_colums.object_id, sum(pk_colums.column_id) column_id_counter from (select sic.object_id object_id, sic.column_id FROM sys.index_columns sic, sys.indexes sis WHERE sic.object_id = sis.object_id AND sic.index_id = sis.index_id AND sis.is_primary_key = 'true') pk_colums group by object_id) pk_colums_counter inner JOIN ( select cluster_colums.object_id, sum(cluster_colums.column_id) column_id_counter from (SELECT sic.object_id object_id, sic.column_id FROM sys.index_columns sic, sys.indexes sis WHERE sic.object_id = sis.object_id AND sic.index_id = sis.index_id AND sis.index_id = 1) cluster_colums group by object_id ) cluster_colums_counter ON pk_colums_counter.object_id = cluster_colums_counter.object_id and pk_colums_counter.column_id_counter != cluster_colums_counter.column_id_counter);
      4. Periksa tabel terkompresi di database sumber:

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.objects t, sys.schemas s, sys.partitions p WHERE s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id = p.object_id AND p.data_compression != 0;
      5. Periksa tabel yang berisi kolom terhitung:

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.columns WHERE is_computed = 1);
      6. Periksa tabel yang berisi kolom sparse:

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.columns WHERE is_sparse = 1);

Catatan penggunaan

Catatan

DTS tidak menyinkronkan kunci asing dari database sumber ke database tujuan. Oleh karena itu, operasi cascade dan delete pada database sumber tidak disinkronkan ke database tujuan.

Jenis

Deskripsi

Batasan database sumber

  • Tabel yang akan disinkronkan harus memiliki kunci primer atau kendala unik. Jika tidak, data duplikat dapat terjadi di database tujuan.

  • Jika tugas sinkronisasi data menyinkronkan lebih dari 5.000 tabel pada tingkat tabel dan memerlukan pengeditan objek, seperti pemetaan nama kolom, bagi tabel menjadi beberapa tugas.

  • Satu tugas sinkronisasi data mendukung maksimal 10 database. Jika melebihi batas ini, Anda berisiko mengalami masalah stabilitas dan kinerja. Dalam kasus ini, bagi tabel menjadi beberapa tugas.

  • Sinkronisasi tabel optimasi memori tidak didukung.

  • Jika Anda mengonfigurasi tugas untuk menyinkronkan objek tertentu alih-alih seluruh database, Anda tidak dapat menyinkronkan objek yang memiliki nama tabel sama tetapi nama skema berbeda ke database tujuan yang sama dalam tugas tersebut.

  • Data Transmission Service (DTS) menggunakan fungsi fn_log untuk memperoleh log dari database sumber. Fungsi ini memiliki bottleneck kinerja. Jangan membersihkan log database sumber terlalu dini. Jika tidak, tugas dapat gagal.

  • Log transaksi:

    • Aktifkan log transaksi, atur model pemulihan ke Full, dan pastikan backup fisik lengkap telah selesai.

    • Untuk tugas sinkronisasi data inkremental, DTS mensyaratkan bahwa log transaksi di database sumber dipertahankan minimal selama 24 jam. Untuk tugas yang mencakup sinkronisasi data lengkap dan sinkronisasi data inkremental, log transaksi harus dipertahankan minimal selama 7 hari. Setelah sinkronisasi data lengkap selesai, Anda dapat mengubah periode retensi menjadi 24 jam atau lebih. Jika DTS tidak dapat memperoleh log transaksi karena periode retensi lebih pendek dari yang disyaratkan, tugas dapat gagal. Dalam kasus ekstrem, hal ini dapat menyebabkan ketidakkonsistenan atau kehilangan data. Masalah yang timbul akibat periode retensi log lebih pendek dari persyaratan DTS tidak dicakup oleh perjanjian tingkat layanan (SLA).

  • Untuk mengaktifkan Change Data Capture (CDC) untuk tabel di database sumber, Anda harus memenuhi kondisi berikut. Jika tidak, pemeriksaan awal gagal.

    • Nilai bidang srvname dalam tampilan sys.sysservers harus sama dengan nilai kembali fungsi SERVERPROPERTY.

    • Jika database sumber adalah SQL Server yang dikelola sendiri, pemilik database harus sa. Jika database sumber adalah instans ApsaraDB RDS for SQL Server, pemilik database harus sqlsa.

    • Jika database sumber adalah Edisi Perusahaan, versinya harus SQL Server 2008 atau lebih baru.

    • Jika database sumber adalah Edisi Standar, versinya harus SQL Server 2016 SP1 atau lebih baru.

    • Jika database sumber adalah SQL Server 2017 (Edisi Standar atau Perusahaan), tingkatkan ke versi yang lebih baru.

  • Jika database sumber adalah instans hanya baca, operasi DDL tidak disinkronkan.

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

  • Jika database sumber adalah instans ApsaraDB RDS for SQL Server, nonaktifkan fitur Transparent Data Encryption (TDE) untuk memastikan stabilitas instans sinkronisasi. Untuk informasi selengkapnya, lihat Nonaktifkan TDE.

  • Jika Anda menggunakan perintah sp_rename untuk mengubah nama objek, seperti prosedur tersimpan, di database sumber sebelum tugas sinkronisasi skema dijalankan, tugas tersebut dapat menghasilkan hasil yang tidak terduga atau gagal.

    Catatan

    Kami menyarankan Anda menggunakan perintah ALTER untuk mengganti nama objek di database.

  • Dalam mode parsing log hibrid, Anda tidak dapat melakukan beberapa operasi penambahan atau penghapusan kolom secara berurutan dalam waktu singkat (kurang dari 10 menit). Misalnya, menjalankan pernyataan SQL berikut secara berurutan akan menyebabkan tugas gagal.

    ALTER TABLE test_table DROP COLUMN Flag;
    ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
  • Jangan menjalankan operasi DDL yang mengubah skema database atau tabel selama sinkronisasi skema atau sinkronisasi lengkap. Jika tidak, tugas sinkronisasi gagal.

    Catatan

    Selama sinkronisasi lengkap, DTS melakukan kueri ke database sumber. Hal ini membuat kunci metadata yang dapat memblokir operasi DDL pada database sumber.

  • Jika database sumber adalah Edisi Web ApsaraDB RDS for SQL Server, Anda harus memilih Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported) untuk SQL Server Incremental Synchronization Mode saat mengonfigurasi tugas.

  • Kami menyarankan agar Anda tetap mengaktifkan parameter mode pemrosesan transaksi READ_COMMITTED_SNAPSHOT untuk database sumber selama tugas sinkronisasi data lengkap untuk mencegah kunci bersama memengaruhi penulisan data. Jika tidak, masalah seperti ketidakkonsistenan data dan kegagalan instans dapat terjadi. Pengecualian yang diakibatkan tidak dicakup oleh SLA DTS.

Batasan lainnya

  • Sinkronisasi tipe data berikut tidak didukung: CURSOR, ROWVERSION, SQL_VARIANT, HIERARCHYID, POLYGON, GEOMETRY, dan GEOGRAPHY.

  • DTS tidak mendukung sinkronisasi data lengkap atau sinkronisasi data inkremental jika data tidak dapat ditulis ke bidang TIMESTAMP di database tujuan. Hal ini dapat menyebabkan ketidakkonsistenan data atau kegagalan tugas.

  • Jika Anda menyinkronkan data antar versi database yang berbeda, Anda harus memverifikasi kompatibilitasnya terlebih dahulu.

  • Untuk menyinkronkan pemicu dari database sumber, akun database untuk tugas tersebut harus memiliki izin Owner pada database tujuan.

  • Jika Anda memilih Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported) untuk SQL Server Incremental Synchronization Mode pada langkah Configure Objects, tabel yang disinkronkan harus memiliki indeks terkluster yang mencakup kolom kunci primer. Tabel heap, tabel tanpa kunci primer, tabel terkompresi, tabel dengan kolom terhitung, dan tabel dengan kolom sparse tidak didukung. Batasan ini tidak berlaku dalam mode parsing log hibrid.

  • Jika Anda memilih Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables (Hybrid Log-based Parsing) untuk SQL Server Incremental Synchronization Mode pada langkah Configure Objects, batasan berikut juga berlaku:

    • Sinkronisasi data inkremental di DTS bergantung pada komponen CDC. Pastikan pekerjaan CDC di database sumber berjalan dengan benar. Jika tidak, tugas DTS gagal.

    • Secara default, komponen CDC menyimpan data inkremental selama 3 hari. Anda dapat menggunakan perintah exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>; untuk menyesuaikan periode retensi sesuai kebutuhan.

      Catatan
      • <time> menentukan waktu dalam menit.

      • Jika satu tabel di database sumber rata-rata menghasilkan lebih dari 10 juta pernyataan SQL perubahan inkremental per hari, kami menyarankan Anda mengatur <time> ke 1440.

    • Pemeriksaan awal DTS untuk tugas sinkronisasi data inkremental mengaktifkan CDC pada database dan tabel sumber. Karena keterbatasan mesin database SQL Server, proses ini dapat menyebabkan penguncian singkat pada database sumber.

    • Dalam satu tugas sinkronisasi data, aktifkan CDC pada maksimal 1.000 tabel. Melebihi batas ini dapat menyebabkan latensi atau ketidakstabilan tugas.

  • Jika Anda memilih Polling and querying CDC instances for incremental synchronization untuk SQL Server Incremental Synchronization Mode pada langkah Configure Objects, batasan berikut juga berlaku:

    • Akun database sumber yang digunakan oleh instans DTS harus memiliki izin untuk mengaktifkan CDC. Akun dengan peran sysadmin diperlukan untuk mengaktifkan CDC tingkat database. Akun dengan hak istimewa tinggi diperlukan untuk mengaktifkan CDC tingkat tabel.

      Catatan
      • Akun dengan hak istimewa tertinggi (administrator server) yang disediakan di konsol Azure SQL Database memenuhi persyaratan ini. Untuk database yang menggunakan model pembelian berbasis vCore, semua tier layanan mendukung CDC. Untuk database yang menggunakan model pembelian berbasis DTU, tier layanan harus S3 atau lebih tinggi untuk mendukung CDC.

      • Akun dengan hak istimewa tinggi untuk Amazon RDS for SQL Server memenuhi persyaratan ini dan mendukung pengaktifan CDC tingkat database untuk prosedur tersimpan.

      • CDC tidak didukung untuk tabel dengan indeks penyimpanan kolom terkluster.

      • Pemeriksaan awal DTS untuk tugas sinkronisasi data inkremental mengaktifkan CDC pada database dan tabel sumber. Karena keterbatasan mesin database SQL Server, proses ini dapat menyebabkan penguncian singkat pada database sumber.

    • DTS melakukan polling instans CDC untuk setiap tabel di database sumber untuk memperoleh data inkremental. Oleh karena itu, sinkronkan maksimal 1.000 tabel. Jika tidak, tugas dapat mengalami latensi atau ketidakstabilan.

    • Data inkremental yang disimpan oleh komponen CDC dipertahankan selama 3 hari secara default. Kami menyarankan Anda menjalankan perintah exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>; untuk mengatur periode retensi yang sesuai.

    • Catatan
      • <time> menentukan waktu dalam menit.

      • Jika jumlah rata-rata harian pernyataan SQL perubahan inkremental untuk satu tabel di database sumber melebihi 10 juta, kami menyarankan mengatur <time> ke 1440.

    • Operasi DDL berturut-turut untuk menambah atau menghapus kolom (lebih dari dua operasi dalam satu menit) tidak didukung dan dapat menyebabkan tugas gagal.

    • Memodifikasi instans CDC di database sumber tidak didukung dan dapat menyebabkan kegagalan tugas atau kehilangan data.

  • Untuk memastikan pemantauan latensi yang akurat untuk sinkronisasi data inkremental, DTS membuat objek tertentu di database sumber berdasarkan mode yang dipilih. Dalam mode parsing log, DTS membuat pemicu dts_cdc_sync_ddl, tabel heartbeat dts_sync_progress, dan tabel sejarah DDL dts_cdc_ddl_history. Dalam mode hibrid, DTS membuat pemicu dts_cdc_sync_ddl, tabel heartbeat dts_sync_progress, dan tabel sejarah DDL dts_cdc_ddl_history, serta mengaktifkan CDC pada tingkat database dan untuk beberapa tabel. Laju perubahan data pada tabel dengan CDC yang diaktifkan tidak boleh melebihi 1.000 RPS.

  • Sebelum memulai tugas sinkronisasi data, evaluasi kinerja database sumber dan tujuan. Selain itu, jalankan tugas selama jam sepi. Inisialisasi data lengkap mengonsumsi sumber daya baca dan tulis pada kedua database, yang dapat meningkatkan beban database.

  • Inisialisasi data lengkap melakukan operasi INSERT konkuren, yang dapat menyebabkan fragmentasi pada tabel database tujuan. Akibatnya, ruang tabel di instans tujuan mungkin lebih besar daripada di instans sumber setelah inisialisasi.

  • Selama sinkronisasi DTS, jangan menulis data ke database tujuan dari sumber selain DTS. Hal ini dapat menyebabkan ketidakkonsistenan data antara database sumber dan tujuan. Misalnya, jika Anda menggunakan Data Management (DMS) untuk melakukan operasi DDL Online sementara data lain sedang ditulis ke tujuan, kehilangan data dapat terjadi di database tujuan.

  • Jangan membangun ulang indeks selama sinkronisasi. Hal ini dapat menyebabkan kegagalan tugas atau bahkan kehilangan data.

    Catatan

    Anda tidak dapat melakukan operasi DDL yang terkait dengan kunci primer pada tabel yang telah diaktifkan CDC-nya.

  • Jika jumlah tabel dengan CDC yang diaktifkan dalam satu tugas sinkronisasi data melebihi The maximum number of tables for which CDC is enabled that DTS supports., pemeriksaan awal gagal.

  • Jika Anda perlu menulis data lebih dari 64 KB ke satu bidang dalam tabel yang diaktifkan CDC, Anda harus menggunakan perintah exec sp_configure 'max text repl size', -1; untuk menyesuaikan konfigurasi database sumber terlebih dahulu.

    Catatan

    Secara default, ukuran maksimum satu bidang yang dapat diproses oleh pekerjaan CDC adalah 64 KB.

  • Untuk sinkronisasi data inkremental, Anda harus menonaktifkan pemicu dan kunci asing yang ada di database tujuan, atau tugas sinkronisasi data akan gagal.

  • Jika Anda menggunakan fitur Modify Objects to be Synchronized, Anda tidak dapat menghapus database dari tugas.

  • Beberapa instans sinkronisasi yang menggunakan database SQL Server yang sama sebagai sumber memiliki modul tangkapan data inkremental yang independen.

  • Jika tugas gagal, staf dukungan DTS akan berusaha memulihkannya dalam waktu delapan jam. Selama pemulihan, mereka dapat memulai ulang tugas atau menyesuaikan parameternya.

    Catatan

    Hanya parameter tugas DTS yang dimodifikasi—bukan parameter database. Parameter yang mungkin disesuaikan termasuk yang tercantum di Modify instance parameters.

  • SQL Server adalah database komersial berkode tertutup. Karena karakteristik format log-nya yang diketahui atau tidak diketahui, masalah dapat muncul selama tangkapan data perubahan inkremental (CDC) dan penguraian oleh DTS. Sebelum menggunakan DTS untuk sinkronisasi inkremental atau migrasi dari sumber SQL Server di lingkungan produksi, lakukan pengujian proof-of-concept (POC) yang komprehensif. Pengujian Anda harus mencakup semua skenario perubahan bisnis, modifikasi skema, dan pengujian stres beban puncak. Memastikan bahwa logika bisnis produksi identik dengan yang diuji dalam fase POC sangat penting untuk operasi DTS yang stabil dan efisien.

  • Selama sinkronisasi data inkremental, transaksi yang sebagian dikembalikan di sumber tidak didukung dan dapat hilang.

Kasus khusus

Saat instans sumber adalah ApsaraDB RDS for SQL Server, DTS membuat akun rdsdt_dtsacct di instans sumber untuk sinkronisasi data. Jangan menghapus akun ini atau mengubah kata sandinya selama tugas berjalan, atau tugas dapat gagal. Untuk informasi selengkapnya, lihat Deskripsi akun sistem.

Penagihan

Jenis sinkronisasi

Harga

Sinkronisasi skema dan sinkronisasi data lengkap

Gratis.

Sinkronisasi data inkremental

Dikenai biaya. Untuk informasi selengkapnya, lihat Ikhtisar penagihan.

Topologi sinkronisasi

  • Sinkronisasi satu arah satu-ke-satu

  • Sinkronisasi satu arah satu-ke-banyak

  • Sinkronisasi satu arah kaskade

  • Sinkronisasi satu arah banyak-ke-satu

Untuk deskripsi setiap topologi sinkronisasi dan kasus penggunaannya, lihat Topologi sinkronisasi.

Operasi SQL yang didukung

Jenis operasi

Pernyataan SQL

DML

INSERT, UPDATE, dan DELETE

Catatan

DTS tidak menyinkronkan pernyataan UPDATE yang hanya memperbarui bidang besar.

DDL

  • CREATE TABLE

  • ALTER TABLE

    DTS hanya mendukung ADD COLUMN dan DROP COLUMN.

  • DROP TABLE

  • CREATE INDEX dan DROP INDEX

Catatan
  • DTS tidak menyinkronkan operasi DDL transaksional. Misalnya, satu pernyataan SQL yang menambahkan beberapa kolom atau berisi operasi DDL dan DML sekaligus dapat menyebabkan kehilangan data.

  • DTS tidak menyinkronkan operasi DDL yang berisi tipe data yang ditentukan pengguna.

  • DTS tidak menyinkronkan operasi Online DDL.

  • DTS tidak menyinkronkan operasi DDL yang menggunakan kata kunci yang dicadangkan sebagai nama atribut.

  • DTS tidak menyinkronkan operasi DDL yang dieksekusi oleh prosedur tersimpan sistem.

  • DTS tidak menyinkronkan operasi TRUNCATE TABLE.

  • DTS tidak menyinkronkan partisi atau fungsi dalam definisi tabel.

Prosedur

  1. Buka halaman daftar tugas sinkronisasi wilayah tujuan. Anda dapat menggunakan salah satu dari dua metode berikut:

    Dari konsol DTS

    1. Masuk ke Konsol Data Transmission Service (DTS).

    2. Di panel navigasi kiri, klik Data Synchronization.

    3. Di pojok kiri atas halaman, pilih wilayah tempat instans sinkronisasi berada.

    Dari konsol DMS

    Catatan

    Operasi aktual dapat berbeda tergantung pada mode dan tata letak konsol DMS. Untuk informasi selengkapnya, lihat Mode sederhana dan Sesuaikan tata letak dan gaya antarmuka DMS.

    1. Masuk ke Data Management (DMS).

    2. Di bilah menu atas, pilih Data + AI > Data Transmission (DTS) > Data Synchronization.

    3. Di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi berada.

  2. Klik Create Task untuk membuka halaman konfigurasi tugas.

  3. Konfigurasikan database sumber dan tujuan.

    Peringatan

    Setelah memilih instans sumber dan tujuan, baca dengan cermat batasan yang ditampilkan di bagian atas halaman. Jika Anda tidak mengikuti batasan tersebut, tugas dapat gagal atau terjadi ketidakkonsistenan data.

    Bagian

    Parameter

    Deskripsi

    N/A

    Task Name

    DTS secara otomatis menghasilkan nama tugas. Kami menyarankan Anda menentukan nama deskriptif untuk memudahkan identifikasi. Nama tersebut tidak harus unik.

    Source Database

    Select Existing Connection

    • Untuk menggunakan instans database yang ditambahkan ke sistem (baru dibuat atau disimpan), pilih instans database dari daftar drop-down. Informasi database akan dikonfigurasi secara otomatis.

      Catatan

      Di konsol DMS, item konfigurasi ini bernama Select a DMS database instance..

    • Jika Anda belum menambahkan instans database ke sistem, atau tidak perlu menggunakan instans yang sudah ditambahkan, konfigurasikan manual informasi database berikut.

    Database Type

    Pilih SQL Server.

    Connection Type

    Pilih Alibaba Cloud Instance.

    Instance Region

    Pilih wilayah instans sumber ApsaraDB RDS for SQL Server.

    Instance ID

    Pilih ID instans sumber ApsaraDB RDS for SQL Server.

    Database Account

    Masukkan akun database instans sumber ApsaraDB RDS for SQL Server. Akun tersebut harus memiliki izin owner pada objek yang akan disinkronkan. Akun istimewa memenuhi persyaratan ini.

    Database Password

    Masukkan kata sandi yang sesuai dengan akun database.

    Encryption

    Pilih Non-encrypted atau SSL-encrypted.

    • Jika enkripsi SSL tidak diaktifkan untuk database sumber, pilih Non-encrypted.

    • Jika enkripsi SSL diaktifkan untuk database sumber, pilih SSL-encrypted. DTS secara default mempercayai sertifikat server.

    Destination Database

    Select Existing Connection

    • Untuk menggunakan instans database yang ditambahkan ke sistem (baru dibuat atau disimpan), pilih instans database dari daftar drop-down. Informasi database akan dikonfigurasi secara otomatis.

      Catatan

      Di konsol DMS, item konfigurasi ini bernama Select a DMS database instance..

    • Jika Anda belum menambahkan instans database ke sistem, atau tidak perlu menggunakan instans yang sudah ditambahkan, konfigurasikan manual informasi database berikut.

    Database Type

    Pilih SQL Server.

    Connection Type

    Pilih Alibaba Cloud Instance.

    Instance Region

    Pilih wilayah instans tujuan ApsaraDB RDS for SQL Server.

    Instance ID

    Pilih ID instans tujuan ApsaraDB RDS for SQL Server.

    Database Account

    Masukkan akun database instans tujuan ApsaraDB RDS for SQL Server. Akun tersebut harus memiliki izin owner pada objek yang akan disinkronkan.

    Database Password

    Masukkan kata sandi yang sesuai dengan akun database.

    Encryption

    Pilih Non-encrypted atau SSL-encrypted.

    • Jika enkripsi SSL tidak diaktifkan untuk database tujuan, pilih Non-encrypted.

    • Jika enkripsi SSL diaktifkan untuk database tujuan, pilih SSL-encrypted. DTS secara default mempercayai sertifikat server.

  4. Setelah menyelesaikan konfigurasi, klik Test Connectivity and Proceed di bagian bawah halaman.

    Catatan
    • Pastikan blok CIDR alamat IP server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan untuk mengizinkan akses dari server DTS. Hal ini dapat dilakukan secara otomatis atau manual. Untuk informasi selengkapnya, lihat Tambahkan blok CIDR alamat IP server DTS ke daftar putih.

    • Jika database sumber atau tujuan adalah database yang dikelola sendiri (di mana Access Method bukan Alibaba Cloud Instance), Anda juga harus mengklik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.

  5. Konfigurasikan objek tugas.

    1. Di halaman Configure Objects, konfigurasikan objek yang akan disinkronkan.

      Parameter

      Deskripsi

      Synchronization Types

      Incremental Data Synchronization dipilih. Secara default, Anda juga harus memilih Schema Synchronization dan Full Data Synchronization. Setelah pemeriksaan awal selesai, DTS melakukan sinkronisasi data lengkap objek yang dipilih dari instans sumber ke klaster tujuan. Hal ini berfungsi sebagai data garis dasar untuk sinkronisasi data inkremental berikutnya.

      Method to Migrate Triggers in Source Database

      Pilih metode untuk menyinkronkan pemicu berdasarkan kebutuhan Anda. Jika Anda tidak menyinkronkan pemicu apa pun, Anda tidak perlu mengonfigurasi parameter ini. Untuk informasi selengkapnya, lihat Konfigurasikan cara menyinkronkan atau memigrasikan pemicu.

      Catatan

      Parameter ini tersedia hanya ketika parameter Schema Synchronization diatur ke Synchronization Types.

      SQL Server Incremental Synchronization Mode

      • Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables (Hybrid Log-based Parsing):

        • Kelebihan:

          • Mendukung skenario dengan tabel heap, tabel tanpa kunci primer, tabel terkompresi, dan tabel dengan kolom terhitung di database sumber.

          • Stabilitas tautan tinggi. Mode ini dapat memperoleh pernyataan DDL lengkap dan memberikan dukungan komprehensif untuk skenario DDL.

        • Kekurangan:

          • DTS membuat pemicu dts_cdc_sync_ddl, tabel heartbeat dts_sync_progress, dan tabel penyimpanan DDL dts_cdc_ddl_history di database sumber. DTS juga mengaktifkan CDC pada tingkat database dan untuk beberapa tabel.

          • Anda tidak dapat menjalankan pernyataan SELECT INTO, TRUNCATE, RENAME COLUMN, atau modifikasi tipe kolom pada tabel yang telah diaktifkan CDC di database sumber. Pemicu yang dibuat oleh DTS di database sumber tidak dapat dihapus secara manual.

            Catatan

            Tabel yang berisi tipe geometry, geography, atau hierarchyid tidak mendukung pengaktifan CDC.

      • Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported):

        • Kelebihan:

          Mode ini non-intrusif terhadap database sumber.

        • Kekurangan:

          Tidak mendukung skenario dengan tabel heap, tabel tanpa kunci primer, tabel terkompresi, atau tabel dengan kolom terhitung di database sumber.

      • Polling and querying CDC instances for incremental synchronization:

        • Kelebihan:

          • Mendukung sinkronisasi lengkap dan inkremental ketika database sumber adalah Amazon RDS for SQL Server, Azure SQL Database, Azure SQL Managed Instance, Azure SQL Server on Virtual Machine, atau Google Cloud SQL for SQL Server.

          • Mode ini menggunakan komponen Change Data Capture (CDC) asli SQL Server untuk memperoleh data inkremental. Hal ini membuat sinkronisasi inkremental lebih stabil dan mengonsumsi lebar pita jaringan lebih sedikit.

        • Kekurangan:

          • Akun database sumber yang digunakan oleh instans DTS harus memiliki izin untuk mengaktifkan CDC. Terdapat penundaan sekitar 10 detik untuk sinkronisasi data inkremental.

          • Dalam skenario yang melibatkan sinkronisasi beberapa database dan tabel, mungkin terdapat risiko masalah stabilitas dan kinerja.

      The maximum number of tables for which CDC is enabled that DTS supports.

      Pengaturan ini membatasi jumlah tabel yang dapat diaktifkan CDC-nya dalam instans sinkronisasi saat ini. Nilai default adalah 1.000.

      Catatan

      Parameter ini tidak tersedia jika Anda mengatur SQL Server Incremental Synchronization Mode ke Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported).

      Processing Mode of Conflicting Tables

      • Precheck and Report Errors: Memeriksa apakah tabel dengan nama yang sama ada di database tujuan. Jika tabel dengan nama yang sama tidak ada, pemeriksaan awal lolos. Jika tabel dengan nama yang sama ada, pemeriksaan awal gagal dan tugas sinkronisasi data tidak dimulai.

        Catatan

        Jika Anda tidak dapat menghapus atau mengganti nama tabel dengan nama yang sama di database tujuan, Anda dapat memetakannya ke nama tabel yang berbeda. Untuk informasi selengkapnya, lihat Pemetaan nama tabel dan kolom.

      • Ignore Errors and Proceed: Melewati pemeriksaan nama tabel duplikat di database tujuan.

        Peringatan

        Memilih Ignore Errors and Proceed dapat menyebabkan ketidakkonsistenan data dan membahayakan bisnis Anda. Misalnya:

        • Jika skema tabel sama dan catatan di database tujuan memiliki nilai kunci primer atau kunci unik yang sama dengan catatan di database sumber:

          • Selama sinkronisasi lengkap, DTS mempertahankan catatan di klaster tujuan. Catatan yang sesuai dari database sumber tidak disinkronkan.

          • Selama sinkronisasi inkremental, catatan dari database sumber menimpa catatan di database tujuan.

        • Jika skema tabel berbeda, sinkronisasi data awal dapat gagal. Hal ini dapat mengakibatkan hanya data kolom parsial yang disinkronkan atau kegagalan sinkronisasi total. Lanjutkan dengan hati-hati.

      Source Objects

      Di kotak Source Objects, klik objek yang akan disinkronkan, lalu klik 向右 untuk memindahkannya ke kotak Selected Objects.

      Catatan

      Anda dapat memilih database, tabel, dan kolom sebagai objek sinkronisasi. Jika Anda memilih tabel atau kolom, objek lain seperti view, pemicu, dan prosedur tersimpan tidak disinkronkan ke database tujuan.

      Selected Objects

      • Untuk mengganti nama satu objek sinkronisasi di instans tujuan, klik kanan objek tersebut di kotak Selected Objects. Untuk informasi selengkapnya tentang penggantian nama objek, lihat Memetakan satu database, tabel, atau kolom.

      • Untuk mengubah nama beberapa objek sinkronisasi di instans tujuan secara batch, klik Batch Edit di pojok kanan atas kotak Selected Objects. Untuk informasi selengkapnya, lihat Pemetaan database, tabel, dan kolom secara batch.

      Catatan
      • Untuk memilih operasi SQL yang akan disinkronkan pada tingkat database atau tabel, klik kanan objek di kotak Selected Objects dan pilih operasi SQL yang diinginkan di kotak dialog yang muncul.

      • Untuk memfilter data menggunakan klausa WHERE, klik kanan tabel di kotak Selected Objects dan tentukan kondisi filter di kotak dialog yang muncul. Untuk informasi selengkapnya, lihat Atur kondisi filter.

      • Jika Anda menggunakan fitur pemetaan nama objek, objek lain yang bergantung pada objek yang diganti nama mungkin gagal disinkronkan.

    2. Klik Next: Advanced Settings untuk mengonfigurasi parameter lanjutan.

      Parameter

      Deskripsi

      Dedicated Cluster for Task Scheduling

      Secara default, DTS menjadwalkan tugas pada klaster bersama, dan Anda tidak perlu memilih klaster. Untuk kinerja yang lebih stabil, Anda dapat membeli klaster khusus untuk menjalankan tugas sinkronisasi DTS. Untuk informasi selengkapnya, lihat Apa itu klaster khusus DTS?.

      Retry Time for Failed Connections

      Setelah tugas sinkronisasi dimulai, jika koneksi ke database sumber atau tujuan gagal, DTS melaporkan kesalahan dan segera mulai mencoba menghubungkan kembali. Durasi percobaan ulang default adalah 720 menit. Anda juga dapat menentukan durasi percobaan ulang kustom dari 10 hingga 1.440 menit. Kami menyarankan Anda mengatur durasi minimal 30 menit. Jika DTS berhasil terhubung kembali ke database dalam durasi yang ditentukan, tugas sinkronisasi secara otomatis dilanjutkan. Jika tidak, tugas gagal.

      Catatan
      • Jika Anda memiliki beberapa instans DTS (misalnya, Instans A dan Instans B) yang berbagi sumber atau tujuan yang sama, dan Anda mengatur waktu percobaan ulang jaringan menjadi 30 menit untuk Instans A dan 60 menit untuk Instans B, durasi yang lebih pendek yaitu 30 menit akan digunakan untuk keduanya.

      • Karena DTS mengenakan biaya untuk waktu proses tugas selama periode percobaan ulang koneksi, kami menyarankan Anda menyesuaikan durasi percobaan ulang berdasarkan kebutuhan bisnis Anda atau segera melepaskan instans DTS setelah instans database sumber dan tujuan dilepas.

      Retry Time for Other Issues

      Setelah tugas sinkronisasi dimulai, jika terjadi masalah non-konektivitas lainnya pada database sumber atau tujuan (seperti pengecualian eksekusi DDL atau DML), DTS melaporkan kesalahan dan segera mulai melakukan operasi percobaan ulang terus-menerus. Durasi percobaan ulang default adalah 10 menit. Anda juga dapat menyesuaikan durasi percobaan ulang dalam rentang 1 hingga 1.440 menit. Kami menyarankan Anda mengaturnya minimal 10 menit. Jika operasi terkait berhasil dalam durasi percobaan ulang yang ditetapkan, tugas sinkronisasi secara otomatis dilanjutkan. Jika tidak, tugas gagal.

      Penting

      Nilai untuk Retry Time for Other Issues harus lebih kecil daripada nilai untuk Retry Time for Failed Connections.

      Enable Throttling for Full Data Synchronization

      Selama tahap sinkronisasi lengkap, DTS mengonsumsi sumber daya baca dan tulis dari database sumber dan tujuan, yang dapat meningkatkan beban database. Untuk mengurangi beban pada database sumber dan tujuan, Anda dapat mengatur batas laju untuk tugas sinkronisasi lengkap dengan mengonfigurasi parameter Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s).

      Catatan
      • Item konfigurasi ini tersedia hanya ketika Synchronization Types diatur ke Full Data Synchronization.

      • Anda juga dapat menyesuaikan laju sinkronisasi lengkap setelah instans sinkronisasi berjalan.

      Enable Throttling for Incremental Data Synchronization

      Anda juga dapat mengatur batas laju untuk tugas sinkronisasi inkremental. Untuk mengurangi tekanan pada database tujuan, atur RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s).

      Environment Tag

      Anda dapat memilih tag lingkungan untuk mengidentifikasi instans. Anda dapat melewati pengaturan ini untuk contoh ini.

      Configure ETL

      Pilih apakah akan mengaktifkan fitur ekstrak, transformasi, muat (ETL). Untuk informasi selengkapnya, lihat Apa itu ETL? Nilai yang valid:

      Monitoring and Alerting

      Tentukan apakah akan mengonfigurasi peringatan. Jika sinkronisasi gagal atau latensi melebihi ambang batas yang ditentukan, notifikasi akan dikirim ke kontak peringatan.

    3. Klik Next: Data Validation untuk mengonfigurasi tugas validasi data.

      Jika Anda ingin menggunakan fitur validasi data, lihat Konfigurasikan validasi data untuk instruksi konfigurasi.

  6. Simpan tugas dan jalankan pemeriksaan awal.

    • Untuk melihat parameter API untuk mengonfigurasi instans ini, arahkan kursor ke tombol Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters di gelembung.

    • Jika Anda telah selesai melihat parameter API, klik Next: Save Task Settings and Precheck di bagian bawah halaman.

    Catatan
    • Sebelum pekerjaan sinkronisasi dimulai, DTS menjalankan pemeriksaan awal. Pekerjaan hanya dapat dimulai setelah semua item pemeriksaan awal lolos.

    • Jika pemeriksaan awal gagal, klik View Details untuk item yang gagal. Perbaiki masalah sesuai petunjuk, lalu jalankan kembali pemeriksaan awal.

    • Jika pemeriksaan awal mengembalikan peringatan:

      • Jika item pemeriksaan gagal dan tidak dapat diabaikan, klik View Details di sebelah item tersebut. Ikuti instruksi untuk memperbaiki masalah, lalu jalankan kembali pemeriksaan awal.

      • Untuk item pemeriksaan yang dapat diabaikan, Anda dapat mengklik Confirm Alert Details, Ignore, OK, dan Precheck Again secara berurutan untuk melewati peringatan dan menjalankan kembali pemeriksaan awal. Jika Anda memilih untuk mengabaikan item peringatan, hal ini dapat menyebabkan masalah seperti ketidakkonsistenan data dan menimbulkan risiko bagi bisnis Anda.

  7. Beli instans.

    1. Ketika Success Rate mencapai 100%, klik Next: Purchase Instance.

    2. Di halaman Purchase, pilih metode penagihan dan spesifikasi tautan untuk instans sinkronisasi data. Tabel berikut menjelaskan parameter ini secara detail.

      Kategori

      Parameter

      Deskripsi

      New Instance Class

      Metode Penagihan

      • Langganan: Anda membayar saat membuat instans. Ini cocok untuk kebutuhan jangka panjang dan lebih hemat biaya daripada bayar sesuai penggunaan. Semakin lama durasi langganan, semakin tinggi diskonnya.

      • Bayar sesuai penggunaan: Anda dikenai biaya per jam. Ini cocok untuk kebutuhan jangka pendek. Anda dapat melepaskan instans segera setelah digunakan untuk menghemat biaya.

      Konfigurasi Kelompok Sumber Daya

      Kelompok sumber daya tempat instans tersebut berada. Default-nya adalah kelompok sumber daya default. Untuk informasi selengkapnya, lihat Apa itu Resource Management?.

      Spesifikasi Tautan

      DTS menyediakan spesifikasi sinkronisasi dengan tingkat kinerja berbeda. Spesifikasi tautan sinkronisasi memengaruhi laju sinkronisasi. Anda dapat memilih spesifikasi berdasarkan skenario bisnis Anda. Untuk informasi selengkapnya, lihat Spesifikasi tautan sinkronisasi data.

      Durasi Langganan

      Dalam mode langganan, pilih durasi dan jumlah untuk instans langganan. Anda dapat memilih langganan bulanan dari 1 hingga 9 bulan, atau langganan tahunan 1, 2, 3, atau 5 tahun.

      Catatan

      Opsi ini hanya tersedia ketika metode penagihan adalah Subscription.

    3. Setelah menyelesaikan konfigurasi, baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.

    4. Klik Buy and Start. Di kotak dialog OK, klik OK.

      Anda dapat melihat progres tugas di halaman Data Synchronization.

Periksa status CDC

Bagian ini menjelaskan cara memeriksa status CDC atau menonaktifkan CDC.

Catatan

Sebelum menjalankan pernyataan SQL berikut, ganti variabel dengan nilai aktualnya.

  • Untuk memeriksa status CDC database:

    SELECT name, is_cdc_enabled FROM sys.databases WHERE name = '<your db name>';
  • Untuk memeriksa status pekerjaan CDC:

    SELECT database_name(database_id), job_type FROM [msdb].[dbo].[cdc_jobs] WHERE database_id = DB_ID('<your db name>');
  • Untuk memverifikasi bahwa CDC berfungsi dengan benar:

    • Periksa penggunaan ruang log.

      SELECT * FROM sys.dm_db_log_space_usage;
    • Verifikasi bahwa layanan SQL Server Agent berfungsi dengan benar. Untuk detailnya, lihat SQL Server Agent.

    • Verifikasi bahwa CDC memindai log dengan benar. Jika pemindaian log gagal, DTS dapat mencoba ulang atau menghentikan tugas.

      SELECT * FROM sys.dm_cdc_log_scan_sessions;
  • Untuk menonaktifkan CDC untuk database:

    USE [<your db name>];
    
    DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
    # Anda harus menghapus pemicu ini untuk menonaktifkan CDC. Abaikan pernyataan ini jika pemicu tidak ada.
    
    EXECUTE [sys].[sp_cdc_disable_db];