All Products
Search
Document Center

Data Transmission Service:Migrasi database SQL Server yang dikelola sendiri ke RDS for SQL Server

Last Updated:Jul 10, 2026

Data Transmission Service (DTS) memungkinkan Anda memigrasikan database SQL Server yang dikelola sendiri ke instans ApsaraDB RDS for SQL Server.

Lingkup penerapan

  • Database SQL Server yang dikelola sendiri harus menggunakan versi yang didukung. Untuk informasi selengkapnya, lihat Ikhtisar solusi migrasi.

  • Anda telah membuat instans tujuan ApsaraDB RDS for SQL Server. Untuk informasi selengkapnya, lihat Buat instans ApsaraDB RDS for SQL Server.

  • Ruang penyimpanan instans tujuan ApsaraDB RDS for SQL Server harus lebih besar daripada ruang yang digunakan oleh database SQL Server sumber yang dikelola sendiri.

  • Jika database sumber memenuhi salah satu kondisi berikut, Anda harus menggunakan fitur backup ApsaraDB RDS for SQL Server untuk memigrasikan data. Untuk informasi selengkapnya, lihat Migrasi 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/detik.

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

    • Database sumber berisi heap tables, tabel tanpa primary key, compressed tables, tabel dengan computed columns, atau tabel dengan sparse columns. Anda dapat menjalankan pernyataan SQL berikut untuk memeriksa jenis tabel tersebut di database sumber:

      1. Periksa heap tables 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 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');
      3. Periksa kolom primary key yang tidak termasuk dalam 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);
      4. Periksa compressed tables 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 computed columns:

        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 sparse columns:

        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

Type

Deskripsi

Batasan database sumber

  • Server database sumber harus memiliki outbound bandwidth yang mencukupi. Bandwidth yang tidak mencukupi akan mengurangi kecepatan migrasi data.

  • Tabel yang akan dimigrasikan harus memiliki primary key atau unique constraint, dan kolom dalam key atau constraint tersebut harus unik. Jika tidak, duplikasi data dapat terjadi di database tujuan.

  • Jika Anda memilih tabel tertentu untuk migrasi dan perlu mengeditnya (misalnya, memetakan nama tabel atau kolom), satu tugas migrasi hanya dapat memigrasikan maksimal 1.000 tabel. Jika melebihi batas ini, tugas akan gagal saat dikirim. Pisahkan tabel menjadi beberapa tugas atau konfigurasikan tugas untuk memigrasikan seluruh database.

  • Satu tugas migrasi mendukung maksimal 10 database. Melebihi batas ini dapat menyebabkan masalah stabilitas dan kinerja. Pisahkan migrasi menjadi beberapa tugas jika diperlukan.

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

  • Jika Anda melakukan migrasi data inkremental, log transaksi harus memenuhi persyaratan berikut:

    • Pencatatan transaksi harus diaktifkan, mode backup harus diatur ke Full, dan backup fisik penuh harus telah berhasil dilakukan.

    • Untuk migrasi data inkremental saja, Data Transmission Service (DTS) memerlukan retensi log transaksi database sumber lebih dari 24 jam. Jika tugas mencakup migrasi data penuh dan inkremental, pertahankan log setidaknya selama tujuh hari. Setelah migrasi data penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam. Jika tidak, tugas DTS dapat gagal karena log transaksi tidak tersedia. Dalam kasus ekstrem, ketidakkonsistenan atau kehilangan data dapat terjadi. Masalah yang disebabkan oleh retensi log yang tidak mencukupi tidak dicakup oleh Service Level Agreement (SLA) DTS.

  • Jika Anda mengaktifkan CDC (change data capture) untuk tabel sumber yang akan dimigrasikan, tabel tersebut harus memenuhi kondisi berikut. Jika tidak, pemeriksaan awal akan gagal.

    • Nilai field srvname dalam view 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.

  • DTS menggunakan fungsi fn_log untuk mendapatkan log dari database sumber. Fungsi ini memiliki bottleneck kinerja, jadi jangan menghapus log database sumber terlalu dini. Jika tidak, tugas DTS dapat gagal.

  • Batasan operasi di database sumber:

    • Selama fase migrasi skema dan migrasi data penuh, jangan lakukan operasi DDL yang mengubah struktur database atau tabel. Jika tidak, tugas migrasi data akan gagal.

    • Jika Anda hanya melakukan migrasi data penuh, jangan menulis data baru ke instans sumber. Jika tidak, data di database sumber dan tujuan akan menjadi tidak konsisten. Untuk memastikan konsistensi data secara real-time, pilih Schema Migration, Full Data Migration, dan Incremental Data Migration.

  • Jika database sumber adalah instans read-only, DTS tidak memigrasikan operasi DDL.

  • Jika database sumber adalah Azure SQL Database, satu instans migrasi hanya dapat memigrasikan satu database.

  • Jika database sumber adalah instans ApsaraDB RDS for SQL Server dan tugas migrasi mencakup migrasi data inkremental, pastikan Transparent Data Encryption (TDE) dinonaktifkan demi stabilitas tugas. Untuk informasi selengkapnya, lihat Nonaktifkan TDE.

  • Jika Anda menggunakan perintah sp_rename untuk mengganti nama objek seperti stored procedures sebelum tugas migrasi skema dijalankan, tugas mungkin tidak berjalan sesuai harapan atau gagal.

    Catatan

    Gunakan perintah ALTER untuk mengganti nama objek database.

  • Dalam mode parsing hybrid berbasis log, database sumber tidak mendukung operasi penambahan atau penghapusan kolom berturut-turut dengan interval kurang dari 10 menit. Misalnya, jika Anda menjalankan pernyataan SQL berikut secara berturut-turut, tugas akan gagal.

    ALTER TABLE test_table DROP COLUMN Flag;
    ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
  • Jika database sumber adalah instans ApsaraDB RDS for SQL Server yang menjalankan edisi Web, atur SQL Server Incremental Synchronization Mode ke Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported) saat mengonfigurasi tugas.

  • Selama migrasi data penuh, aktifkan parameter READ_COMMITTED_SNAPSHOT untuk database sumber guna mencegah kontensi shared lock memengaruhi penulisan data. Jika tidak, ketidakkonsistenan data atau kegagalan tugas dapat terjadi. Masalah yang disebabkan oleh tidak mengaktifkan parameter ini tidak dicakup oleh SLA DTS.

