全部产品
Search
文档中心

Data Transmission Service:Sinkronkan data antar instans RDS untuk SQL Server

更新时间:Jan 12, 2026

Anda dapat menggunakan Layanan Transmisi Data (DTS) untuk menyinkronkan data antara instans ApsaraDB RDS for SQL Server.

Prasyarat

  • Instans sumber dan tujuan ApsaraDB RDS for SQL Server telah dibuat. Untuk informasi lebih lanjut mengenai versi database yang didukung, lihat Ikhtisar skenario sinkronisasi data. Untuk informasi lebih lanjut mengenai cara membuat instans ApsaraDB RDS for SQL Server, lihat Buat instans ApsaraDB RDS for SQL Server.

    Penting

    Basis data sumber berikut didukung dalam mode penguraian log hibrida ketika 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, atau 2022.

    • Edisi Standard: 2016, 2019, atau 2022.

  • Ruang penyimpanan yang tersedia pada instans tujuan RDS SQL Server harus lebih besar daripada ukuran total data pada instans sumber RDS SQL Server.

  • Jika Anda menyinkronkan data dari database SQL Server yang dikelola sendiri ke instans ApsaraDB RDS for SQL Server dan salah satu kondisi berikut terpenuhi, kami menyarankan agar Anda menggunakan fitur pencadangan ApsaraDB RDS for SQL Server untuk menyinkronkan data. Untuk informasi lebih lanjut, lihat Migrasikan data dari database yang dikelola sendiri ke instans ApsaraDB RDS for SQL Server.

    • Instans sumber berisi lebih dari 10 database.

    • Database tunggal pada instans sumber mencadangkan log-nya lebih dari sekali per jam.

    • Database tunggal pada instans sumber mengeksekusi lebih dari 100 pernyataan DDL per jam.

    • Log ditulis dengan laju lebih dari 20 MB/detik untuk database tunggal pada instans sumber.

    • Fitur change data capture (CDC) perlu diaktifkan untuk lebih dari 1.000 tabel.

    • Log database pada instans sumber berisi tabel heap, tabel tanpa kunci primer, tabel terkompresi, atau tabel dengan kolom terhitung. Anda dapat menjalankan pernyataan SQL berikut untuk memeriksa apakah database sumber berisi jenis tabel tersebut:

      1. Periksa adanya 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 adanya 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 adanya kolom kunci primer yang tidak termasuk dalam kolom indeks terkluster di database sumber:

        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 adanya 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 adanya 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 adanya 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);

