All Products
Search
Document Center

ApsaraDB RDS:Migrasi data dari database SQL Server yang dikelola sendiri ke instans ApsaraDB RDS for SQL Server

Last Updated:Aug 22, 2026

Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari database SQL Server yang dikelola sendiri ke ApsaraDB RDS for SQL Server. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental. Kombinasi ketiganya memungkinkan migrasi dengan downtime minimal.

Pilih pendekatan migrasi

Pilih jenis migrasi berdasarkan toleransi downtime Anda:

Pendekatan Jenis migrasi yang dipilih Kapan digunakan Downtime
Migrasi penuh Migrasi Skema + Migrasi Data Penuh Database kecil yang dapat menerima downtime singkat Saat cutover
Migrasi tanpa downtime Migrasi Skema + Migrasi Data Penuh + Migrasi Data Inkremental Database produksi yang memerlukan ketersediaan terus-menerus Minimal (hanya saat cutover)
Penting

Untuk migrasi penuh tanpa migrasi data inkremental, hentikan semua operasi write ke database sumber selama migrasi. Jika tidak, data di tujuan mungkin tidak konsisten.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Memiliki instans ApsaraDB RDS for SQL Server tujuan dengan ruang penyimpanan lebih besar daripada database sumber. Jika ruang penyimpanan tidak mencukupi, tingkatkan ruang penyimpanan instans sebelum melanjutkan.

  • Memiliki akun database untuk database sumber dan tujuan dengan izin yang tercantum di Izin yang diperlukan.

Proses migrasi data

Untuk menangani dependensi antar objek dan meningkatkan tingkat keberhasilan migrasi, DTS memigrasikan struktur dan data SQL Server dalam urutan berikut:

  1. Migrasikan struktur tabel, view, sinonim, tipe yang ditentukan pengguna, aturan, default, dan panduan rencana (plan guide).

  2. Lakukan migrasi data penuh.

  3. Migrasikan struktur prosedur tersimpan SQL, fungsi SQL, pemicu (trigger), dan kunci asing (foreign key).

  4. Lakukan migrasi data inkremental.

Izin yang diperlukan

Database Migrasi skema Migrasi data penuh Migrasi data inkremental
SQL Server yang dikelola sendiri SELECT SELECT sysadmin
ApsaraDB RDS for SQL Server Baca dan tulis

Untuk memberikan izin pada SQL Server yang dikelola sendiri, lihat GRANT Object Permissions.

Untuk membuat dan mengelola akun di Instans RDS tujuan, lihat Membuat akun dan Mengubah izin akun.

Penagihan

Jenis migrasi Biaya konfigurasi instans Biaya lalu lintas internet
Migrasi skema + Migrasi data penuh Gratis Dikenakan biaya jika Access Method diatur ke Public IP Address. Lihat Billing overview.
Migrasi data inkremental Dikenakan biaya. Lihat Billing overview. —

Persiapkan database sumber untuk migrasi inkremental

Lewati bagian ini jika Anda hanya melakukan migrasi penuh.

Jika memigrasikan beberapa database, ulangi langkah 1–3 untuk setiap database.

  1. Atur model recovery ke FULL:

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

    Contoh:

    use master;
    GO
    ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE;
    GO
  2. Lakukan cadangan penuh (lewati jika sudah dilakukan):

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

    Contoh:

    BACKUP DATABASE mytestdata TO DISK='D:\backup\dbdata.bak';
    GO
  3. Cadangkan log transaksi:

    BACKUP LOG <database_name> TO DISK='<backup_file_path>' WITH init;
    GO

    Contoh:

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