Batasan lainnya

  • DTS tidak mendukung migrasi data dengan tipe berikut: CURSOR, ROWVERSION, SQL_VARIANT, HIERARCHYID, POLYGON, GEOMETRY, dan GEOGRAPHY.

  • Jika data tidak dapat ditulis ke kolom dengan tipe data TIMESTAMP di database tujuan, DTS tidak mendukung migrasi data penuh atau inkremental. Hal ini dapat menyebabkan ketidakkonsistenan data atau kegagalan tugas.

  • Untuk memigrasikan triggers dari database sumber, akun database yang digunakan untuk tugas migrasi harus memiliki izin Owner pada database tujuan.

  • Jika Anda mengatur Configure Objects ke SQL Server Incremental Synchronization Mode pada langkah Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported), tabel yang akan dimigrasikan harus memiliki clustered index yang mencakup kolom primary key. DTS tidak mendukung migrasi heap tables, tabel tanpa primary key, compressed tables, tabel dengan computed columns, atau tabel dengan sparse columns dalam mode ini. Batasan ini tidak berlaku dalam mode parsing hybrid berbasis log.

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

    • DTS bergantung pada komponen CDC untuk migrasi inkremental. Pastikan job CDC di database sumber berjalan sebagaimana mestinya. Jika tidak, tugas DTS akan gagal.

    • Secara default, komponen CDC menyimpan data inkremental selama tiga hari. Sesuaikan periode retensi dengan menjalankan perintah exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>;.

      Catatan
      • <time> menentukan periode retensi dalam menit.

      • Jika rata-rata jumlah perubahan SQL inkremental harian untuk satu tabel melebihi 10 juta, atur <time> ke 1440.

    • Dalam satu tugas migrasi, aktifkan CDC untuk tidak lebih dari 1.000 tabel. Jika tidak, tugas mungkin mengalami latensi tinggi atau menjadi tidak stabil.

    • Modul pemeriksaan awal untuk tugas migrasi data inkremental DTS mengaktifkan CDC di database sumber. Selama proses ini, batasan internal mesin SQL Server dapat menyebabkan locking sementara pada tabel di database sumber.

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

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

      Catatan
      • Akun paling istimewa (administrator server) yang disediakan oleh konsol Azure SQL Database memenuhi persyaratan. Untuk database yang dibeli berdasarkan model vCore, CDC dapat diaktifkan untuk semua spesifikasi. Untuk database yang dibeli berdasarkan model DTU, CDC hanya dapat diaktifkan untuk tier layanan S3 atau lebih tinggi.

      • Akun istimewa instans Amazon RDS for SQL Server memenuhi persyaratan dan mendukung pengaktifan CDC tingkat database melalui stored procedures.

      • CDC tidak dapat diaktifkan untuk tabel yang memiliki clustered columnstore index.

      • Modul pemeriksaan awal untuk tugas migrasi data inkremental DTS mengaktifkan CDC di database sumber. Selama proses ini, batasan internal mesin SQL Server dapat menyebabkan locking sementara pada tabel di database sumber.

    • DTS memperoleh data inkremental dengan polling dan meng-query instance CDC setiap tabel di database sumber. Migrasikan tidak lebih dari 1.000 tabel dari database sumber. Jika tidak, tugas mungkin mengalami latensi tinggi atau menjadi tidak stabil.

    • Secara default, komponen CDC menyimpan data inkremental selama tiga hari. Sesuaikan periode retensi dengan menjalankan perintah exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>;.

      Catatan
      • <time> menentukan periode retensi dalam menit.

      • Jika rata-rata jumlah perubahan SQL inkremental harian untuk satu tabel melebihi 10 juta, atur <time> ke 1440.

    • Operasi penambahan atau penghapusan kolom berturut-turut tidak didukung (lebih dari dua operasi DDL ADD COLUMN atau DROP COLUMN dalam satu menit). Jika tidak, tugas mungkin gagal.

    • Jangan memodifikasi instance CDC database sumber. Jika tidak, tugas migrasi data mungkin gagal atau terjadi kehilangan data.

  • Jika Anda memigrasikan data antar versi SQL Server yang berbeda, verifikasi kompatibilitas terlebih dahulu.

  • Untuk memastikan pelaporan latensi yang akurat selama migrasi data inkremental, DTS membuat objek di database sumber. Dalam mode parsing berbasis log, DTS membuat trigger dts_cdc_sync_ddl, tabel heartbeat dts_sync_progress, dan tabel penyimpanan DDL dts_cdc_ddl_history. Dalam mode parsing hybrid berbasis log, DTS membuat objek yang sama dan juga mengaktifkan CDC tingkat database dan tabel. Untuk tabel yang diaktifkan CDC-nya, laju perubahan data tidak boleh melebihi 1.000 baris per detik (RPS).

  • Sebelum memigrasikan data, evaluasi kinerja database sumber dan tujuan serta lakukan migrasi selama jam sepi. Selama migrasi data penuh, DTS mengonsumsi sumber daya baca dan tulis di kedua database, yang dapat meningkatkan beban kerja.

  • Selama migrasi data penuh, operasi INSERT konkuren dapat menyebabkan fragmentasi pada tabel tujuan, sehingga storage space tabel di database tujuan mungkin lebih besar daripada di database sumber setelah migrasi.

  • Verifikasi apakah presisi yang digunakan DTS untuk memigrasikan kolom dengan tipe data FLOAT atau DOUBLE memenuhi kebutuhan bisnis Anda. DTS menggunakan fungsi ROUND(COLUMN,PRECISION) untuk membaca nilai dari kolom tersebut. Jika presisi tidak didefinisikan secara eksplisit, DTS memigrasikan nilai FLOAT dengan presisi 38 digit dan nilai DOUBLE dengan presisi 308 digit.

  • DTS mencoba melanjutkan tugas yang gagal hingga tujuh hari. Sebelum mengalihkan beban kerja bisnis Anda ke instans tujuan, akhiri atau lepaskan tugas migrasi. Atau, cabut izin tulis akun DTS pada instans tujuan dengan menggunakan perintah revoke untuk mencegah tugas yang dilanjutkan menimpa data tujuan.

  • Jika tugas migrasi mencakup migrasi data inkremental, Anda tidak dapat melakukan operasi re-indexing. Hal ini dapat menyebabkan tugas gagal atau kehilangan data.

    Catatan

    Anda tidak dapat memodifikasi primary key tabel yang diaktifkan CDC-nya.

  • Jika jumlah tabel yang diaktifkan CDC dalam satu tugas migrasi melebihi nilai yang diatur dalam parameter The maximum number of tables for which CDC is enabled that DTS supports., pemeriksaan awal akan gagal.

  • Jika tugas mencakup migrasi inkremental dan satu field dalam tabel yang diaktifkan CDC yang akan ditulis berisi data lebih dari 64 KB, jalankan perintah exec sp_configure 'max text repl size', -1; untuk menyesuaikan konfigurasi database sumber terlebih dahulu.

    Catatan

    Secara default, job CDC dapat memproses ukuran data maksimum 64 KB untuk satu field.

  • Untuk melakukan migrasi data inkremental, nonaktifkan triggers dan foreign keys yang diaktifkan di database tujuan. Jika tidak, tugas akan gagal.

  • Ketika beberapa instans migrasi menggunakan database SQL Server sumber yang sama, modul pengumpulan data inkremental mereka beroperasi secara independen.

  • Jika tugas gagal, staf dukungan DTS akan mencoba memulihkannya dalam waktu delapan jam. Selama pemulihan, mereka mungkin me-restart tugas atau menyesuaikan parameternya.

    Catatan

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

  • SQL Server adalah database komersial closed-source yang format log-nya dapat menyebabkan masalah yang tidak dapat dihindari selama CDC dan parsing inkremental di DTS. Sebelum mengaktifkan DTS untuk sinkronisasi inkremental dari sumber SQL Server di lingkungan produksi, lakukan pengujian proof-of-concept (POC) komprehensif yang mencakup semua skenario perubahan bisnis, penyesuaian skema, dan uji stres beban puncak. Konsistensi antara logika lingkungan produksi dan fase POC sangat penting untuk operasi DTS yang stabil.

  • Selama migrasi data inkremental, rollback transaksi parsial di database sumber tidak didukung dan mungkin terlewat.