Peringatan

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 dengan nilai unik. Hal ini mencegah duplikasi data di database tujuan.

  • Jika Anda menyinkronkan data pada tingkat tabel dan perlu mengedit objek, seperti memetakan nama tabel atau kolom, jangan sertakan lebih dari 5.000 tabel dalam satu tugas. Jika melebihi batas ini, bagi tabel menjadi beberapa tugas atau konfigurasikan tugas untuk menyinkronkan seluruh database. Jika tidak, kesalahan mungkin dilaporkan saat Anda mengirimkan tugas.

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

  • Tabel yang dioptimalkan memori tidak dapat disinkronkan.

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

  • DTS menggunakan fungsi fn_log untuk mendapatkan log dari database sumber. Fungsi ini memiliki bottleneck kinerja. Jangan menghapus log database sumber terlalu awal. Jika tidak, tugas mungkin gagal.

  • Log data:

    • Pencatatan data harus diaktifkan. Mode pencadangan harus diatur ke Full, dan pencadangan fisik penuh harus telah berhasil dilakukan.

    • Untuk tugas sinkronisasi inkremental, DTS mensyaratkan agar log data di database sumber dipertahankan lebih dari 24 jam. Untuk tugas yang mencakup sinkronisasi penuh dan inkremental, log data harus dipertahankan minimal 7 hari. Setelah sinkronisasi penuh selesai, Anda dapat mengubah periode retensi log menjadi lebih dari 24 jam. Jika DTS tidak dapat memperoleh log data, tugas mungkin gagal. Dalam kasus ekstrem, ketidakkonsistenan atau kehilangan data dapat terjadi. Masalah yang disebabkan oleh periode retensi log yang lebih pendek dari periode yang disyaratkan tidak dicakup oleh SLA DTS.

  • Untuk mengaktifkan CDC untuk tabel yang akan disinkronkan di database sumber, kondisi berikut harus dipenuhi. Jika tidak, pemeriksaan awal gagal.

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

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

    • Jika database sumber adalah SQL Server Enterprise Edition, versinya harus 2008 atau lebih baru.

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

    • Jika database sumber adalah SQL Server 2017 (Standard Edition atau Enterprise Edition), kami menyarankan agar Anda meningkatkan versinya.

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

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

  • Jika database sumber adalah instans RDS SQL Server, pastikan bahwa enkripsi data transparan (TDE) dinonaktifkan untuk memastikan stabilitas instans sinkronisasi. Untuk informasi lebih lanjut, lihat Nonaktifkan TDE.

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

    Catatan

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

  • Dalam mode penguraian log hibrida, Anda tidak dapat melakukan beberapa operasi berturut-turut untuk menambah atau menghapus kolom di database sumber dalam interval waktu singkat (kurang dari 10 menit). Misalnya, menjalankan pernyataan SQL berikut secara berturut-turut menyebabkan tugas melaporkan kesalahan.

    ALTER TABLE test_table DROP COLUMN Flag;
    ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
  • Selama sinkronisasi skema awal dan sinkronisasi data penuh awal, jangan lakukan operasi DDL untuk mengubah skema database atau tabel. Jika tidak, tugas sinkronisasi data gagal.

  • Jika database sumber adalah instans RDS SQL Server yang menjalankan Web Edition, Anda harus mengatur SQL Server Incremental Synchronization Mode ke Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported) saat mengonfigurasi tugas.

  • Selama tugas sinkronisasi data penuh, kami menyarankan agar Anda tetap mengaktifkan mode pemrosesan transaksi READ_COMMITTED_SNAPSHOT di database sumber. Hal ini mencegah kunci bersama memengaruhi penulisan data. Jika tidak, masalah seperti ketidakkonsistenan data atau kegagalan instans dapat terjadi. Masalah semacam ini tidak dicakup oleh SLA DTS.

