Layanan Transmisi Data (DTS) memungkinkan Anda memigrasikan data dari instans ApsaraDB MyBase for SQL Server ke instans ApsaraDB RDS for SQL Server dengan downtime minimal. Panduan ini memandu Anda melalui konfigurasi tugas migrasi yang mencakup migrasi skema, migrasi data penuh, dan migrasi data inkremental.
Prasyarat
Sebelum memulai, pastikan bahwa:
Instans ApsaraDB RDS for SQL Server tujuan telah dibuat. Untuk versi mesin yang didukung, lihat Ikhtisar skenario migrasi data. Untuk membuat instans, lihat Buat instans ApsaraDB RDS for SQL Server.
Instans tujuan memiliki ruang penyimpanan tersedia lebih besar daripada ukuran total data instans sumber.
Jika Anda menetapkan SQL Server Incremental Synchronization Mode ke Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables, maka mode parsing log hibrida digunakan. Versi database sumber berikut didukung:
Edisi Enterprise atau Enterprise Evaluation: SQL Server 2012, 2014, 2016, 2019, atau 2022
Edisi Standard: SQL Server 2016, 2019, atau 2022
Kapan harus membagi menjadi beberapa tugas
Pisahkan migrasi menjadi beberapa tugas jika salah satu kondisi berikut berlaku pada instans sumber:
Instans sumber berisi lebih dari 10 database.
Backup log untuk satu database dilakukan dalam interval kurang dari 1 jam.
Satu database mengeksekusi lebih dari 100 pernyataan DDL per jam.
Log ditulis dengan laju 20 MB/s untuk satu database.
Change data capture (CDC) perlu diaktifkan untuk lebih dari 1.000 tabel.
Penagihan
| Jenis migrasi | Biaya konfigurasi tugas | Biaya traffic Internet |
|---|---|---|
| Migrasi skema dan migrasi data penuh | Gratis | Gratis |
| Migrasi data inkremental | Dikenai biaya. Lihat Ikhtisar penagihan. | — |
Pilih jenis migrasi
DTS mendukung tiga jenis migrasi. Gabungkan sesuai kebutuhan Anda.
| Jenis migrasi | Fungsinya | Kapan digunakan |
|---|---|---|
| Migrasi skema | Memigrasikan skema objek yang dipilih dari sumber ke tujuan | Selalu pilih sebagai langkah pertama |
| Migrasi data penuh | Memigrasikan semua data yang ada dari sumber ke tujuan | Wajib untuk migrasi awal |
| Migrasi data inkremental | Secara terus-menerus memigrasikan perubahan data setelah migrasi penuh selesai | Pilih untuk meminimalkan downtime dan menjaga layanan tetap berjalan selama migrasi |
Untuk detail dukungan migrasi skema lengkap, lihat Objek yang didukung dan tidak didukung.
Batasan
Tinjau batasan berikut sebelum mengonfigurasi tugas.
Persyaratan database sumber
Server tempat database sumber di-deploy harus memiliki bandwidth outbound yang mencukupi. Jika tidak, kecepatan migrasi data menurun.
Tabel yang akan dimigrasikan harus memiliki kendala
PRIMARY KEYatauUNIQUE, dan semua field harus unik. Jika tidak, database tujuan mungkin berisi catatan duplikat.Satu tugas migrasi dapat memigrasikan hingga 1.000 tabel saat Anda mengganti nama tabel atau kolom selama migrasi. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau lakukan migrasi di tingkat database, bukan tingkat tabel.
Satu tugas migrasi dapat memigrasikan hingga 10 database. Untuk lebih dari 10 database, konfigurasikan beberapa tugas.
Untuk migrasi data inkremental, pastikan juga:
Fitur pencatatan data diaktifkan. Mode backup harus diatur ke Full, dan backup fisik penuh harus telah dilakukan.
Periode retensi log: Retensi log yang tidak mencukupi dapat menyebabkan tugas gagal, atau mengakibatkan inkonsistensi data atau kehilangan data. Tidak memenuhi persyaratan ini juga membatalkan service level agreement (SLA) DTS.
Hanya migrasi inkremental: simpan log lebih dari 24 jam.
Migrasi penuh + inkremental: simpan log minimal 7 hari. Setelah migrasi penuh selesai, Anda dapat mengatur retensi menjadi lebih dari 24 jam.
Untuk tabel yang diaktifkan CDC, kondisi berikut harus dipenuhi (jika tidak, pemeriksaan awal gagal):
Field
srvnamedalam tampilansys.sysserversharus sesuai dengan nilai kembali fungsiSERVERPROPERTY.Pemilik database harus
sa(SQL Server yang dikelola sendiri) atausqlsa(ApsaraDB RDS for SQL Server).Edisi Enterprise: SQL Server 2008 atau lebih baru.
Edisi Standard: SQL Server 2016 SP1 atau lebih baru.
Edisi Standard atau Enterprise yang menjalankan SQL Server 2017: upgrade ke versi yang lebih baru.
Batasan tambahan database sumber:
Jangan mengeksekusi pernyataan DDL yang mengubah skema database atau tabel selama migrasi skema dan migrasi data penuh. Hal ini menyebabkan tugas migrasi gagal.
Jika Anda hanya melakukan migrasi data penuh (tanpa inkremental), jangan menulis ke database sumber selama migrasi. Untuk menghindari inkonsistensi data, pilih ketiga jenis migrasi: migrasi skema, migrasi data penuh, dan migrasi data inkremental.
Jangan menghapus log database sumber sebelum tugas selesai. DTS menggunakan fungsi
fn_loguntuk mengambil log, yang memiliki bottleneck performa. Menghapus log terlalu dini dapat menyebabkan tugas gagal.Instans sumber read-only tidak mendukung migrasi operasi DDL.
Dalam mode parsing log hibrida, jangan melakukan beberapa operasi add-column atau drop-column pada tabel yang sama dalam rentang 10 menit. Misalnya, urutan berikut yang dieksekusi dalam 10 menit menyebabkan error:
ALTER TABLE test_table DROP COLUMN Flag; ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');Jika 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).
Batasan lainnya
DTS tidak memigrasikan tipe data berikut:
TEXT,CURSOR,ROWVERSION,SQL_VARIANT,HIERACHYID,GEOMETRY.Jika Anda menggunakan mode Incremental Synchronization Based on Logs of Source Database (non-hibrida), tabel harus memiliki clustered indexes yang berisi kolom kunci primer. Tabel heap, tabel tanpa kunci primer, tabel terkompresi, dan tabel dengan computed columns tidak didukung. Untuk melihat tabel heap, tabel tanpa kunci primer, tabel terkompresi, atau tabel dengan computed columns, lihat FAQ.
Lakukan migrasi hanya antara versi database yang kompatibel.
Jika tabel yang diaktifkan CDC dalam satu tugas migrasi melebihi 1.000, pemeriksaan awal gagal.
Kami menyarankan agar Anda mengatur jumlah maksimum catatan per detik menjadi 1.000 untuk tabel yang diaktifkan CDC di database sumber.
Migrasi data inkremental memerlukan penonaktifan trigger dan foreign keys di database tujuan.
Lakukan migrasi selama jam sepi. Migrasi data penuh menggunakan resource baca dan tulis di kedua sisi (sumber dan tujuan), yang meningkatkan beban pada server database. Operasi INSERT konkuren selama migrasi penuh juga menyebabkan fragmentasi tabel di database tujuan, sehingga ruang tabel tujuan menjadi lebih besar daripada sumber.
DTS menggunakan
ROUND(COLUMN,PRECISION)untuk mengambil nilai dari kolomFLOATdanDOUBLE. Presisi default: 38 digit untukFLOAT, 308 digit untukDOUBLE. Verifikasi bahwa pengaturan presisi ini memenuhi kebutuhan Anda sebelum memulai migrasi.DTS secara otomatis mencoba ulang tugas migrasi yang gagal hingga 7 hari. Sebelum mengalihkan beban kerja ke database tujuan, hentikan atau lepas tugas yang gagal—atau cabut izin tulis akun DTS di tujuan. Jika tidak, tugas yang dilanjutkan dapat menimpa data di tujuan dengan data dari sumber.
Jangan menjalankan operasi pengindeksan ulang selama migrasi data inkremental. Hal ini dapat menyebabkan tugas gagal dan mengakibatkan kehilangan data. DTS juga tidak dapat memigrasikan operasi DDL pada kunci primer untuk tabel yang diaktifkan CDC.
Objek yang didukung dan tidak didukung
Migrasi skema: objek yang didukung
Tabel, view, trigger, synonym, prosedur tersimpan SQL, fungsi SQL, plan guide, tipe yang ditentukan pengguna, rule, default, dan sequence.
Migrasi skema: objek yang tidak didukung
Assemblies, service brokers, indeks teks penuh, katalog teks penuh, skema terdistribusi, fungsi terdistribusi, prosedur tersimpan Common Language Runtime (CLR), fungsi bernilai skalar CLR, fungsi bernilai tabel CLR, tabel internal, objek sistem, dan fungsi agregat.
Operasi SQL yang didukung untuk migrasi data inkremental
| Jenis operasi | Pernyataan SQL yang didukung |
|---|---|
| DML | INSERT, UPDATE, DELETE. Catatan Operasi |
| DDL | ALTER TABLE (ADD COLUMN, DROP COLUMN, RENAME COLUMN saja); CREATE TABLE, CREATE INDEX (tabel partisi dan tabel dengan fungsi tidak dimigrasikan); DROP TABLE; RENAME TABLE; TRUNCATE TABLE |
Izin yang diperlukan
| Database | Migrasi skema | Migrasi data penuh | Migrasi data inkremental |
|---|---|---|---|
| Instans sumber | Izin baca pada objek yang akan dimigrasikan | owner permission pada database sumber | Lihat Buat akun dan Modifikasi izin akun. |
| Instans tujuan | Izin baca dan tulis pada database tujuan (owner permission direkomendasikan) |
Konfigurasi tugas migrasi
Langkah 1: Buka halaman Tugas Migrasi Data
Login ke Konsol Data Management (DMS).
Di bilah navigasi atas, arahkan pointer ke DTS, lalu pilih DTS (DTS) > Data Migration.
Langkah 2: Pilih wilayah
Dari daftar drop-down di sisi kanan Data Migration Tasks, pilih wilayah tempat instans migrasi Anda berada.
Langkah 3: Konfigurasi database sumber dan tujuan
Klik Create Task, lalu konfigurasi parameter berikut.
Setelah mengonfigurasi database sumber dan tujuan, baca Limits yang ditampilkan di bagian atas halaman. Melewatkan langkah ini dapat menyebabkan tugas gagal atau mengakibatkan inkonsistensi data.
Database sumber
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama deskriptif untuk tugas. DTS menghasilkan nama secara otomatis, tetapi menentukan nama yang bermakna mempermudah identifikasi tugas. Tidak perlu unik. |
| Select an existing DMS database instance (opsional) | Jika Anda telah mendaftarkan instans database DMS, pilih di sini. DTS akan mengisi otomatis parameter di bawah. Jika tidak, konfigurasi parameter secara manual. |
| Database Type | Pilih SQL Server. |
| Access Method | Pilih Alibaba Cloud Instance. Instans ApsaraDB MyBase for SQL Server terhubung ke DTS menggunakan metode akses ini. |
| Instance Region | Wilayah tempat instans ApsaraDB MyBase 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 MyBase for SQL Server sumber. |
| Database Account | Akun database untuk instans sumber. Lihat Izin yang diperlukan. |
| Database Password | Kata sandi untuk akun database. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| Select an existing DMS database instance (opsional) | Jika Anda telah mendaftarkan instans database DMS, pilih di sini. DTS akan mengisi otomatis parameter di bawah. Jika tidak, konfigurasi parameter secara manual. |
| Database Type | Pilih SQL Server. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans ApsaraDB RDS for SQL Server tujuan berada. |
| Instance ID | ID instans ApsaraDB RDS for SQL Server tujuan. |
| Database Account | Akun database untuk instans tujuan. Lihat Izin yang diperlukan. |
| Database Password | Kata sandi untuk akun database. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih alamat IP instans database Alibaba Cloud. Untuk database yang dikelola sendiri di instans Elastic Compute Service (ECS), DTS menambahkan blok CIDR ke aturan grup keamanan ECS—tetapi Anda harus memverifikasi bahwa instans ECS dapat mengakses database. Jika database berjalan di beberapa instans ECS, tambahkan secara manual blok CIDR DTS ke grup keamanan setiap instans ECS. Untuk database yang dikelola sendiri di pusat data atau lingkungan cloud pihak ketiga, tambahkan secara manual blok CIDR DTS ke daftar putih alamat IP database. Untuk daftar lengkap blok CIDR, lihat Tambahkan blok CIDR server DTS.
Menambahkan blok CIDR DTS ke daftar putih atau grup keamanan Anda menimbulkan risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan: perkuat keamanan username dan password, batasi port yang terbuka, autentikasi panggilan API, dan audit secara berkala aturan daftar putih dan grup keamanan untuk menghapus blok CIDR yang tidak sah. Anda juga dapat menghubungkan database ke DTS melalui Express Connect, VPN Gateway, atau Smart Access Gateway.
Langkah 5: Pilih objek dan konfigurasi mode sinkronisasi
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih jenis migrasi sesuai skenario Anda. Untuk migrasi penuh tanpa downtime, pilih Schema Migration, Full Data Migration, dan Incremental Data Migration. Untuk migrasi dengan jendela pemeliharaan, pilih hanya Schema Migration dan Full Data Migration—tetapi jangan menulis ke database sumber selama migrasi. |
| 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 pemetaan nama objek untuk mengganti nama tabel yang bentrok. Ignore Errors and Proceed: melewati pemeriksaan awal untuk nama tabel yang identik. Selama migrasi penuh, catatan yang bentrok di tujuan dipertahankan (tidak ditimpa). Selama migrasi inkremental, catatan yang bentrok ditimpa. Gunakan dengan hati-hati. |
| SQL Server Incremental Synchronization Mode | Lihat Pilih mode sinkronisasi di bawah. |
| Source Objects | Pilih objek dari bagian Source Objects 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 | Untuk mengganti nama satu objek, klik kanan objek tersebut dan lihat Pemetaan nama objek tunggal. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Lihat Pemetaan nama beberapa objek sekaligus. Untuk memfilter baris dengan kondisi SQL, klik kanan objek dan tentukan kondisi. Lihat Gunakan kondisi SQL untuk memfilter data. Untuk memilih operasi SQL mana yang direplikasi untuk objek tertentu, klik kanan objek dan pilih operasinya. |
Pilih mode sinkronisasi
Pilih SQL Server Incremental Synchronization Mode berdasarkan database sumber dan jenis tabel Anda.
| Mode | Keunggulan | Kekurangan |
|---|---|---|
| Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables (parsing log hibrida) | Mendukung tabel heap, tabel tanpa kunci primer, tabel terkompresi, dan tabel dengan computed columns. Stabilitas lebih tinggi dan dukungan DDL lengkap. | DTS membuat dts_cdc_sync_ddl (trigger), dts_sync_progress (tabel heartbeat), dan dts_cdc_ddl_history (tabel riwayat DDL) di database sumber, dan mengaktifkan CDC. SELECT INTO dan TRUNCATE tidak dapat dijalankan pada tabel yang diaktifkan CDC. Trigger yang dibuat DTS tidak dapat dihapus secara manual. |
| Incremental Synchronization Based on Logs of Source Database (heap tables tidak didukung) | Tidak memodifikasi pengaturan database sumber. | Tidak mendukung tabel heap, tabel tanpa kunci primer, tabel terkompresi, atau tabel dengan computed columns. Tabel harus memiliki clustered indexes yang berisi kolom kunci primer. |
| Polling and querying CDC instances for incremental synchronization | Mendukung migrasi dari Amazon RDS SQL Server, Azure SQL Database, dan Google Cloud SQL for SQL Server. Menggunakan komponen CDC native untuk stabilitas dengan bandwidth jaringan lebih rendah. | Akun DTS harus memiliki izin untuk mengaktifkan CDC. Migrasi inkremental membutuhkan waktu sekitar 10 detik untuk mulai. Dapat mengalami masalah stabilitas dan performa saat memigrasikan beberapa tabel di beberapa database. |
Langkah 6: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings, lalu konfigurasi parameter berikut.
Pengaturan verifikasi data
Untuk mengaktifkan verifikasi data setelah migrasi, lihat Aktifkan verifikasi data.
Pengaturan lanjutan
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menjadwalkan tugas ke klaster bersama. Untuk menggunakan klaster khusus, beli terlebih dahulu. Lihat Apa itu klaster khusus DTS? |
| Set Alerts | Pilih Yes untuk menerima notifikasi saat tugas gagal atau latensi migrasi melebihi ambang batas. Konfigurasi ambang batas peringatan dan pengaturan notifikasi. Lihat Konfigurasi pemantauan dan peringatan. |
| Retry Time for Failed Connections | Berapa lama DTS mencoba ulang koneksi yang gagal setelah tugas dimulai. Nilai valid: 10–1.440 menit. Default: 720. Kami menyarankan Anda mengatur parameter ini lebih dari 30. Jika DTS terhubung kembali dalam periode ini, tugas dilanjutkan. Jika tidak, tugas gagal. Jika beberapa tugas berbagi database sumber atau tujuan yang sama, waktu retry terpendek yang berlaku. DTS menagih instans selama masa percobaan ulang. |
| Retry Time for Other Issues | Berapa lama DTS mencoba ulang operasi DDL atau DML yang gagal. Nilai valid: 1–1.440 menit. Default: 10. Kami menyarankan Anda mengatur parameter ini lebih dari 10. Harus lebih pendek dari Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Pilih Yes untuk membatasi beban baca/tulis selama migrasi penuh. Konfigurasi Queries per second (QPS) to the source database, RPS of Full Data Migration, dan BPS of Full Data Migration sesuai kebutuhan. Tersedia hanya jika Full Data Migration dipilih. |
| Enable Throttling for Incremental Data Migration | Pilih Yes untuk membatasi beban selama migrasi inkremental. Konfigurasi RPS of Incremental Data Migration dan BPS of Incremental Data Migration sesuai kebutuhan. Tersedia hanya jika Incremental Data Migration dipilih. |
| Environment Tag | Tag instans sebagai Regular atau Production Environment sesuai lingkungan Anda. |
| Configure ETL | Pilih Yes untuk mengaktifkan fitur ekstrak, transformasi, dan muat (ETL) serta masukkan pernyataan pemrosesan data. Lihat Konfigurasi ETL dan Apa itu ETL? |
Langkah 7: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
DTS menjalankan pemeriksaan awal sebelum migrasi dimulai. Tugas hanya dapat dilanjutkan setelah pemeriksaan awal berhasil.
Jika item pemeriksaan gagal, klik View Details, selesaikan masalahnya, lalu klik Precheck Again.
Jika item pemeriksaan menampilkan peringatan:
Jika peringatan tidak dapat diabaikan, klik View Details, perbaiki masalahnya, lalu jalankan ulang pemeriksaan awal.
Jika peringatan dapat diabaikan dengan aman, klik Confirm Alert Details > Ignore > OK > Precheck Again. Mengabaikan peringatan dapat mengakibatkan inkonsistensi data.
Langkah 8: Beli instans
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasi hal berikut:
| Bagian | Parameter | Deskripsi |
|---|---|---|
| New Instance Class | Resource Group Settings | Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Resource Management? |
| Instance Class | Kelas instans menentukan kecepatan migrasi. Pilih berdasarkan volume data dan timeline Anda. Lihat Spesifikasi instans migrasi data. |
Langkah 9: Mulai migrasi
Baca dan centang kotak Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK di kotak dialog.
Tugas muncul di daftar tugas. Pantau perkembangannya dari sana.
Langkah selanjutnya
Setelah tugas migrasi selesai dan latensi migrasi inkremental turun mendekati nol:
Hentikan penulisan ke database sumber.
Tunggu hingga latensi migrasi inkremental mencapai 0 detik.
Alihkan string koneksi aplikasi Anda ke instans ApsaraDB RDS for SQL Server tujuan.
Verifikasi konsistensi data antara sumber dan tujuan.
Hentikan atau lepas tugas migrasi DTS.