Kasus khusus

  • Jika sumbernya adalah instans ApsaraDB RDS for SQL Server, DTS membuat akun sistem bernama rdsdt_dtsacct pada instans tersebut untuk migrasi data. Jangan menghapus akun ini atau mengubah password-nya selama tugas berjalan. Jika tidak, tugas mungkin gagal. Untuk informasi selengkapnya, lihat System accounts.

  • Jika tujuannya adalah instans ApsaraDB RDS for SQL Server, DTS secara otomatis membuat database. Namun, jika nama database tidak mengikuti konvensi penamaan ApsaraDB RDS for SQL Server, buat database di instans tujuan sebelum mengonfigurasi tugas migrasi. Untuk informasi selengkapnya, lihat Create a database.

Penagihan

Tipe migrasi

Biaya konfigurasi instans

Biaya traffic Internet

Schema migration dan full data migration

Gratis.

Ketika parameter Access Method database tujuan diatur ke Public IP Address, Anda dikenai biaya untuk traffic Internet. Untuk informasi selengkapnya, lihat Billing overview.

Incremental data migration

Dikenai biaya. Untuk informasi selengkapnya, lihat Billing overview.

Tipe migrasi

  • Schema migration

    DTS memigrasikan definisi skema objek migrasi dari database sumber ke database tujuan.

    • DTS mendukung schema migration untuk objek berikut: tabel, view, trigger, sinonim, stored procedure SQL, fungsi SQL, plan guide, tipe yang ditentukan pengguna, aturan, default, dan sequence.

    • DTS tidak mendukung schema migration untuk objek berikut: assembly, service broker, full-text index, katalog full-text, skema terdistribusi, fungsi terdistribusi, stored procedure Common Language Runtime (CLR), fungsi skalar CLR, fungsi bernilai tabel CLR, tabel internal, sistem, atau fungsi agregat.

  • Full migration

    DTS memigrasikan semua data historis dari objek migrasi yang ditentukan dari database sumber ke database tujuan.

  • Incremental migration

    Setelah migrasi penuh selesai, DTS memigrasikan pembaruan data inkremental dari database sumber ke database tujuan. Migrasi inkremental memungkinkan Anda memigrasikan data secara mulus tanpa mengganggu aplikasi yang dikelola sendiri.