Batasan lainnya

  • Data dengan tipe data CURSOR, ROWVERSION, SQL_VARIANT, HIERARCHYID, POLYGON, GEOMETRY, dan GEOGRAPHY tidak dapat disinkronkan.

  • Jika data tidak dapat ditulis ke bidang bertipe TIMESTAMP di instans tujuan, DTS tidak mendukung sinkronisasi penuh dan inkremental. Hal ini dapat menyebabkan ketidakkonsistenan data atau kegagalan tugas.

  • Jika Anda menyinkronkan data lintas versi database berbeda, periksa kompatibilitasnya terlebih dahulu.

  • Untuk menyinkronkan pemicu dari database sumber, akun database yang digunakan untuk tugas harus memiliki izin kepemilikan pada database tujuan.

  • Jika Anda mengatur Konfigurasi Objek ke Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported) untuk parameter SQL Server Incremental Synchronization Mode pada langkah Configure Objects, tabel yang akan disinkronkan harus memiliki indeks terkluster yang berisi 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 penguraian log hibrida.

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

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

    • Secara default, data inkremental yang disimpan oleh komponen CDC dipertahankan selama tiga hari. Kami menyarankan agar Anda menjalankan perintah exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>; untuk menyesuaikan periode retensi.

      Catatan
      • <time> menentukan waktu dalam menit.

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

    • Modul prasyarat tugas sinkronisasi inkremental DTS mengaktifkan CDC pada tingkat database dan tabel di database sumber. Selama proses ini, database sumber mungkin dikunci sebentar karena keterbatasan kernel database SQL Server.

    • Kami menyarankan agar Anda tidak mengaktifkan CDC untuk lebih dari 1.000 tabel dalam satu tugas sinkronisasi. Jika tidak, tugas mungkin mengalami latensi atau menjadi tidak stabil.

  • Jika Anda mengatur Konfigurasi Objek ke Polling and querying CDC instances for incremental synchronization untuk parameter SQL Server Incremental Synchronization Mode pada langkah Configure Objects, batasan berikut berlaku:

    • Akun database sumber yang digunakan oleh instans DTS harus memiliki izin untuk mengaktifkan Change Data Capture (CDC). Akun dengan izin peran sysadmin diperlukan untuk mengaktifkan CDC tingkat database, dan akun istimewa diperlukan untuk mengaktifkan CDC tingkat tabel.

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

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

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

      • Modul prasyarat tugas sinkronisasi inkremental DTS mengaktifkan CDC pada tingkat database dan tabel di database sumber. Selama proses ini, database sumber mungkin dikunci sebentar karena keterbatasan kernel database SQL Server.

    • DTS melakukan polling instans CDC setiap tabel di database sumber untuk mendapatkan data inkremental. Oleh karena itu, kami menyarankan agar Anda tidak menyinkronkan lebih dari 1.000 tabel dari database sumber. Jika tidak, tugas mungkin mengalami latensi atau menjadi tidak stabil.

    • Secara default, data inkremental yang disimpan oleh komponen CDC dipertahankan selama tiga hari. Kami menyarankan agar Anda menjalankan perintah exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>; untuk menyesuaikan periode retensi.

    • Catatan
      • <time> menentukan waktu dalam menit.

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

    • Anda tidak dapat melakukan operasi berturut-turut untuk menambah atau menghapus kolom. Melakukan lebih dari dua operasi DDL untuk menambah atau menghapus kolom dalam satu menit dapat menyebabkan tugas gagal.

    • Jangan memodifikasi instans CDC di database sumber. Jika tidak, tugas mungkin gagal atau data hilang.

  • Untuk memastikan akurasi latensi sinkronisasi data inkremental, DTS membuat pemicu dts_cdc_sync_ddl, tabel heartbeat dts_sync_progress, dan tabel penyimpanan DDL dts_cdc_ddl_history di database sumber untuk mode penguraian log. Untuk mode sinkronisasi inkremental hibrida, DTS membuat pemicu dts_cdc_sync_ddl, tabel heartbeat dts_sync_progress, dan tabel penyimpanan DDL dts_cdc_ddl_history. DTS juga mengaktifkan CDC pada tingkat database dan untuk beberapa tabel. Kami menyarankan agar volume perubahan data untuk tabel dengan CDC yang diaktifkan di database sumber tidak melebihi 1.000 RPS.

  • Sebelum menyinkronkan data, evaluasi kinerja database sumber dan tujuan. Kami menyarankan agar Anda menyinkronkan data pada jam-jam tidak sibuk. Jika tidak, sinkronisasi data penuh awal akan mengonsumsi sumber daya baca dan tulis pada kedua database, yang dapat meningkatkan beban database.

  • Sinkronisasi data penuh awal menjalankan operasi INSERT konkuren, yang menyebabkan fragmentasi pada tabel database tujuan. Akibatnya, ruang tabel instans tujuan lebih besar daripada instans sumber setelah sinkronisasi data penuh awal selesai.

  • Selama sinkronisasi DTS, jangan menulis data ke database tujuan dari sumber selain DTS. Jika tidak, ketidakkonsistenan data antara database sumber dan tujuan dapat terjadi. Misalnya, jika Anda menggunakan DMS untuk melakukan perubahan DDL online sementara data sedang ditulis ke database tujuan dari sumber lain, data dapat hilang di database tujuan.

  • Pengindeksan ulang tidak didukung untuk instans sinkronisasi. Operasi ini dapat menyebabkan kegagalan tugas atau bahkan kehilangan data.

    Catatan

    Anda tidak dapat membuat perubahan yang berkaitan dengan kunci primer untuk tabel yang memiliki CDC diaktifkan.

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

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

    Catatan

    Secara default, pekerjaan CDC dapat memproses maksimal 64 KB untuk satu bidang.

  • Untuk sinkronisasi inkremental, nonaktifkan semua pemicu dan kunci asing yang diaktifkan di database tujuan. Jika tidak, tugas sinkronisasi gagal.

  • Untuk memodifikasi objek sinkronisasi, Anda tidak dapat menghapus database.

  • Modul pengumpulan data inkremental dari beberapa instans sinkronisasi yang menggunakan database SQL Server yang sama sebagai sumber saling independen satu sama lain.

  • Jika sebuah instans gagal, tim helpdesk DTS akan mencoba memulihkan instans tersebut dalam waktu 8 jam. Selama proses pemulihan, operasi seperti me-restart instans dan menyesuaikan parameter mungkin dilakukan.

    Catatan

    Saat parameter disesuaikan, hanya parameter instans DTS yang dimodifikasi. Parameter database tidak dimodifikasi. Parameter yang mungkin dimodifikasi mencakup tetapi tidak terbatas pada yang dijelaskan dalam Memodifikasi parameter instans.

