Topik ini menjelaskan cara memigrasikan data dari database SQL Server yang dikelola sendiri ke instans Alibaba Cloud ApsaraDB RDS for SQL Server menggunakan Konsol Data Transmission Service (DTS). Anda dapat mengonfigurasi migrasi skema, migrasi data penuh, dan migrasi data inkremental secara fleksibel. Ketika ketiga jenis migrasi ini dikonfigurasikan bersama, Anda dapat memigrasikan data tanpa gangguan layanan.
Prasyarat
Anda telah membuat instans tujuan ApsaraDB RDS for SQL Server dengan ruang penyimpanan lebih besar daripada database sumber. Jika ruang tidak mencukupi, Anda perlu meningkatkan ruang instans terlebih dahulu.
Catatan penggunaan
Harap perhatikan catatan kunci berikut sebelum migrasi, mengabaikannya dapat menyebabkan kegagalan tugas atau kesalahan:
Batas jumlah database: Tugas migrasi tunggal tidak dapat memigrasikan lebih dari 10 database. Jika tidak, risiko stabilitas dan performa mungkin terjadi.
Batas jumlah tabel: Saat migrasi inkremental disertakan, jumlah tabel yang akan disinkronkan dari database sumber tidak boleh melebihi 1.000. Jika tidak, penundaan tugas atau ketidakstabilan mungkin terjadi.
Pembatasan operasi database sumber: Selama fase migrasi skema dan migrasi penuh, jangan jalankan operasi DDL (seperti memodifikasi struktur database atau tabel). Jika tidak, tugas akan gagal.
Persyaratan struktur tabel: Tabel yang akan dimigrasikan harus memiliki kunci utama atau kendala unik, dan bidang harus unik. Jika tidak, data duplikat mungkin muncul di database tujuan.
Kunci asing dan pemicu: Jika tugas migrasi mencakup migrasi data inkremental, Anda perlu menonaktifkan pemicu dan kunci asing yang telah diaktifkan di database tujuan. Jika tidak, tugas mungkin gagal atau data hilang.
Standar nama database: Jika nama database yang akan dimigrasikan tidak sesuai dengan standar definisi RDS SQL Server, Anda perlu membuat database secara manual di RDS SQL Server terlebih dahulu. Jika tidak, tugas mungkin tidak berjalan dengan benar.
Waktu retensi log data: Tugas migrasi inkremental memerlukan log data sumber untuk disimpan selama lebih dari 24 jam. Tugas migrasi penuh + inkremental memerlukan log data disimpan setidaknya selama 7 hari. Jika tidak, tugas mungkin gagal atau inkonsistensi data mungkin terjadi.
Penagihan
Jenis migrasi | Biaya konfigurasi instans | Biaya lalu lintas internet |
Migrasi skema dan migrasi data penuh | Tidak dikenakan biaya. | Ketika parameter Access Method dari database tujuan diatur ke Public IP Address, Anda akan dikenakan biaya untuk lalu lintas internet. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan. |
Migrasi data inkremental | Dikenakan biaya. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan. |
Izin yang diperlukan untuk akun database
Untuk berhasil menyelesaikan tugas migrasi data, pastikan akun database dari database sumber dan tujuan memiliki izin berikut:
Untuk pemberian izin di database SQL Server yang dikelola sendiri, lihat CREATE USER.
Anda dapat membuat akun melalui Konsol RDS dan memodifikasi izin akun sesuai kebutuhan.
Database | Migrasi skema | Migrasi penuh | Migrasi Inkremental |
Database SQL Server yang dikelola sendiri | Izin SELECT | Izin SELECT | sysadmin |
ApsaraDB RDS for SQL Server Instans | Izin baca dan tulis | ||
Persiapan
Jika Anda perlu melakukan migrasi inkremental, sebelum secara resmi mengonfigurasi tugas migrasi data, Anda perlu mengatur mode pemulihan database yang ditentukan dalam database SQL Server yang dikelola sendiri ke mode penuh (FULL) untuk memastikan bahwa log transaksi sepenuhnya tercatat. Anda juga perlu menyimpan data penuh dan data inkremental melalui cadangan logis dan cadangan log masing-masing, memberikan dasar untuk migrasi data selanjutnya.
Jika Anda perlu memigrasikan beberapa database, Anda perlu mengulangi langkah 1 hingga 3 dalam pekerjaan persiapan. Jika tidak, ketidaksesuaian data dapat terjadi.
Jalankan perintah berikut di database SQL Server yang dikelola sendiri untuk mengubah mode pemulihan database yang akan dimigrasikan ke mode penuh.
use master; GO ALTER DATABASE <database name to be migrated> SET RECOVERY FULL WITH ROLLBACK IMMEDIATE; GOContoh:
use master; GO ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE; GOJalankan perintah berikut untuk melakukan cadangan logis pada database yang akan dimigrasikan. Jika Anda sudah melakukan cadangan logis, Anda dapat melewati langkah ini.
BACKUP DATABASE <database name to be migrated> TO DISK='<specify the storage path and file name of the backup file>'; GOContoh:
BACKUP DATABASE mytestdata TO DISK='D:\backup\dbdata.bak'; GOJalankan perintah berikut untuk mencadangkan log dari database yang akan dimigrasikan.
BACKUP LOG <database name to be migrated> to DISK='<specify the storage path and file name of the backup file>' WITH init; GOContoh:
BACKUP LOG mytestdata TO DISK='D:\backup\dblog.bak' WITH init; GO
Prosedur
Kunjungi Konsol Data Transmission Service (DTS).
Di panel navigasi di sebelah kiri, klik Data Migration, dan pilih Wilayah di bagian atas.
Klik Create Task, dan konfigurasikan informasi database sumber dan tujuan.
Kategori
Parameter
Deskripsi
Tidak tersedia
Task Name
Konfigurasikan nama dengan makna bisnis (tidak ada persyaratan unik) agar mudah diidentifikasi nanti; atau gunakan nama tugas yang dibuat oleh sistem.
Source Database
Select Existing Connection
Jika Anda sudah memasukkan informasi database sumber pada halaman Manajemen Koneksi Data DTS, Anda dapat langsung memilih database yang telah dimasukkan di sini, sehingga Anda tidak perlu memasukkan informasi database sumber secara manual nanti.
Database Type
Pilih SQL Server.
Connection Type
Pilih Public IP Address.
CatatanSaat memilih database yang dikelola sendiri, Anda juga perlu melakukan persiapan yang sesuai.
Instance Region
Pilih wilayah tempat database SQL Server yang dikelola sendiri berada.
Hostname Or IP Address
Masukkan alamat akses untuk database SQL Server yang dikelola sendiri. Dalam contoh ini, masukkan alamat IP publik.
Port Number
Masukkan port layanan untuk database SQL Server yang dikelola sendiri. Secara default adalah 1433.
Database Account
Masukkan akun database dari SQL Server yang dikelola sendiri. Untuk persyaratan izin, lihat Izin yang diperlukan untuk akun database.
Database Password
Kata sandi yang digunakan untuk mengakses instansiasi database.
Encryption
Jika database sumber belum mengaktifkan enkripsi SSL, pilih Non-encrypted.
Jika database sumber telah mengaktifkan enkripsi SSL, pilih SSL-encrypted, dan DTS akan mempercayai sertifikat server secara default.
Destination Database
Select Existing Connection
Jika Anda sudah memasukkan informasi database tujuan pada halaman Manajemen Koneksi Data DTS, Anda dapat langsung memilih database yang telah dimasukkan di sini, sehingga Anda tidak perlu memasukkan informasi database tujuan secara manual nanti.
Database Type
Pilih SQL Server.
Connection Type
Pilih Alibaba Cloud Instance.
Instance Region
Pilih wilayah tempat instans ApsaraDB RDS for SQL Server tujuan berada.
Instance ID
Pilih ID instans ApsaraDB RDS for SQL Server tujuan.
Database Account
Masukkan akun database dari instans ApsaraDB RDS for SQL Server tujuan. Untuk persyaratan izin, lihat Izin yang diperlukan untuk akun database.
Database Password
Kata sandi yang digunakan untuk mengakses instansiasi database.
Encryption
Jika database tujuan belum mengaktifkan enkripsi SSL, pilih Non-encrypted.
Jika database tujuan telah mengaktifkan enkripsi SSL, pilih SSL-encrypted, dan DTS akan mempercayai sertifikat server secara default.
Setelah konfigurasi selesai, klik Test Connectivity and Proceed di bagian bawah halaman. Dalam kotak dialog CIDR Blocks of DTS Servers yang muncul, klik Test Connectivity.
PentingPastikan Anda telah menambahkan rentang alamat IP layanan DTS ke pengaturan keamanan database sumber untuk mengizinkan akses dari server DTS.
Konfigurasikan objek yang akan dimigrasikan.
Di halaman Configure Objects, konfigurasikan objek yang ingin Anda migrasikan.
Parameter
Deskripsi
Migration Types
Untuk migrasi data penuh: Kami merekomendasikan Anda memilih Schema Migration dan Full Data Migration.
Untuk migrasi tanpa downtime: Kami merekomendasikan Anda memilih Schema Migration, Full Data Migration, dan Incremental Data Migration.
CatatanUntuk informasi lebih lanjut, lihat Lampiran 1: Operasi SQL yang mendukung migrasi data inkremental dan Lampiran 2: Objek yang mendukung migrasi skema.
Jika Anda tidak memilih Schema Migration, pastikan bahwa database dan tabel yang akan menerima data ada di database tujuan. Berdasarkan kebutuhan bisnis Anda, Anda dapat menggunakan fitur pemetaan kolom di bagian Selected Objects.
Jika Anda tidak memilih Incremental Data Migration, untuk memastikan konsistensi data, jangan menulis data baru ke database sumber selama migrasi data.
Method to Migrate Triggers in Source Database
Pilih metode untuk memigrasikan triggers sesuai kebutuhan. Jika objek yang ingin Anda migrasikan tidak melibatkan triggers, Anda tidak perlu mengonfigurasi parameter ini. Untuk informasi lebih lanjut, lihat Konfigurasikan metode untuk menyinkronkan atau memigrasikan triggers.
CatatanAnda hanya dapat mengonfigurasi parameter ini ketika Anda memilih Migration Types, Schema Migration, dan Incremental Data Migration.
SQL Server Incremental Synchronization Mode
CatatanParameter ini tersedia hanya ketika Migration Types mencakup Incremental Data Migration.
The maximum number of tables for which CDC is enabled that DTS supports.
Silakan atur jumlah tabel yang masuk akal untuk mengaktifkan CDC untuk instance migrasi saat ini. Nilai defaultnya adalah 1000.
CatatanKetika SQL Server Incremental Synchronization Mode diatur ke Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported), item konfigurasi ini tidak akan muncul.
Processing Mode of Conflicting Tables
Precheck and Report Errors: DTS memeriksa apakah tabel dengan nama yang sama ada di database tujuan. Jika tidak ada tabel dengan nama yang sama di database tujuan, pemeriksaan awal berhasil dan tugas migrasi data dimulai. Jika tidak, kesalahan akan dilaporkan selama pemeriksaan awal dan tugas migrasi data tidak dimulai.
Solusi: Jika Anda tidak dapat menghapus atau mengubah nama tabel dengan nama yang sama di database tujuan, Anda dapat mengubah nama tabel di database tujuan dengan mengonfigurasi pemetaan nama objek.
Ignore Errors and Proceed: DTS melewati pemeriksaan awal untuk tabel dengan nama yang sama di database tujuan.
PeringatanJika Anda memilih Ignore Errors and Proceed, ketidaksesuaian data mungkin terjadi dan bisnis Anda mungkin terpapar risiko. Contohnya:
Jika tabel sumber dan tujuan memiliki skema yang sama dan sebuah catatan di tabel tujuan memiliki nilai kunci primer yang sama dengan catatan di tabel sumber:
Selama migrasi data penuh, DTS mempertahankan catatan yang ada di tabel tujuan dan tidak memigrasikan catatan dengan nilai kunci primer yang sama dari tabel sumber ke tabel tujuan.
Selama migrasi data inkremental, data di tabel tujuan mungkin ditimpa oleh data baru dari tabel sumber, yang mengakibatkan kehilangan data di tabel tujuan.
Jika tabel sumber dan tujuan memiliki skema yang berbeda, hanya beberapa kolom yang dapat dimigrasikan atau tugas migrasi data mungkin gagal. Lanjutkan dengan hati-hati.
Source Objects
Pilih satu atau lebih objek dari bagian Source Objects. Klik ikon
untuk menambahkan objek ke bagian Selected Objects. CatatanAnda dapat memilih kolom, tabel, atau skema sebagai objek yang akan dimigrasikan. Jika Anda memilih tabel atau kolom sebagai objek yang akan dimigrasikan, DTS tidak akan memigrasikan objek lain seperti view, trigger, atau prosedur tersimpan ke database tujuan.
Selected Objects
Untuk mengubah nama objek yang ingin Anda migrasikan ke instance tujuan, klik kanan objek di bagian Selected Objects. Untuk informasi lebih lanjut, lihat Pemetaan nama objek tunggal.
Untuk mengubah nama beberapa objek sekaligus, klik Batch Edit di sudut kanan atas bagian Selected Objects. Untuk informasi lebih lanjut, lihat Pemetaan beberapa nama objek sekaligus.
CatatanJika Anda menggunakan fitur pemetaan nama objek, objek yang bergantung pada objek yang diubah namanya mungkin gagal dimigrasikan.
Untuk mengatur kondisi WHERE untuk memfilter data, klik kanan tabel yang akan dimigrasikan di Selected Objects dan atur kondisi filter di kotak dialog yang muncul.
Untuk memilih operasi SQL yang akan dimigrasikan pada tingkat database atau tabel, klik kanan objek yang akan dimigrasikan di Selected Objects dan pilih operasi SQL yang ingin Anda migrasikan di kotak dialog yang muncul.
Klik Next: Advanced Settings untuk mengonfigurasi pengaturan lanjutan.
Parameter
Deskripsi
Dedicated Cluster for Task Scheduling
Secara default, DTS menjadwalkan tugas migrasi data ke klaster bersama jika Anda tidak menentukan klaster khusus. Jika Anda ingin meningkatkan stabilitas tugas migrasi data, beli klaster khusus. Untuk informasi lebih lanjut, lihat Apa itu klaster khusus DTS.
Retry Time for Failed Connections
Rentang waktu coba ulang untuk koneksi gagal. Jika database sumber atau tujuan gagal terhubung setelah tugas migrasi data dimulai, DTS segera mencoba kembali koneksi dalam rentang waktu coba ulang. Nilai valid: 10 hingga 1.440. Unit: menit. Nilai default: 720. Kami merekomendasikan Anda mengatur parameter ini ke nilai lebih besar dari 30. Jika DTS berhasil terhubung kembali ke database sumber dan tujuan dalam rentang waktu coba ulang yang ditentukan, DTS melanjutkan tugas migrasi data. Jika tidak, tugas migrasi data gagal.
CatatanJika Anda menentukan rentang waktu coba ulang yang berbeda untuk beberapa tugas migrasi data yang berbagi database sumber atau tujuan yang sama, nilai yang ditentukan terakhir akan berlaku.
Saat DTS mencoba kembali koneksi, Anda akan dikenakan biaya untuk instance DTS. Kami merekomendasikan Anda menentukan rentang waktu coba ulang berdasarkan kebutuhan bisnis Anda. Anda juga dapat melepaskan instance DTS secepat mungkin setelah database sumber dan instance tujuan dilepaskan.
Retry Time for Other Issues
Rentang waktu coba ulang untuk masalah lain. Misalnya, jika operasi DDL atau DML gagal dilakukan setelah tugas migrasi data dimulai, DTS segera mencoba kembali operasi dalam rentang waktu coba ulang. Nilai valid: 1 hingga 1.440. Unit: menit. Nilai default: 10. Kami merekomendasikan Anda mengatur parameter ini ke nilai lebih besar dari 10. Jika operasi gagal berhasil dilakukan dalam rentang waktu coba ulang yang ditentukan, DTS melanjutkan tugas migrasi data. Jika tidak, tugas migrasi data gagal.
PentingNilai parameter Retry Time for Other Issues harus lebih kecil dari nilai parameter Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Menentukan apakah akan mengaktifkan pembatasan untuk migrasi data penuh. Selama migrasi data penuh, DTS menggunakan sumber daya baca dan tulis dari database sumber dan tujuan. Hal ini dapat meningkatkan beban server database. Anda dapat mengaktifkan pembatasan untuk migrasi data penuh berdasarkan kebutuhan bisnis Anda. Untuk mengonfigurasi pembatasan, Anda harus mengonfigurasi parameter Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Ini mengurangi beban server database tujuan.
CatatanAnda hanya dapat mengonfigurasi parameter ini jika Anda memilih Full Data Migration untuk parameter Migration Types.
Enable Throttling for Incremental Data Migration
Menentukan apakah akan mengaktifkan pembatasan untuk migrasi data inkremental. Untuk mengonfigurasi pembatasan, Anda harus mengonfigurasi parameter RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Ini mengurangi beban server database tujuan.
CatatanAnda hanya dapat mengonfigurasi parameter ini jika Anda memilih Incremental Data Migration untuk parameter Migration Types.
Environment Tag
Tag lingkungan yang digunakan untuk mengidentifikasi instance DTS. Anda dapat memilih tag lingkungan berdasarkan kebutuhan bisnis Anda. Dalam contoh ini, Anda tidak perlu mengonfigurasi parameter ini.
Configure ETL
Menentukan apakah akan mengaktifkan fitur ekstrak, transformasi, dan muat (ETL). Untuk informasi lebih lanjut, lihat Apa itu ETL? Nilai valid:
Yes: mengonfigurasi fitur ETL. Anda dapat memasukkan pernyataan pemrosesan data di editor kode. Untuk informasi lebih lanjut, lihat Konfigurasikan ETL dalam tugas migrasi data atau tugas sinkronisasi data.
No: tidak mengonfigurasi fitur ETL.
Monitoring and Alerting
Menentukan apakah akan mengonfigurasi peringatan untuk tugas migrasi data. Jika tugas gagal atau latensi migrasi melebihi ambang batas yang ditentukan, kontak peringatan menerima notifikasi. Nilai valid:
No: tidak mengonfigurasi peringatan.
Yes: mengonfigurasi peringatan. Dalam hal ini, Anda juga harus mengonfigurasi ambang batas peringatan dan pengaturan notifikasi peringatan. Untuk informasi lebih lanjut, lihat bagian Konfigurasikan pemantauan dan peringatan saat Anda membuat tugas DTS dari topik Konfigurasikan pemantauan dan peringatan.
Klik Next Step: Data Verification untuk mengonfigurasi tugas verifikasi data.
Untuk informasi lebih lanjut tentang cara menggunakan fitur verifikasi data, lihat Konfigurasikan tugas verifikasi data.
Simpan pengaturan tugas dan jalankan pemeriksaan awal.
Untuk melihat parameter yang harus ditentukan saat Anda memanggil operasi API terkait untuk mengonfigurasi tugas DTS, gerakkan pointer ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
Jika Anda tidak perlu melihat atau sudah melihat parameter tersebut, klik Next: Save Task Settings and Precheck di bagian bawah halaman.
CatatanSebelum Anda dapat memulai tugas migrasi data, DTS melakukan pemeriksaan awal. Anda hanya dapat memulai tugas migrasi data setelah tugas tersebut lulus pemeriksaan awal.
Jika tugas gagal lulus pemeriksaan awal, klik View Details di sebelah setiap item yang gagal. Setelah Anda menganalisis penyebab berdasarkan hasil pemeriksaan, atasi masalah tersebut. Kemudian, jalankan pemeriksaan awal lagi.
Jika peringatan dipicu untuk suatu item selama pemeriksaan awal:
Jika item peringatan tidak dapat diabaikan, klik View Details di sebelah item yang gagal dan atasi masalah tersebut. Kemudian, jalankan pemeriksaan awal lagi.
Jika item peringatan dapat diabaikan, klik Confirm Alert Details. DiDi kotak dialog Lihat Detail, klik Ignore. Di pesan yang muncul, klik OK. Kemudian, klik Precheck Again untuk menjalankan pemeriksaan awal lagi. Jika Anda mengabaikan item peringatan, ketidaksesuaian data mungkin terjadi, dan bisnis Anda mungkin terpapar risiko potensial.
Beli sebuah instans.
Tunggu hingga Success Rate menjadi 100%. Kemudian, klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan parameter Instance Class untuk instans migrasi data. Tabel berikut menjelaskan parameter-parameter tersebut.
Bagian
Parameter
Deskripsi
New Instance Class
Resource Group
Kelompok sumber daya tempat instans migrasi data berada. Nilai default: default resource group. Untuk informasi lebih lanjut, lihat Apa itu Resource Management?
Instance Class
DTS menyediakan kelas instans yang bervariasi dalam kecepatan migrasi. Anda dapat memilih kelas instans berdasarkan skenario bisnis Anda. Untuk informasi lebih lanjut, lihat Kelas instans dari instans migrasi data.
Baca dan setujui Data Transmission Service (Pay-as-you-go) Service Terms dengan memilih kotak centang.
Klik Buy and Start. Dalam pesan yang muncul, klik OK.
Anda dapat melihat kemajuan tugas di halaman Data Migration.
CatatanJika tugas migrasi data tidak dapat digunakan untuk memigrasikan data inkremental, tugas tersebut akan otomatis berhenti. Completed ditampilkan di bagian Status .
Jika tugas migrasi data dapat digunakan untuk memigrasikan data inkremental, tugas tersebut tidak akan otomatis berhenti. Tugas migrasi data inkremental tidak pernah berhenti atau selesai. Running ditampilkan di bagian Status.
Lampiran 1: Operasi SQL yang mendukung migrasi inkremental
Operasi DML
INSERT, UPDATE, DELETE
Jika operasi UPDATE hanya memperbarui bidang Tingkat Tinggi, DTS tidak akan memigrasikan operasi tersebut.
Operasi DDL
CREATE TABLE
CatatanJika operasi CREATE TABLE membuat tabel partisi atau tabel yang berisi fungsi, DTS tidak akan memigrasikan operasi tersebut.
ALTER TABLE
Operasi ALTER TABLE hanya mencakup ADD COLUMN dan DROP COLUMN.
DROP TABLE
CREATE INDEX, DROP INDEX
Pernyataan DDL transaksional tidak dapat dimigrasikan. Sebagai contoh, DTS tidak memigrasikan operasi SQL yang berisi operasi DDL pada beberapa kolom atau operasi SQL yang berisi operasi DDL dan DML sekaligus. Kehilangan data mungkin terjadi setelah operasi SQL semacam itu dimigrasikan.
DTS tidak memigrasikan operasi DDL yang berisi tipe data yang ditentukan pengguna.
DTS tidak memigrasikan operasi DDL Online.
DTS tidak memigrasikan operasi DDL yang dilakukan pada objek dengan nama yang berisi kata kunci yang dicadangkan.
DTS tidak memigrasikan operasi DDL yang dilakukan dalam prosedur tersimpan sistem.
DTS tidak memigrasikan operasi TRUNCATE TABLE.
Lampiran 2: Objek yang mendukung migrasi struktur
DTS mendukung migrasi skema untuk jenis objek berikut: tabel, tampilan, pemicu, sinonim, prosedur tersimpan SQL, fungsi SQL, panduan rencana, tipe yang ditentukan pengguna, aturan, default, dan urutan.
DTS tidak memigrasikan skema dari assembly, service broker, 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, sistem, atau fungsi agregat.