Operasi SQL untuk migrasi data inkremental

Type

Pernyataan SQL

DML

INSERT, UPDATE, DELETE

Catatan

DTS tidak mendukung pernyataan UPDATE yang hanya memperbarui field besar.

DDL

  • CREATE TABLE

  • ALTER TABLE

    Hanya mencakup ADD COLUMN dan DROP COLUMN.

  • DROP TABLE

  • CREATE INDEX, DROP INDEX

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

  • DTS tidak mendukung operasi DDL yang melibatkan user-defined type.

  • DTS tidak mendukung operasi online DDL.

  • DTS tidak mendukung operasi DDL yang menggunakan reserved keyword sebagai nama atribut.

  • DTS tidak mendukung operasi DDL yang dieksekusi dari system stored procedure.

  • DTS tidak mendukung operasi TRUNCATE TABLE.

  • DTS tidak mendukung partition atau table definition yang berisi fungsi.

Izin akun database

Database

Schema migration

Full data migration

Incremental data migration

Database SQL Server yang dikelola sendiri

Izin SELECT

Izin SELECT

sysadmin

Instans ApsaraDB RDS for SQL Server

izin baca dan tulis

Untuk membuat dan memberi otorisasi akun database, lihat topik berikut:

Proses migrasi data

Untuk mencegah kegagalan migrasi akibat dependensi objek, DTS memigrasikan skema dan data dari database SQL Server sumber dalam urutan berikut:

  1. Schema migration untuk tabel, view, sinonim, tipe yang ditentukan pengguna, aturan, default, dan plan guide.

  2. Full data migration.

  3. Schema migration untuk stored procedure, fungsi, trigger, dan foreign key.

  4. Incremental data migration.