Kasus khusus

Jika instans sumber adalah instans RDS SQL Server, DTS membuat akun rdsdt_dtsacct di instans sumber untuk sinkronisasi data. Jangan menghapus akun ini atau mengubah kata sandinya selama tugas berjalan. Jika tidak, tugas mungkin gagal. Untuk informasi lebih lanjut, lihat Akun sistem.

Penagihan

Jenis sinkronisasi

Biaya konfigurasi tugas

Sinkronisasi skema dan sinkronisasi data penuh

Gratis.

Sinkronisasi data inkremental

Dikenai biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan.

Topologi sinkronisasi yang didukung

  • Sinkronisasi satu arah satu-ke-satu

  • Sinkronisasi satu arah satu-ke-banyak

  • Sinkronisasi satu arah kaskade

  • Sinkronisasi satu arah banyak-ke-satu

Untuk informasi lebih lanjut mengenai topologi sinkronisasi yang berbeda, lihat Topologi sinkronisasi.

Operasi SQL yang dapat disinkronkan

Jenis operasi

Pernyataan SQL

DML

INSERT, UPDATE, DELETE

Catatan

DTS tidak menyinkronkan pernyataan UPDATE yang hanya memperbarui objek besar.

DDL

  • CREATE TABLE

    Catatan

    Partisi dan fungsi di dalam definisi tabel tidak didukung.

  • ALTER TABLE

    Hanya ADD COLUMN dan DROP COLUMN yang didukung.

  • DROP TABLE

  • CREATE INDEX, DROP INDEX

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

  • Operasi DDL yang berisi tipe kustom tidak dapat disinkronkan.

  • Operasi DDL Online tidak dapat disinkronkan.

  • Operasi DDL yang menggunakan kata kunci yang dicadangkan sebagai nama properti tidak dapat disinkronkan.

  • Operasi DDL yang dieksekusi oleh prosedur tersimpan sistem tidak dapat disinkronkan.

  • Operasi TRUNCATE TABLE tidak dapat disinkronkan.