Buat dan konfigurasikan task migrasi

  1. Buka Konsol DTS.

  2. Di panel navigasi kiri, klik Data Migration, lalu pilih wilayah di bagian atas.

  3. Klik Create Task. Konfigurasikan informasi koneksi database sumber dan tujuan.

    Source database:

    Parameter Deskripsi
    Task Name Masukkan nama deskriptif agar mudah diidentifikasi. Tidak perlu unik.
    Select Existing Connection Jika Anda telah menyimpan database sumber ini di halaman DTS Data Connection Management, pilih di sini untuk melewati entri manual.
    Database Type Pilih SQL Server.
    Access Method Pilih Public IP Address. Lihat Preparation overview untuk langkah tambahan yang diperlukan untuk database yang dikelola sendiri.
    Instance Region Pilih wilayah database SQL Server yang dikelola sendiri.
    Hostname Or IP Address Masukkan alamat IP publik database SQL Server yang dikelola sendiri.
    Port Number Masukkan port layanan. Default adalah 1433.
    Database Account Masukkan akun database sumber. Lihat Izin yang diperlukan.
    Database Password Masukkan password untuk akun database.
    Encryption Pilih Non-encrypted jika SSL tidak diaktifkan. Pilih SSL-encrypted jika SSL diaktifkan — DTS secara default mempercayai sertifikat server.

    Destination database:

    Parameter Deskripsi
    Select Existing Connection Jika Anda telah menyimpan database tujuan ini di halaman DTS Data Connection Management, pilih di sini untuk melewati entri manual.
    Database Type Pilih SQL Server.
    Access Method Pilih Alibaba Cloud Instance.
    Instance Region Pilih wilayah instans ApsaraDB RDS for SQL Server tujuan.
    Instance ID Pilih ID instans tujuan.
    Database Account Masukkan akun database tujuan. Lihat Izin yang diperlukan.
    Database Password Masukkan password untuk akun database.
    Encryption Pilih Non-encrypted jika SSL tidak diaktifkan. Pilih SSL-encrypted jika SSL diaktifkan — DTS secara default mempercayai sertifikat server.
  4. Klik Test Connectivity and Proceed. Di kotak dialog CIDR Blocks of DTS Servers, klik Test Connectivity.

    Penting

    Tambahkan rentang alamat IP server DTS ke pengaturan keamanan database sumber sebelum pengujian. Jika tidak, uji konektivitas gagal.

  5. Konfigurasikan objek yang akan dimigrasikan. Untuk memverifikasi apakah database sumber memiliki tabel yang tidak kompatibel dengan mode parsing log sumber, jalankan pernyataan SQL berikut: Periksa tabel heap:

    1. Klik Next Step: Data Verification untuk secara opsional mengonfigurasi task verifikasi data. Lihat Configure a data verification task.

    Parameter Deskripsi
    Migration Types Pilih jenis berdasarkan pendekatan Anda (lihat Pilih pendekatan migrasi). Untuk operasi yang didukung, lihat Appendix 1 dan Appendix 2. Jika Anda tidak memilih Schema Migration, pastikan database tujuan sudah berisi tabel dan skema yang diperlukan.
    Method to Migrate Triggers in Source Database Pilih cara menangani trigger. Tersedia hanya jika Schema Migration dan Incremental Data Migration keduanya dipilih. Lihat Configure the method for synchronizing or migrating triggers.
    SQL Server Incremental Synchronization Mode Tersedia hanya jika Incremental Data Migration dipilih. Pilih salah satu dari tiga mode yang dijelaskan di bawah.

    Opsi mode sinkronisasi inkremental:

    Mode Batasan Manfaat
    Hybrid log-based parsing (berbasis log untuk tabel non-heap, berbasis CDC untuk tabel heap) Job CDC harus berjalan dengan baik; data CDC disimpan selama 3 hari secara default (sesuaikan dengan exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>; di mana <time> dalam menit; atur ke 1440 jika satu tabel melebihi 10 juta operasi inkremental per hari); maksimal 1.000 tabel dengan CDC aktif; SELECT INTO, TRUNCATE, dan RENAME COLUMN tidak didukung pada tabel CDC Mendukung tabel heap, tabel tanpa primary key, tabel terkompresi, dan kolom terhitung; stabilitas koneksi tinggi; dukungan skenario DDL luas
    Source log parsing (tabel heap tidak didukung) Tabel harus memiliki clustered index yang berisi kolom primary key; tidak mendukung tabel heap, tabel tanpa primary key, tabel terkompresi, atau kolom terhitung Tidak mengganggu database sumber
    CDC-based polling Akun sumber memerlukan role sysadmin untuk CDC tingkat database atau akun istimewa untuk CDC tingkat tabel; clustered columnstore index tidak didukung; maksimal 1.000 tabel; operasi penambahan/penghapusan kolom berurutan tidak didukung Mendukung Amazon RDS for SQL Server, Azure SQL Database, Azure SQL Managed Instance, dan Google Cloud SQL for SQL Server sebagai sumber; menggunakan CDC native untuk pengambilan data inkremental yang efisien
    Parameter Deskripsi
    The maximum number of tables for which CDC is enabled that DTS supports Atur jumlah maksimum tabel dengan CDC aktif untuk instans migrasi ini. Default: 1.000. Tidak tersedia saat menggunakan mode source log parsing.
    Processing Mode of Conflicting Tables Precheck and Report Errors: DTS memeriksa tabel dengan nama yang sama di tujuan. Jika ditemukan, precheck gagal dan migrasi tidak dimulai. Ganti nama tabel tujuan yang bentrok atau gunakan object name mapping untuk mengatasi. Ignore Errors and Proceed: DTS melewati pemeriksaan nama yang sama. Selama migrasi penuh, catatan yang ada di tujuan dipertahankan dan catatan sumber yang bentrok dilewati. Selama migrasi inkremental, catatan tujuan mungkin ditimpa. Gunakan dengan hati-hati.
    Source Objects Pilih objek dan klik ikon panah kanan untuk memindahkannya ke Selected Objects. Anda dapat memilih kolom, tabel, atau skema. Memilih tabel atau kolom mengecualikan view, trigger, dan prosedur tersimpan.
    Selected Objects Klik kanan objek untuk mengganti namanya (lihat Map the name of a single object), atur kondisi WHERE untuk penyaringan data, atau pilih operasi SQL tertentu. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus (lihat Map multiple object names at a time). Pemetaan nama objek dapat menyebabkan migrasi objek dependen gagal.
    Parameter Deskripsi
    Dedicated Cluster for Task Scheduling Secara default, DTS menggunakan kluster bersama. Untuk stabilitas lebih tinggi, beli kluster khusus. Lihat What is a DTS dedicated cluster.
    Retry Time for Failed Connections Berapa lama DTS mencoba ulang setelah kegagalan koneksi. Rentang valid: 10–1.440 menit. Default: 720 menit. Atur lebih dari 30 menit. Jika beberapa task berbagi database sumber atau tujuan yang sama, nilai yang dikonfigurasi terakhir berlaku. Selama percobaan ulang, Anda dikenai biaya untuk instans DTS.
    Retry Time for Other Issues Berapa lama DTS mencoba ulang setelah kegagalan DDL atau DML. Rentang valid: 1–1.440 menit. Default: 10 menit. Atur lebih dari 10 menit. Harus kurang dari Retry Time for Failed Connections.
    Enable Throttling for Full Data Migration Batasi baca/tulis migrasi penuh untuk mengurangi beban database. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Tersedia hanya jika Full Data Migration dipilih.
    Enable Throttling for Incremental Data Migration Batasi migrasi inkremental. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Tersedia hanya jika Incremental Data Migration dipilih.
    Environment Tag Beri tag instans DTS untuk identifikasi. Opsional.
    Configure ETL Aktifkan fitur ekstrak, transformasi, dan muat (ETL) untuk mentransformasi data selama migrasi. Lihat What is ETL? dan Configure ETL.
    Monitoring and Alerting Konfigurasikan peringatan untuk kegagalan task atau latensi yang melebihi ambang batas. Lihat Configure monitoring and alerting.
    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);

    Periksa tabel tanpa primary key:

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

    Periksa kolom primary key yang tidak ada di kolom clustered index:

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

    Periksa tabel terkompresi:

    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;

    Periksa tabel dengan 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);

    Lanjutkan mengonfigurasi objek:

  6. Jalankan pemeriksaan awal (precheck). Klik Next: Save Task Settings and Precheck. DTS menjalankan precheck sebelum migrasi dimulai. Jika ada item yang gagal:

    • Klik View Details di sebelah item yang gagal, atasi masalahnya, lalu klik Precheck Again.

    • Jika item peringatan tidak kritis, klik Confirm Alert Details > Ignore > OK > Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.

    Untuk melihat pratinjau parameter API, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters sebelum melanjutkan.
  7. Beli instans migrasi.

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

    2. Di halaman Purchase Instance, konfigurasikan kelas instans:

      Parameter Deskripsi
      Resource Group Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat What is Resource Management?
      Instance Class Pilih kelas berdasarkan kecepatan migrasi yang diperlukan. Lihat Instance classes of data migration instances.
    3. Terima Data Transmission Service (Pay-as-you-go) Service Terms dengan mencentang kotak.

    4. Klik Buy and Start, lalu klik OK di dialog konfirmasi.