Prasyarat

Catatan

Untuk melakukan migrasi inkremental, Anda harus mengonfigurasi pengaturan log dan membuat clustered indexes pada database SQL Server yang dikelola sendiri sebelum mengonfigurasi tugas migrasi data.

Penting

Jika Anda perlu memigrasikan beberapa database, Anda harus mengulangi langkah 1 hingga 3 untuk setiap database. Jika tidak, ketidakkonsistenan data dapat terjadi.

  1. Jalankan perintah berikut pada database SQL Server yang dikelola sendiri untuk mengubah model recovery database sumber ke model recovery penuh.

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

    Parameter:

    <database_name>: Nama database sumber.

    Contoh:

    use master;
    GO
    ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE;
    GO
  2. Jalankan perintah berikut untuk membuat backup logis database sumber. Anda dapat melewati langkah ini jika backup logis sudah ada.

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

    Parameter:

    • <database_name>: Nama database sumber.

    • <physical_backup_device_name>: Path dan nama file untuk file backup.

    Contoh:

    BACKUP DATABASE mytestdata TO DISK='D:\backup\dbdata.bak';
    GO
  3. Jalankan perintah berikut untuk mem-backup transaction log database sumber.

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

    Parameter:

    • <database_name>: Nama database sumber.

    • <physical_backup_device_name>: Path dan nama file untuk file backup.

    Contoh:

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