Prosedur

  1. Gunakan salah satu metode berikut untuk membuka halaman Sinkronisasi Data dan pilih wilayah tempat instans sinkronisasi data berada.

    Konsol DTS

    1. Masuk ke Konsol DTS.

    2. Di panel navigasi sebelah kiri, klik Data Synchronization.

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

    Konsol DMS

    Catatan

    Operasi aktual mungkin berbeda tergantung pada mode dan tata letak konsol DMS. Untuk informasi lebih lanjut, lihat Mode sederhana dan Menyesuaikan tata letak dan gaya konsol DMS.

    1. Masuk ke Konsol DMS.

    2. Di bilah navigasi atas, arahkan kursor ke Data + AI, lalu pilih DTS (DTS) > Data Synchronization.

    3. Dari daftar drop-down di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi data berada.

  2. Klik Create Task untuk membuka halaman konfigurasi tugas.

  3. Konfigurasikan database sumber dan tujuan. Tabel berikut menjelaskan parameter-parameter tersebut.

    Peringatan

    Setelah mengonfigurasi database sumber dan tujuan, kami menyarankan agar Anda membaca Limits yang ditampilkan di halaman. Jika tidak, tugas mungkin gagal atau terjadi ketidakkonsistenan data.

    Kategori

    Konfigurasi

    Deskripsi

    Tidak ada

    Task Name

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

    Source Database

    Select Existing Connection

    • Jika Anda menggunakan instans database yang terdaftar di DTS, pilih instans tersebut dari daftar drop-down. DTS secara otomatis mengisi parameter database berikut untuk instans tersebut. Untuk informasi lebih lanjut, lihat Kelola koneksi database.

      Catatan

      Di konsol DMS, Anda dapat memilih instans database dari daftar drop-down Select a DMS database instance.

    • Jika Anda gagal mendaftarkan instans ke DTS, atau Anda tidak perlu menggunakan instans yang terdaftar di DTS, Anda harus mengonfigurasi informasi database berikut.

    Database Type

    Pilih SQL Server.

    Connection Type

    Pilih Cloud Instance.

    Instance Region

    Pilih wilayah tempat instans RDS SQL Server sumber berada.

    Instance ID

    Pilih ID instans RDS SQL Server sumber.

    Database Account

    Masukkan akun database untuk instans RDS SQL Server sumber. Akun ini harus memiliki izin kepemilikan untuk objek yang akan dimigrasikan. Akun administrator memenuhi persyaratan ini.

    Database Password

    Kata sandi yang digunakan untuk mengakses database.

    Encryption

    Pilih Non-encrypted atau SSL-encrypted berdasarkan skenario Anda.

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

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

    Destination Database

    Select Existing Connection

    • Jika Anda menggunakan instans database yang terdaftar di DTS, pilih instans tersebut dari daftar drop-down. DTS secara otomatis mengisi parameter database berikut untuk instans tersebut. Untuk informasi lebih lanjut, lihat Kelola koneksi database.

      Catatan

      Di konsol DMS, Anda dapat memilih instans database dari daftar drop-down Select a DMS database instance.

    • Jika Anda gagal mendaftarkan instans ke DTS, atau Anda tidak perlu menggunakan instans yang terdaftar di DTS, Anda harus mengonfigurasi informasi database berikut.

    Database Type

    Pilih SQL Server.

    Connection Type

    Pilih Cloud Instance.

    Instance Region

    Pilih wilayah instans RDS SQL Server tujuan.

    Instance ID

    Pilih ID instans RDS SQL Server tujuan.

    Database Account

    Masukkan akun database untuk instans RDS SQL Server tujuan. Akun ini harus memiliki izin kepemilikan untuk objek yang ingin Anda migrasikan.

    Database Password

    Kata sandi yang digunakan untuk mengakses database.

    Encryption

    Pilih Non-encrypted atau SSL-encrypted sesuai kebutuhan.

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

    • Jika database tujuan telah mengaktifkan enkripsi SSL, pilih SSL-encrypted. DTS secara default mempercayai sertifikat sisi server.

  4. Klik Test Connectivity and Proceed di bagian bawah halaman.

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

    • Jika database sumber atau tujuan adalah database yang dikelola sendiri dan Access Method-nya tidak diatur ke Alibaba Cloud Instance, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.

  5. Konfigurasikan objek yang akan disinkronkan.

    1. Pada langkah Configure Objects, konfigurasikan objek yang ingin Anda sinkronkan.

      Konfigurasi

      Deskripsi

      Synchronization Types

      Jenis sinkronisasi. Secara default, Incremental Data Synchronization dipilih. Anda juga harus memilih Schema Synchronization dan Full Data Synchronization. Setelah pemeriksaan awal selesai, DTS menyinkronkan data historis objek yang dipilih dari database sumber ke klaster tujuan. Data historis merupakan dasar untuk sinkronisasi inkremental selanjutnya.

      Method to Migrate Triggers in Source Database

      Pilih metode untuk menyinkronkan pemicu. Jika objek yang ingin Anda sinkronkan tidak mencakup pemicu, Anda tidak perlu mengonfigurasi parameter ini. Untuk informasi lebih lanjut, lihat Konfigurasi sinkronisasi atau migrasi pemicu.

      Catatan

      Parameter ini hanya tersedia ketika Schema Synchronization dipilih untuk 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):

        • Keuntungan:

          • Mode ini mendukung tabel heap, tabel tanpa kunci primer, tabel terkompresi, dan tabel dengan kolom terhitung.

          • Mode ini memberikan stabilitas lebih tinggi dan mendukung berbagai pernyataan DDL secara lengkap.

        • Kerugian:

          • DTS membuat pemicu dts_cdc_sync_ddl, tabel heartbeat dts_sync_progress, dan tabel penyimpanan DDL dts_cdc_ddl_history di database sumber serta mengaktifkan Change Data Capture (CDC) untuk database sumber dan tabel tertentu.

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

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

        • Keuntungan:

          Mode ini tidak memodifikasi pengaturan database sumber.

        • Kerugian:

          Mode ini tidak mendukung tabel heap, tabel tanpa kunci primer, tabel terkompresi, atau tabel dengan kolom terhitung.

      • Polling and querying CDC instances for incremental synchronization:

        • Keuntungan:

          • Sinkronisasi data penuh dan inkremental didukung jika database sumber adalah instans Amazon RDS for SQL Server, database di Microsoft Azure SQL Database, Microsoft Azure SQL Managed Instance, Microsoft Azure SQL Server on Virtual Machine, atau instans Google Cloud SQL for SQL Server.

          • Anda dapat menggunakan komponen CDC native SQL Server untuk mendapatkan data inkremental. Hal ini meningkatkan stabilitas sinkronisasi data inkremental dan mengurangi penggunaan bandwidth.

        • Kerugian:

          • Akun yang digunakan DTS untuk mengakses database sumber harus memiliki izin untuk mengaktifkan fitur CDC. Sinkronisasi data inkremental memiliki latensi 10 detik.

          • Jika Anda mengonfigurasi tugas DTS untuk menyinkronkan beberapa tabel di beberapa database, masalah stabilitas dan kinerja mungkin terjadi.

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

      Menentukan jumlah maksimum tabel yang dapat diaktifkan CDC-nya oleh instans sinkronisasi saat ini. Nilai default adalah 1.000.

      Catatan

      Parameter ini tidak tersedia ketika SQL Server Incremental Synchronization Mode diatur 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 database tujuan berisi tabel yang memiliki nama yang sama dengan tabel di database sumber. Jika database sumber dan tujuan tidak berisi tabel dengan nama identik, pemeriksaan awal lolos. Jika tidak, kesalahan dikembalikan selama pemeriksaan awal, dan tugas sinkronisasi data tidak dapat dimulai.

        Catatan

        Jika database sumber dan tujuan berisi tabel dengan nama identik dan tabel di database tujuan tidak dapat dihapus atau diganti namanya, Anda dapat menggunakan fitur pemetaan nama objek untuk mengganti nama tabel yang disinkronkan ke database tujuan. Untuk informasi lebih lanjut, lihat Pemetaan nama objek.

      • Ignore Errors and Proceed: melewati pemeriksaan awal untuk nama tabel identik di database sumber dan tujuan.

        Peringatan

        Jika Anda memilih Ignore Errors and Proceed, ketidakkonsistenan data dapat terjadi dan bisnis Anda mungkin menghadapi risiko potensial.

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

          • Selama sinkronisasi data penuh, DTS tidak menyinkronkan catatan data ke database tujuan. Catatan data yang ada di database tujuan dipertahankan.

          • Selama sinkronisasi data inkremental, DTS menyinkronkan catatan data ke database tujuan. Catatan data yang ada di database tujuan ditimpa.

        • Jika skema database sumber dan tujuan berbeda, inisialisasi data mungkin gagal. Dalam kasus ini, hanya beberapa kolom yang disinkronkan, atau instans sinkronisasi data gagal. Harap berhati-hati.

      Source Objects

      Pilih satu atau beberapa objek dari bagian Source Objects, lalu klik ikon 向右 untuk menambahkan objek ke bagian Selected Objects.

      Catatan

      Anda dapat memilih kolom, tabel, atau database sebagai objek untuk disinkronkan. Jika Anda memilih tabel atau kolom sebagai objek yang akan disinkronkan, DTS tidak menyinkronkan objek lain seperti tampilan, pemicu, dan prosedur tersimpan ke database tujuan.

      Selected Objects

      • Untuk mengganti nama objek yang ingin Anda sinkronkan ke instans tujuan, klik kanan objek di bagian Selected Objects. Untuk informasi lebih lanjut, lihat bagian "Pemetaan nama objek tunggal" dalam topik Pemetaan nama objek.

      • Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas bagian Selected Objects. Untuk informasi lebih lanjut, lihat bagian "Pemetaan nama beberapa objek sekaligus" dalam topik Pemetaan nama objek.

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

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

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

    2. Klik Selected Objects.

      Konfigurasi

      Deskripsi

      Dedicated Cluster for Task Scheduling

      Secara default, DTS menjadwalkan tugas ke klaster bersama jika Anda tidak menentukan klaster khusus. Jika Anda ingin meningkatkan stabilitas instans sinkronisasi data, beli klaster khusus. Untuk informasi lebih lanjut, lihat Apa itu klaster khusus DTS.

      Retry Time for Failed Connections

      Rentang waktu ulang untuk koneksi yang gagal. Jika database sumber atau tujuan gagal terhubung setelah tugas sinkronisasi data dimulai, DTS segera mencoba menghubungkan kembali dalam rentang waktu tersebut. Nilai valid: 10 hingga 1.440. Satuan: menit. Nilai default: 720. Kami menyarankan agar Anda mengatur parameter ini ke nilai lebih dari 30. Jika DTS berhasil menghubungkan kembali ke database sumber dan tujuan dalam rentang waktu yang ditentukan, DTS melanjutkan tugas sinkronisasi data. Jika tidak, tugas sinkronisasi data gagal.

      Catatan
      • Jika Anda menentukan rentang waktu ulang yang berbeda untuk beberapa tugas sinkronisasi data yang memiliki database sumber atau tujuan yang sama, rentang waktu ulang terpendek yang berlaku.

      • Saat DTS mencoba menghubungkan kembali, Anda dikenai biaya untuk instans DTS. Kami menyarankan agar Anda menentukan rentang waktu ulang berdasarkan kebutuhan bisnis Anda. Anda juga dapat melepaskan instans DTS sesegera mungkin setelah instans sumber dan tujuan dilepas.

      Retry Time for Other Issues

      Rentang waktu ulang untuk masalah lain. Misalnya, jika operasi DDL atau DML gagal dilakukan setelah tugas sinkronisasi data dimulai, DTS segera mencoba mengulang operasi tersebut dalam rentang waktu tersebut. Nilai valid: 1 hingga 1.440. Satuan: menit. Nilai default: 10. Kami menyarankan agar Anda mengatur parameter ini ke nilai lebih dari 10. Jika operasi yang gagal berhasil dilakukan dalam rentang waktu yang ditentukan, DTS melanjutkan tugas sinkronisasi data. Jika tidak, tugas sinkronisasi data gagal.

      Penting

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

      Enable Throttling for Full Data Synchronization

      Selama sinkronisasi data penuh, DTS menggunakan sumber daya baca dan tulis database sumber dan tujuan. Hal ini dapat meningkatkan beban pada server database. Anda dapat mengonfigurasi parameter Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s) untuk tugas sinkronisasi data penuh guna mengurangi beban pada server database tujuan.

      Catatan

      Anda hanya dapat mengonfigurasi parameter ini jika Synchronization Types dipilih untuk parameter Full Data Synchronization.

      Enable Throttling for Incremental Data Synchronization

      Menentukan apakah akan mengaktifkan pembatasan untuk sinkronisasi data inkremental. Anda dapat mengaktifkan pembatasan untuk sinkronisasi data inkremental berdasarkan kebutuhan bisnis Anda. Untuk mengonfigurasi pembatasan, Anda harus mengonfigurasi parameter RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s). Hal ini mengurangi beban pada server database tujuan.

      Environment Tag

      Anda dapat memilih tag lingkungan untuk mengidentifikasi instans. Dalam contoh ini, Anda tidak perlu memilih tag.

      Configure ETL

      Menentukan apakah akan mengaktifkan fitur ekstrak, transformasi, muat (ETL). Untuk informasi lebih lanjut, lihat Apa itu ETL? Nilai valid:

      Monitoring and Alerting

      Menentukan apakah akan mengonfigurasi peringatan untuk instans sinkronisasi data. Jika tugas gagal atau latensi sinkronisasi melebihi ambang batas yang ditentukan, kontak peringatan akan menerima notifikasi. Nilai valid:

      • No: tidak mengaktifkan peringatan.

      • Yes: mengonfigurasi peringatan. Dalam hal ini, Anda juga harus mengonfigurasi ambang batas peringatan dan pengaturan notifikasi peringatan. Untuk informasi lebih lanjut, lihat bagian "Konfigurasi pemantauan dan peringatan saat membuat tugas DTS" dalam topik Konfigurasi pemantauan dan peringatan.

    3. Klik Next Step: Data Verification untuk mengonfigurasi verifikasi data.

      Untuk informasi lebih lanjut tentang cara menggunakan fitur verifikasi data, lihat Konfigurasi tugas verifikasi data.

  6. Simpan pengaturan tugas dan jalankan pemeriksaan awal.

    • Untuk melihat parameter yang perlu ditentukan saat memanggil operasi API terkait untuk mengonfigurasi tugas DTS, arahkan kursor ke Next: Save Task Settings and Precheck, lalu klik Preview OpenAPI parameters.

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

    Catatan
    • Sebelum Anda dapat memulai tugas sinkronisasi data, DTS melakukan pemeriksaan awal. Anda hanya dapat memulai tugas sinkronisasi data setelah tugas lolos pemeriksaan awal.

    • Jika tugas sinkronisasi data gagal dalam pemeriksaan awal, klik View Details di sebelah setiap item yang gagal. Setelah menganalisis penyebab berdasarkan hasil pemeriksaan, atasi masalah tersebut. Kemudian, jalankan kembali pemeriksaan awal.

    • Jika peringatan dipicu untuk suatu item selama pemeriksaan awal:

      • Jika item peringatan tidak dapat diabaikan, klik View Details di sebelah item yang gagal dan atasi masalah tersebut. Kemudian, jalankan pemeriksaan awal lagi.

      • Jika item peringatan dapat diabaikan, klik Confirm Alert Details. Di kotak dialog Lihat Detail, klik Ignore. Di pesan yang muncul, klik OK. Kemudian, klik Precheck Again untuk menjalankan pemeriksaan awal lagi. Jika Anda mengabaikan item peringatan, ketidakkonsistenan data dapat terjadi, dan bisnis Anda mungkin menghadapi risiko potensial.

  7. Beli instance.

    1. Tunggu hingga Success Rate menjadi 100%, lalu klik Next: Purchase Instance.

    2. Di halaman buy, konfigurasikan parameter Metode Penagihan dan Kelas Instans untuk tugas sinkronisasi data. Tabel berikut menjelaskan parameter-parameter tersebut.

      Bagian

      Parameter

      Deskripsi

      New Instance Class

      Metode Penagihan

      • Langganan: Anda membayar untuk langganan saat membuat instans sinkronisasi data. Metode penagihan langganan lebih hemat biaya dibandingkan metode penagihan bayar sesuai pemakaian untuk penggunaan jangka panjang.

      • Bayar sesuai pemakaian: Instans bayar sesuai pemakaian ditagih per jam. Metode penagihan bayar sesuai pemakaian cocok untuk penggunaan jangka pendek. Jika Anda tidak lagi memerlukan instans sinkronisasi data bayar sesuai pemakaian, Anda dapat melepaskan instans tersebut untuk mengurangi biaya.

      Pengaturan Kelompok Sumber Daya

      Kelompok sumber daya tempat instans sinkronisasi data berada. Nilai default: default resource group. Untuk informasi lebih lanjut, lihat Apa itu Manajemen Sumber Daya?

      Kelas Instans

      DTS menyediakan kelas instans dengan kecepatan sinkronisasi yang berbeda. Anda dapat memilih kelas instans berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Kelas instans instans sinkronisasi data.

      Durasi Langganan

      Jika Anda memilih metode penagihan langganan, tentukan durasi langganan dan jumlah instans sinkronisasi data yang ingin Anda buat. Durasi langganan dapat berupa satu hingga sembilan bulan, satu tahun, dua tahun, tiga tahun, atau lima tahun.

      Catatan

      Parameter ini hanya tersedia jika Anda memilih metode penagihan Subscription.

    3. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.

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

      Anda dapat melihat progres tugas di daftar tugas.