Monitor progres migrasi di halaman Data Migration.

  • Task migrasi hanya penuh berhenti otomatis saat selesai. Status menunjukkan Completed.

  • Task migrasi inkremental berjalan terus-menerus dan tidak berhenti otomatis. Status menunjukkan Running.

Alihkan traffic ke instans tujuan

Setelah memverifikasi bahwa data di tujuan sesuai dengan sumber:

  1. Hentikan operasi write ke database sumber.

  2. Tunggu hingga migrasi inkremental menyusul (latensi mendekati nol).

  3. Hentikan atau lepas task migrasi DTS untuk mencegah pemulihan otomatis menimpa data tujuan.

  4. Perbarui string koneksi aplikasi agar mengarah ke instans ApsaraDB RDS for SQL Server tujuan.

Disarankan untuk mengaktifkan READ_COMMITTED_SNAPSHOT di database sumber selama migrasi data penuh untuk mencegah shared lock memengaruhi operasi write. Jika tidak, dapat menyebabkan ketidakkonsistenan data, kegagalan instans, dan situasi abnormal lainnya. Kegagalan yang disebabkan oleh tidak mengaktifkan ini tidak dicakup oleh SLA DTS.
Ruang penyimpanan untuk tabel di tujuan mungkin lebih besar daripada di sumber setelah migrasi penuh selesai, karena fragmentasi dari operasi INSERT konkuren.

