Gunakan Data Transmission Service (DTS) untuk mengalirkan perubahan data inkremental dari instans ApsaraDB RDS for SQL Server ke proyek DataHub secara real time. DTS menggunakan change data capture (CDC) untuk membaca operasi INSERT, UPDATE, dan DELETE yang telah dikomit dari log transaksi SQL Server dan menuliskannya ke topik DataHub.
Cara kerja
Saat Anda memulai tugas migrasi DTS, DTS melakukan migrasi skema untuk mereplikasi struktur objek yang dipilih ke proyek DataHub tujuan. Setelah migrasi skema selesai, DTS mengaktifkan CDC pada instans sumber dan mulai menangkap perubahan tingkat baris. Setiap perubahan yang ditangkap ditulis ke topik DataHub yang sesuai. Tugas ini berjalan terus-menerus—hanya berhenti jika Anda menghentikannya secara manual atau terjadi error yang tidak dapat dipulihkan.
Migrasi data penuh tidak didukung untuk jalur migrasi ini. Hanya migrasi skema dan migrasi data inkremental yang tersedia.
Konfigurasi yang didukung
Tabel berikut merangkum batasan ketat untuk jalur migrasi ini. Periksa hal-hal ini sebelum memulai.
| Kategori | Nilai atau batas yang didukung |
|---|---|
| Jenis migrasi | Migrasi skema, migrasi data inkremental (migrasi data penuh tidak didukung) |
| Database per tugas | Hingga 10 |
| Tabel per tugas (saat mengganti nama tabel atau kolom) | Hingga 1.000 |
| SQL Server — edisi Enterprise | 2008 atau lebih baru |
| SQL Server — edisi Standard | 2016 SP1 atau lebih baru |
| Ukuran string tujuan | Hingga 2 MB per nilai string |
| Tabel CDC dengan nilai bidang > 64 KB | Jalankan exec sp_configure 'max text repl size', -1; sebelum memulai tugas |
| Transparent Data Encryption (TDE) | Harus dinonaktifkan saat migrasi data inkremental disertakan |
Prasyarat
Sebelum memulai:
Instans ApsaraDB RDS for SQL Server sumber menjalankan versi yang didukung oleh DTS. Lihat Ikhtisar skenario migrasi data untuk versi yang didukung.
DataHub telah diaktifkan dan proyek telah dibuat untuk menerima data yang dimigrasikan. Lihat Memulai dengan DataHub dan Mengelola proyek.
Jika instans sumber memenuhi salah satu kondisi berikut, beli beberapa instans DTS dan konfigurasikan tugas migrasi terpisah:
Instans berisi lebih dari 10 database
Backup log transaksi untuk satu database dilakukan lebih sering daripada sekali per jam
Satu database mengeksekusi lebih dari 100 pernyataan DDL per jam
Log transaksi ditulis dengan laju lebih dari 20 MB/s untuk satu database
CDC perlu diaktifkan untuk lebih dari 1.000 tabel
Batasan
Database sumber
Server sumber harus memiliki bandwidth outbound yang cukup. Bandwidth yang tidak mencukupi mengurangi kecepatan migrasi.
Tabel yang akan dimigrasikan harus memiliki kendala PRIMARY KEY atau UNIQUE, dengan semua bidang bernilai unik. Tabel tanpa kendala ini dapat menghasilkan catatan duplikat di tujuan.
Jika Anda mengganti nama tabel atau kolom di tujuan, satu tugas migrasi mendukung hingga 1.000 tabel. Melebihi batas ini menyebabkan error permintaan. Dalam kasus ini, bagi tabel ke beberapa tugas atau lakukan migrasi pada level database saja.
Satu tugas migrasi mendukung hingga 10 database. Migrasi lebih dari 10 database dalam satu tugas dapat mengurangi kinerja dan stabilitas.
Untuk migrasi data inkremental:
Aktifkan pencatatan data pada database sumber. Atur mode backup ke Full dan lakukan backup fisik penuh.
Jika Anda hanya menjalankan migrasi data inkremental, simpan log transaksi selama lebih dari 24 jam. Jika Anda menjalankan migrasi data penuh dan inkremental, simpan log setidaknya selama 7 hari. DTS mungkin gagal mendapatkan log jika periode retensi terlalu singkat, yang dapat menyebabkan kegagalan tugas, inkonsistensi data, atau kehilangan data. Setelah migrasi data penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam. Periode retensi yang tidak memenuhi persyaratan ini berada di luar cakupan Service Level Agreement (SLA) DTS.
Agar CDC berfungsi dengan benar, kondisi berikut harus dipenuhi. Jika tidak terpenuhi, pemeriksaan awal gagal:
Nilai bidang
srvnamedalam tampilansys.sysserversharus sesuai dengan nilai kembali fungsiSERVERPROPERTY.Untuk database SQL Server yang dikelola sendiri, pemilik database harus merupakan pengguna
sa. Untuk database ApsaraDB RDS for SQL Server, pemilik database harus merupakan penggunasqlsa.Edisi Enterprise: SQL Server 2008 atau lebih baru.
Edisi Standard: SQL Server 2016 SP1 atau lebih baru.
Jika sumber menjalankan SQL Server 2017 (edisi Standard atau Enterprise), perbarui ke versi yang lebih baru sebelum migrasi.
DTS menggunakan fungsi
fn_loguntuk membaca log database sumber. Jangan hapus log sebelum tugas selesai—menghapus log dapat menyebabkan tugas gagal.Selama migrasi skema dan migrasi data penuh, jangan eksekusi pernyataan DDL pada database sumber. Perubahan skema selama migrasi menyebabkan tugas gagal.
Jika Anda hanya menjalankan migrasi data inkremental, jangan menulis data ke database sumber selama migrasi. Untuk menjamin konsistensi data, jalankan migrasi skema, migrasi data penuh, dan migrasi data inkremental bersamaan.
Jika sumber adalah Azure SQL Database, hanya satu database yang dapat dimigrasikan per tugas.
Jika sumber adalah instans ApsaraDB RDS for SQL Server dan tugas mencakup migrasi data inkremental, nonaktifkan Transparent Data Encryption (TDE) pada instans tersebut. Lihat Konfigurasi TDE.
Selama migrasi data penuh, aktifkan tingkat isolasi
READ_COMMITTED_SNAPSHOTpada database sumber. Tanpa pengaturan ini, kunci bersama (shared locks) dapat memblokir penulisan, menyebabkan inkonsistensi data, atau mencegah instans berjalan. Masalah ini berada di luar cakupan SLA DTS.Dalam mode parsing berbasis log hibrida, jangan tambahkan atau hapus kolom lebih dari sekali dalam rentang waktu 10 menit. Misalnya, mengeksekusi kedua pernyataan berikut dalam waktu 10 menit menyebabkan error tugas:
ALTER TABLE test_table DROP COLUMN Flag; ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
Proyek DataHub tujuan
Satu nilai string tidak boleh melebihi panjang 2 MB.
Objek dan tipe data
DTS mendukung migrasi skema untuk: skema, tabel, tampilan, fungsi, dan prosedur tersimpan.
Jenis objek berikut tidak dimigrasikan:
Assemblies
Service brokers
Indeks teks lengkap dan katalog teks lengkap
Skema terdistribusi dan fungsi terdistribusi
Prosedur tersimpan Common Language Runtime (CLR), fungsi bernilai skalar CLR, dan fungsi bernilai tabel CLR
Tabel internal, objek sistem, dan fungsi agregat
Tabel yang berisi kolom terhitung
Tipe data SQL Server berikut tidak dimigrasikan:
| Tipe data | Catatan |
|---|---|
| CURSOR | Tidak didukung |
| ROWVERSION | Tidak didukung |
| SQL_VARIANT | Tidak didukung |
| HIERARCHYID | Tidak didukung |
| POLYGON | Tidak didukung |
| GEOMETRY | Tidak didukung |
| GEOGRAPHY | Tidak didukung |
Migrasi data inkremental
Operasi DML yang didukung: INSERT, UPDATE, DELETE.
Jika operasi UPDATE hanya memodifikasi nilai bidang besar, DTS tidak memigrasikan operasi tersebut.
Operasi reindexing tidak diperbolehkan selama migrasi data inkremental berjalan. Reindexing dapat menyebabkan tugas gagal dan berpotensi menyebabkan kehilangan data.
DTS tidak dapat memigrasikan operasi DDL yang terkait dengan kunci primer tabel yang diaktifkan CDC-nya.
Jika jumlah tabel yang diaktifkan CDC dalam satu tugas migrasi melebihi batas maksimum yang didukung oleh DTS, pemeriksaan awal gagal.
Jika tabel yang diaktifkan CDC memerlukan nilai bidang lebih besar dari 64 KB, jalankan perintah berikut pada database sumber sebelum memulai tugas:
exec sp_configure 'max text repl size', -1;Secara default, pekerjaan CDC dapat memproses data hingga 64 KB per bidang.
DTS tidak memigrasikan kunci asing. Operasi cascade dan delete yang didefinisikan pada database sumber tidak direplikasi ke tujuan.
Objek internal yang dibuat oleh DTS
DTS membuat objek berikut di database sumber untuk melacak progres migrasi:
| Mode | Objek yang dibuat |
|---|---|
| Sinkronisasi inkremental berdasarkan log database sumber | Pemicu dts_cdc_sync_ddl, tabel heartbeat dts_sync_progress, tabel riwayat DDL dts_cdc_ddl_history |
| Parsing berbasis log hibrida | Sama seperti di atas, ditambah CDC diaktifkan pada database sumber dan tabel tertentu |
Untuk tabel dengan CDC diaktifkan, atur laju ingestion maksimum menjadi 1.000 catatan per detik (RPS).
Pertimbangan lainnya
Lakukan migrasi data selama jam sepi. Migrasi data penuh meningkatkan beban baca dan tulis pada sumber dan tujuan.
Jangan gunakan alat selain DTS untuk menulis data ke proyek DataHub tujuan selama migrasi. Melakukannya dapat menyebabkan inkonsistensi data.
Beberapa instans DTS yang berbagi database SQL Server sumber yang sama menangkap data inkremental secara independen.
Jika tugas gagal, dukungan teknis DTS berusaha memulihkannya dalam waktu 8 jam. Selama pemulihan, tugas mungkin dimulai ulang dan parameter tugas (bukan parameter database) mungkin dimodifikasi. Untuk parameter yang mungkin dimodifikasi, lihat Modifikasi parameter instans.
Migrasi data penuh menggunakan operasi INSERT konkuren, yang dapat menyebabkan fragmentasi tabel di tujuan. Ukuran ruang tabel tujuan mungkin lebih besar daripada sumber setelah migrasi.
Kasus khusus
Jika sumber adalah instans ApsaraDB RDS for SQL Server, DTS secara otomatis membuat akun bernama rdsdt_dtsacct pada instans tersebut. Jangan hapus akun ini atau ubah kata sandinya selama tugas migrasi berjalan. Lihat Akun sistem.
Penagihan
| Jenis migrasi | Biaya konfigurasi tugas | Biaya transfer data |
|---|---|---|
| Migrasi skema | Gratis | Gratis (biaya berlaku hanya saat migrasi melalui Internet dari Alibaba Cloud). Lihat Ikhtisar penagihan. |
| Migrasi data inkremental | Dikenai biaya. Lihat Ikhtisar penagihan. | — |
Izin akun database yang diperlukan
| Instance | Migrasi skema | Migrasi data inkremental |
|---|---|---|
| ApsaraDB RDS for SQL Server sumber | Izin baca pada objek yang akan dimigrasikan | Izin kepemilikan pada objek yang akan dimigrasikan |
Lihat Buat akun istimewa atau akun standar dan Modifikasi izin akun.
Buat tugas migrasi
Langkah 1: Buka halaman Migrasi Data
Gunakan salah satu konsol berikut:
DTS console
Login ke Konsol DTS.
Di panel navigasi kiri, klik Data Migration.
Di pojok kiri atas, pilih wilayah tempat instans migrasi berada.
Konsol DMS
Jalur navigasi yang tepat bervariasi tergantung pada mode dan tata letak Konsol DMS. Lihat Mode simple dan Menyesuaikan tata letak dan gaya Konsol DMS.
Login ke Konsol DMS.
Di bilah navigasi atas, buka Data + AI > DTS (DTS) > Data Migration.
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
Langkah 2: Konfigurasikan tugas
Klik Create Task.
Konfigurasikan database sumber dan tujuan.
PeringatanSetelah mengonfigurasi database sumber dan tujuan, baca Limits yang ditampilkan di bagian atas halaman sebelum melanjutkan. Melewatkan langkah ini dapat menyebabkan tugas gagal atau menghasilkan inkonsistensi data.
Database sumber
Parameter Deskripsi Task Name Nama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik. Select Existing Connection Jika instans sumber telah terdaftar di DTS, pilih dari daftar drop-down. DTS akan mengisi parameter lainnya secara otomatis. Jika tidak, konfigurasikan parameter di bawah ini. Di Konsol DMS, pilih instans dari Select a DMS database instance. Lihat Kelola koneksi database. Database Type Pilih SQL Server. Access Method Pilih Alibaba Cloud Instance. Instance Region Wilayah tempat instans ApsaraDB RDS for SQL Server sumber berada. Replicate Data Across Alibaba Cloud Accounts Pilih No untuk migrasi dalam akun yang sama. RDS Instance ID ID instans ApsaraDB RDS for SQL Server sumber. Database Account Akun database untuk instans sumber. Lihat Izin akun database yang diperlukan. Database Password Kata sandi untuk akun database. Encryption Pilih Non-encrypted jika SSL dinonaktifkan pada database sumber. Pilih SSL-encrypted jika SSL diaktifkan. DTS secara default mempercayai sertifikat server. Database tujuan
Parameter Deskripsi Select Existing Connection Jika instans tujuan telah terdaftar di DTS, pilih dari daftar drop-down. DTS akan mengisi parameter lainnya secara otomatis. Jika tidak, konfigurasikan parameter di bawah ini. Lihat Kelola koneksi database. Database Type Pilih DataHub. Access Method Pilih Alibaba Cloud Instance. Instance Region Wilayah tempat proyek DataHub tujuan berada. Project Nama proyek DataHub tujuan. Klik Test Connectivity and Proceed.
Blok CIDR server DTS harus ditambahkan ke pengaturan keamanan database sumber dan tujuan. DTS dapat menambahkannya secara otomatis, atau Anda dapat menambahkannya secara manual. Lihat Tambahkan blok CIDR server DTS. Jika sumber atau tujuan adalah database yang dikelola sendiri dan tidak diakses melalui Alibaba Cloud Instance, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.
Langkah 3: Pilih objek untuk dimigrasikan
Di halaman Configure Objects, konfigurasikan parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih Schema Migration dan Incremental Data Migration. Full Data Migration tidak tersedia untuk jalur migrasi ini. Jika Anda tidak memilih Incremental Data Migration, jangan menulis data ke database sumber selama migrasi untuk menjaga konsistensi data. |
| Naming Rules of Additional Columns | Saat DTS memigrasikan data ke DataHub, DTS menambahkan kolom tambahan ke topik tujuan. Jika nama kolom ini bertabrakan dengan kolom yang sudah ada di topik, migrasi gagal. Pilih New Rule atau Previous Rule sesuai kebutuhan Anda. Periksa konflik penamaan sebelum mengonfigurasi parameter ini. Lihat Modifikasi aturan penamaan untuk kolom tambahan. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: gagal dalam pemeriksaan awal jika tujuan berisi tabel dengan nama yang sama seperti tabel sumber. Gunakan fitur pemetaan nama objek untuk menyelesaikan konflik. Lihat Pemetaan nama database, tabel, dan kolom. Ignore Errors and Proceed: melewati pemeriksaan awal untuk nama tabel yang identik. Selama migrasi penuh, catatan tujuan yang ada dengan kunci primer yang cocok tetap dipertahankan. Selama migrasi inkremental, catatan tersebut ditimpa. Jika skema berbeda, hanya beberapa kolom yang dimigrasikan, atau tugas mungkin gagal. |
| Capitalization of Object Names in Destination Instance | Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default-nya adalah DTS default policy. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
| Source Objects | Pilih objek dari daftar Source Objects, lalu klik ikon panah kanan untuk menambahkannya ke Selected Objects. Anda dapat memilih kolom, tabel, atau database. |
| Selected Objects | Untuk mengganti nama satu objek, klik kanan objek tersebut. Untuk mengganti nama beberapa objek sekaligus, klik Edit di pojok kanan atas. Lihat Ganti nama objek yang akan dimigrasikan dan Ganti nama beberapa objek yang akan dimigrasikan sekaligus. Catatan: nama database tidak dapat dipetakan—mengganti nama database dapat menyebabkan objek dependen gagal. Untuk memfilter baris menggunakan kondisi WHERE, klik kanan tabel. Lihat Tentukan kondisi filter. |
Langkah 4: Konfigurasikan pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menjadwalkan tugas pada shared cluster. Untuk stabilitas yang lebih tinggi, beli dedicated cluster. Lihat What is a DTS dedicated cluster. |
| Retry Time for Failed Connections | Rentang waktu selama DTS mencoba kembali koneksi yang gagal. Nilai yang valid: 10–1.440 menit. Default: 720 menit. Atur nilai ini minimal 30 menit. DTS melanjutkan tugas jika berhasil terhubung kembali dalam rentang waktu tersebut; jika tidak, tugas akan gagal. Catatan: Jika beberapa tugas menggunakan database sumber atau tujuan yang sama, nilai Retry Time for Failed Connections yang dikonfigurasi terakhir akan digunakan. Biaya DTS tetap berlaku selama periode percobaan koneksi ulang. |
| Retry Time for Other Issues | Rentang waktu selama DTS mencoba kembali operasi DDL atau DML yang gagal. Nilai yang valid: 1–1.440 menit. Default: 10 menit. Atur nilai ini minimal 10 menit dan selalu kurang dari nilai Retry Time for Failed Connections. |
| Enable Throttling for Incremental Data Migration | Tersedia hanya jika Incremental Data Migration dipilih. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s) untuk membatasi beban pada tujuan. |
| Environment Tag | Tag opsional untuk mengidentifikasi instans DTS. |
| Configure ETL | Pilih Yes untuk mengaktifkan fitur extract, transform, and load (ETL) dan masukkan pernyataan pemrosesan data di editor kode. Pilih No untuk melewati ETL. Lihat What is ETL? dan Configure ETL in a data migration or data synchronization task. |
| Monitoring and Alerting | Pilih Yes untuk menerima notifikasi ketika tugas gagal atau latensi migrasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Lihat Configure monitoring and alerting when you create a DTS task. |
Langkah 5: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API untuk konfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum memulai tugas migrasi. Tugas hanya dapat dimulai setelah pemeriksaan awal lolos.
Jika pemeriksaan awal gagal:
Klik View Details di samping setiap item yang gagal, analisis penyebabnya, selesaikan masalah, lalu klik Precheck Again.
Jika peringatan pemeriksaan awal dipicu:
Untuk peringatan yang tidak dapat diabaikan: klik View Details, selesaikan masalah, lalu jalankan pemeriksaan awal lagi.
Untuk peringatan yang dapat diabaikan: klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.
Langkah 6: Beli instans migrasi data
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan hal berikut:
Parameter Deskripsi Resource Group Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Resource Management? Instance Class Kelas instans menentukan kecepatan migrasi. Pilih kelas berdasarkan workload Anda. Lihat Kelas instans untuk instans migrasi data. Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK di dialog konfirmasi.
Verifikasi tugas migrasi
Setelah tugas dimulai, periksa statusnya di halaman Data Migration:
Completed: Tugas hanya mencakup migrasi skema (tanpa migrasi data inkremental). Tugas telah berhenti secara otomatis.
Running: Tugas mencakup migrasi data inkremental. Tugas berjalan terus-menerus dan tidak berhenti secara otomatis.