Periksa status CDC

Anda dapat menggunakan informasi berikut untuk memeriksa status CDC atau menonaktifkan CDC.

Catatan

Untuk menggunakan pernyataan SQL berikut, ganti variabel dengan nilai aktual Anda.

  • Periksa status CDC:

    SELECT name, is_cdc_enabled FROM sys.databases WHERE name = '<nama db Anda>';
  • Periksa status pekerjaan CDC:

    SELECT database_name(database_id), job_type FROM [msdb].[dbo].[cdc_jobs] WHERE database_id = DB_ID('<nama db Anda>');
  • Periksa apakah CDC berfungsi dengan benar:

    • Periksa penggunaan ruang disk.

      SELECT * FROM sys.dm_db_log_space_usage;
    • Periksa apakah layanan SQL Server Agent berfungsi sebagaimana mestinya. Untuk informasi lebih lanjut, lihat SQL Server Agent.

    • Periksa apakah CDC memindai data sebagaimana mestinya. Jika data tidak dipindai sebagaimana mestinya, tugas DTS mungkin dicoba ulang atau dihentikan.

      SELECT * FROM sys.dm_cdc_log_scan_sessions;
  • Nonaktifkan CDC tingkat database:

    USE [<nama db Anda>];
    
    DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
    # Abaikan jika tidak ada (pemicu harus dihapus terlebih dahulu)
    
    EXECUTE [sys].[sp_cdc_disable_db];