Prosedur

  1. Buka halaman daftar tugas migrasi untuk wilayah tujuan menggunakan salah satu metode berikut.

    Dari konsol DTS

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

    2. Di panel navigasi kiri, klik Data Migration.

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

    Dari konsol DMS

    Catatan

    Operasi aktual dapat berbeda tergantung pada mode dan tata letak konsol DMS. Untuk informasi selengkapnya, lihat Simple mode console dan Customize the layout and style of the DMS console.

    1. Masuk ke konsol Data Management (DMS).

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

    3. Di sebelah kanan Data Migration Tasks, pilih wilayah tempat instans migrasi berada.

  2. Klik Create Task untuk membuka halaman konfigurasi tugas.

  3. Konfigurasikan database sumber dan tujuan.

    Peringatan

    Setelah memilih instans sumber dan tujuan, kami sarankan Anda membaca dengan cermat batasan yang ditampilkan di bagian atas halaman. Jika tidak, tugas mungkin gagal atau terjadi ketidakkonsistenan data.

    Kategori

    Parameter

    Deskripsi

    N/A

    Task Name

    DTS secara otomatis menghasilkan nama tugas. Kami sarankan Anda menentukan nama deskriptif agar mudah diidentifikasi. Nama tidak perlu unik.

    Source Database

    Select Existing Connection

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

      Catatan

      Di konsol DMS, parameter ini bernama Select a DMS database instance..

    • Jika Anda belum mendaftarkan instans database ke sistem, atau tidak perlu menggunakan instans terdaftar, konfigurasikan informasi database secara manual di bawah.

    Database Type

    Pilih SQL Server.

    Connection Type

    Pilih Public IP Address.

    Catatan

    Jika database sumber Anda adalah database yang dikelola sendiri, Anda harus menyelesaikan persiapan yang diperlukan. Untuk informasi selengkapnya, lihat Preparation overview.

    Instance Region

    Pilih wilayah tempat database SQL Server yang dikelola sendiri berada.

    Hostname or IP Address

    Masukkan endpoint database SQL Server yang dikelola sendiri. Dalam contoh ini, digunakan alamat IP publik.

    Port Number

    Masukkan port layanan database SQL Server yang dikelola sendiri. Nilai default adalah 1433.

    Database Account

    Masukkan akun untuk database SQL Server yang dikelola sendiri. Untuk informasi tentang izin yang diperlukan, lihat Database account permissions.

    Database Password

    Masukkan password untuk akun database.

    Encryption

    Pilih Non-encrypted atau SSL-encrypted berdasarkan kebutuhan bisnis Anda.

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

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

    Destination Database

    Select Existing Connection

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

      Catatan

      Di konsol DMS, parameter ini bernama Select a DMS database instance..

    • Jika Anda belum mendaftarkan instans database ke sistem, atau tidak perlu menggunakan instans terdaftar, konfigurasikan informasi database secara manual di bawah.

    Database Type

    Pilih SQL Server.

    Connection Type

    Pilih Alibaba Cloud Instance.

    Instance Region

    Pilih wilayah tempat instans tujuan ApsaraDB RDS for SQL Server berada.

    Instance ID

    Pilih ID instans tujuan ApsaraDB RDS for SQL Server.

    Database Account

    Masukkan akun untuk instans tujuan ApsaraDB RDS for SQL Server. Untuk informasi tentang izin yang diperlukan, lihat Database account permissions.

    Database Password

    Masukkan password untuk akun database.

    Encryption

    Pilih Non-encrypted atau SSL-encrypted berdasarkan kebutuhan bisnis Anda.

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

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

  4. Setelah menyelesaikan konfigurasi, klik Test Connectivity and Proceed di bagian bawah halaman. Di kotak dialog CIDR Blocks of DTS Servers yang muncul, klik Test Connectivity.

    Catatan

    Pastikan segmen alamat IP layanan DTS telah ditambahkan secara otomatis atau manual ke pengaturan keamanan database sumber dan tujuan untuk mengizinkan akses dari server DTS. Untuk informasi selengkapnya, lihat Add DTS server IP addresses to a whitelist.

  5. Konfigurasikan objek tugas.

    1. Di halaman Configure Objects, konfigurasikan objek yang ingin Anda migrasikan.

      Parameter

      Deskripsi

      Migration Types

      • Jika Anda hanya perlu melakukan migrasi penuh, pilih Schema Migration dan Full Data Migration.

      • Untuk melakukan migrasi tanpa downtime, pilih Schema Migration, Full Data Migration, dan Incremental Data Migration.

      Catatan
      • Jika Anda tidak memilih Schema Migration, Anda harus memastikan bahwa database dan tabel untuk menerima data sudah ada di database tujuan. Anda juga dapat menggunakan fitur pemetaan nama objek di kotak Selected Objects sesuai kebutuhan.

      • Jika Anda tidak memilih Incremental Data Migration, jangan menulis data baru ke instans sumber selama migrasi data untuk memastikan konsistensi data.

      Method to Migrate Triggers in Source Database

      Pilih metode untuk memigrasikan trigger berdasarkan kebutuhan Anda. Jika objek yang dimigrasikan tidak melibatkan trigger, Anda tidak perlu mengonfigurasi parameter ini. Untuk informasi selengkapnya, lihat Configure a synchronization or migration method for triggers.

      Catatan

      Anda dapat mengonfigurasi parameter ini hanya jika memilih Migration Types dan Schema Migration untuk Incremental Data Migration.

      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:

          • Mendukung skenario yang melibatkan heap tables sumber, tabel tanpa primary key, compressed tables, atau tabel dengan computed columns.

          • Memberikan stabilitas link tinggi. Mode ini dapat memperoleh pernyataan DDL lengkap dan mendukung berbagai skenario DDL.

        • Kerugian:

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

          • Anda tidak dapat menjalankan pernyataan `SELECT INTO`, `TRUNCATE`, atau `RENAME COLUMN` pada tabel yang diaktifkan CDC di database sumber. Anda tidak dapat menghapus trigger yang dibuat DTS di database sumber secara manual.

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

        • Keuntungan:

          Mode ini bersifat non-intrusif terhadap database sumber.

        • Kerugian:

          Mode ini tidak mendukung skenario yang melibatkan heap tables sumber, tabel tanpa primary key, compressed tables, atau tabel dengan computed columns.

      • Polling and querying CDC instances for incremental synchronization:

        • Keuntungan:

          • Mendukung migrasi penuh 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 CDC native SQL Server untuk memperoleh data inkremental, yang meningkatkan stabilitas migrasi inkremental dan mengurangi penggunaan bandwidth jaringan.

        • Kerugian:

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

          • Saat memigrasikan beberapa tabel di beberapa database, Anda mungkin mengalami masalah stabilitas dan kinerja.

      Catatan

      Parameter ini tersedia hanya jika Anda memilih Migration Types untuk Incremental Data Migration.

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

      Anda dapat mengatur batas jumlah tabel yang diaktifkan CDC untuk instans migrasi saat ini berdasarkan kebutuhan bisnis Anda. 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 tidak ada tabel dengan nama yang sama, pemeriksaan awal lolos. Jika ada tabel dengan nama yang sama, kesalahan dilaporkan selama pemeriksaan awal, dan tugas migrasi data tidak dimulai.

        Catatan

        Jika tabel di database tujuan memiliki nama yang sama tetapi tidak dapat dengan mudah dihapus atau diganti namanya, Anda dapat mengganti nama tabel di database tujuan. Untuk informasi selengkapnya, lihat Object name mapping.

      • Ignore Errors and Proceed: Melewati pemeriksaan tabel dengan nama yang sama.

        Peringatan

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

        • Jika skema tabel konsisten dan catatan di database tujuan memiliki nilai primary key yang sama dengan catatan di database sumber:

          • Selama migrasi penuh, DTS menyimpan catatan di database tujuan. Catatan dari database sumber tidak dimigrasikan.

          • Selama migrasi inkremental, DTS tidak menyimpan catatan di database tujuan. Catatan dari database sumber menimpa catatan di database tujuan.

        • Jika skema tabel tidak konsisten, hanya beberapa kolom data yang mungkin dimigrasikan, atau migrasi mungkin gagal. Lakukan dengan hati-hati.

      Source Objects

      Di kotak Source Objects, klik objek yang akan dimigrasikan, lalu klik Right arrow untuk memindahkannya ke kotak Selected Objects.

      Catatan

      Granularitas pemilihan objek migrasi adalah skema, tabel, dan kolom. Jika Anda hanya memilih tabel atau kolom sebagai objek migrasi, objek lain seperti view, trigger, dan stored procedure tidak dimigrasikan ke database tujuan.

      Selected Objects

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

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

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

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

      Parameter

      Deskripsi

      Dedicated Cluster for Task Scheduling

      Secara default, DTS menjadwalkan tugas pada klaster bersama. Anda tidak perlu memilihnya. Jika Anda menginginkan tugas yang lebih stabil, Anda dapat membeli klaster khusus untuk menjalankan tugas migrasi DTS.

      Retry Time for Failed Connections

      Setelah tugas migrasi dimulai, jika koneksi ke database sumber atau tujuan gagal, DTS melaporkan kesalahan dan segera mulai mencoba koneksi ulang. Durasi percobaan ulang default adalah 720 menit. Anda dapat menyesuaikan waktu percobaan ulang ke nilai antara 10 hingga 1.440 menit. Kami sarankan Anda mengatur durasi lebih dari 30 menit. Jika DTS terhubung kembali ke database sumber dan tujuan dalam durasi yang ditentukan, tugas migrasi akan dilanjutkan secara otomatis. Jika tidak, tugas gagal.

      Catatan
      • Untuk beberapa instans DTS yang berbagi sumber atau tujuan yang sama, waktu percobaan ulang jaringan ditentukan oleh pengaturan tugas yang dibuat terakhir.

      • Karena Anda dikenai biaya untuk tugas selama periode percobaan ulang koneksi, kami sarankan Anda menyesuaikan waktu 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 migrasi dimulai, jika terjadi masalah non-konektivitas, seperti pengecualian eksekusi DDL atau DML, di database sumber atau tujuan, DTS melaporkan kesalahan dan segera mulai mencoba operasi ulang. Durasi percobaan ulang default adalah 10 menit. Anda dapat menyesuaikan waktu percobaan ulang ke nilai antara 1 hingga 1.440 menit. Kami sarankan Anda mengatur durasi lebih dari 10 menit. Jika operasi terkait berhasil dalam durasi percobaan ulang yang ditentukan, tugas migrasi akan dilanjutkan secara otomatis. Jika tidak, tugas gagal.

      Penting

      Nilai Retry Time for Other Issues harus kurang dari nilai Retry Time for Failed Connections.

      Enable Throttling for Full Data Migration

      Selama migrasi penuh, DTS mengonsumsi sumber daya baca dan tulis di database sumber dan tujuan, yang dapat meningkatkan beban database. Jika diperlukan, Anda dapat mengaktifkan throttling untuk tugas migrasi penuh. Anda dapat mengatur Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s) untuk mengurangi beban pada database tujuan.

      Catatan
      • Item konfigurasi ini tersedia hanya jika Anda memilih Full Data Migration untuk Migration Types.

      • Anda juga dapat menyesuaikan kecepatan migrasi penuh setelah instans migrasi berjalan.

      Enable Throttling for Incremental Data Migration

      Jika diperlukan, Anda juga dapat memilih untuk mengatur batas kecepatan untuk tugas migrasi inkremental. Anda dapat mengatur RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s) untuk mengurangi beban pada database tujuan.

      Catatan

      Environment Tag

      Anda dapat memilih tag lingkungan untuk mengidentifikasi instans berdasarkan kebutuhan Anda. Parameter ini opsional.

      Configure ETL

      Pilih apakah akan mengaktifkan fitur extract, transform, and load (ETL). Untuk informasi selengkapnya, lihat What is ETL? Nilai yang valid:

      Monitoring and Alerting

      Pilih apakah akan mengatur peringatan dan menerima pemberitahuan peringatan berdasarkan kebutuhan bisnis Anda.

      • No: Tidak mengatur peringatan.

      • Yes: Konfigurasikan peringatan dengan mengatur alert threshold dan alert notifications. Jika migrasi gagal atau latensi melebihi ambang batas, sistem mengirim pemberitahuan peringatan.

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

      Untuk informasi selengkapnya tentang fitur validasi data, lihat Configure data validation.

  6. Simpan tugas dan jalankan pemeriksaan awal.

    • Untuk melihat parameter konfigurasi instans ini saat memanggil operasi API, arahkan pointer ke tombol Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters di balon yang muncul.

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

    Catatan
    • Sebelum tugas migrasi dimulai, DTS melakukan pemeriksaan awal. Tugas hanya dimulai setelah lolos pemeriksaan awal.

    • Jika pemeriksaan awal gagal, klik View Details di sebelah item pemeriksaan yang gagal, perbaiki masalah berdasarkan petunjuk, lalu jalankan pemeriksaan awal lagi.

    • Jika peringatan dilaporkan selama pemeriksaan awal:

      • Untuk item pemeriksaan yang tidak dapat diabaikan, klik View Details di sebelah item yang gagal, perbaiki masalah berdasarkan petunjuk, lalu jalankan pemeriksaan awal lagi.

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

  7. Beli instans.

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

    2. Di halaman Purchase, pilih spesifikasi link untuk instans migrasi data. Untuk informasi selengkapnya, lihat tabel berikut.

      Kategori

      Parameter

      Deskripsi

      New Instance Class

      Resource Group Settings

      Pilih kelompok sumber daya tempat instans tersebut berada. Nilai default adalah kelompok sumber daya default. Untuk informasi selengkapnya, lihat What is Resource Management?

      Instance Class

      DTS menyediakan spesifikasi migrasi dengan tingkat kinerja berbeda. Spesifikasi link memengaruhi kecepatan migrasi. Anda dapat memilih spesifikasi berdasarkan skenario bisnis Anda. Untuk informasi selengkapnya, lihat Data migration link specifications.

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

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

      Anda dapat melihat progres tugas migrasi di halaman daftar Data Migration Tasks.

      Catatan
      • Jika tugas migrasi tidak mencakup migrasi inkremental, tugas akan berhenti secara otomatis setelah migrasi penuh selesai. Setelah tugas berhenti, Status-nya berubah menjadi Completed.

      • Jika tugas migrasi mencakup migrasi inkremental, tugas tidak berhenti secara otomatis. Tugas migrasi inkremental terus berjalan. Selama tugas migrasi inkremental berjalan, Status tugas adalah Running.