Lampiran 1: Operasi SQL yang didukung untuk migrasi inkremental

Operasi DML

Operasi DML: INSERT, UPDATE, DELETE

Jika operasi UPDATE hanya memodifikasi field besar, DTS tidak memigrasikan operasi tersebut.

Operasi DDL

Operasi DDL:

  • CREATE TABLE — Tabel partisi dan tabel yang berisi fungsi tidak dimigrasikan.

  • ALTER TABLE — Hanya mendukung ADD COLUMN dan DROP COLUMN.

  • DROP TABLE

  • CREATE INDEX, DROP INDEX

Operasi DDL yang tidak didukung:

  • DDL transaksional (beberapa operasi kolom atau kombinasi DDL+DML dalam satu pernyataan) — dapat menyebabkan kehilangan data.

  • Operasi DDL yang berisi tipe yang ditentukan pengguna.

  • Operasi DDL Online.

  • DDL pada objek yang namanya mengandung kata kunci yang dicadangkan.

  • DDL yang dilakukan dalam prosedur tersimpan sistem.

  • TRUNCATE TABLE

Lampiran 2: Objek yang didukung untuk migrasi skema

Jenis objek yang didukung: tabel, view, trigger, sinonim, prosedur tersimpan SQL, fungsi SQL, panduan rencana (plan guide), tipe yang ditentukan pengguna, aturan, default, dan sequence.

Tidak didukung: assembly, service broker, indeks teks penuh, katalog teks penuh, skema terdistribusi, fungsi terdistribusi, prosedur tersimpan CLR, fungsi skalar bernilai CLR, fungsi bernilai tabel CLR, tabel internal, tabel sistem, dan fungsi agregat.