Data Transmission Service (DTS) memungkinkan migrasi data dari instans ApsaraDB RDS for MySQL ke instans ApsaraDB RDS for PostgreSQL dengan downtime minimal. Panduan ini mencakup migrasi skema, migrasi data penuh, dan migrasi data inkremental.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans sumber ApsaraDB RDS for MySQL. Untuk instruksi penyiapan, lihat Create an ApsaraDB RDS for MySQL instance.
Instans tujuan ApsaraDB RDS for PostgreSQL. Untuk instruksi penyiapan, lihat Create an ApsaraDB RDS for PostgreSQL instance.
Ruang penyimpanan yang cukup tersedia pada instans tujuan untuk menampung seluruh data dari database sumber.
Penagihan
| Jenis migrasi | Biaya konfigurasi instans | Biaya lalu lintas internet |
|---|---|---|
| Migrasi skema dan migrasi data penuh | Gratis | Dikenakan biaya jika Access Method tujuan diatur ke Public IP Address. Lihat Billing overview. |
| Migrasi data inkremental | Dikenakan biaya. Lihat Billing overview. |
Jenis migrasi
DTS mendukung tiga jenis migrasi untuk skenario ini:
Schema migration — Memigrasikan skema objek yang dipilih dari sumber ke tujuan. DTS mentransfer kunci asing selama fase ini.
Full data migration — Memigrasikan seluruh data yang ada dalam objek yang dipilih dari sumber ke tujuan.
Incremental data migration — Setelah migrasi data penuh selesai, secara terus-menerus menyinkronkan perubahan baru dari sumber ke tujuan. Hal ini menjaga agar data tujuan tetap mutakhir selagi aplikasi Anda terus menulis ke sumber, sehingga memungkinkan pergantian sistem dengan downtime hampir nol. DTS menyinkronkan operasi DML berikut: INSERT, UPDATE, dan DELETE.
Batasan
Persyaratan database sumber
Tabel harus memiliki PRIMARY KEY atau kendala UNIQUE dengan semua bidang bernilai unik. Tanpa hal ini, tujuan mungkin berisi catatan duplikat.
Jika Anda mengganti nama tabel atau kolom selama migrasi, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, jalankan beberapa tugas secara batch atau migrasikan seluruh database tanpa mengganti nama.
Logging biner harus dikonfigurasi dengan benar pada instans sumber:
Logging biner harus diaktifkan. Parameter
binlog_formatharus diatur kerow, danbinlog_row_imageharus diatur kefull. Lihat View the parameters of an ApsaraDB RDS for MySQL instance. Pengaturan yang salah menyebabkan Pemeriksaan Awal gagal.Hanya untuk migrasi data inkremental: pertahankan log biner lebih dari 24 jam.
Untuk migrasi data penuh ditambah migrasi data inkremental: pertahankan log biner setidaknya selama tujuh hari. Setelah migrasi data penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam. Retensi yang tidak mencukupi menyebabkan DTS gagal membaca log biner, yang dapat mengakibatkan kegagalan tugas atau kehilangan data, serta membatalkan Service Level Agreement (SLA). Lihat Manage binary log files.
Selama migrasi skema, jangan menjalankan operasi DDL yang mengubah skema database atau tabel. Hal ini menyebabkan tugas migrasi gagal.
Batasan lainnya
Jangan gunakan alat seperti pt-online-schema-change untuk menjalankan operasi DDL pada objek yang dimigrasikan selama tugas berjalan. Hal ini dapat menyebabkan migrasi gagal.
Untuk kolom bertipe data FLOAT atau DOUBLE, DTS mengambil nilai menggunakan
ROUND(COLUMN,PRECISION). Jika Anda tidak menentukan presisi, DTS menggunakan default 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Verifikasi apakah nilai default ini memenuhi kebutuhan Anda sebelum memulai migrasi.Jalankan migrasi selama jam sepi. Migrasi data penuh mengonsumsi sumber daya baca dan tulis pada kedua sisi—sumber dan tujuan—sehingga meningkatkan beban pada kedua server database.
Setelah migrasi data penuh, ruang tabel tujuan akan lebih besar daripada sumber. Operasi INSERT konkuren selama migrasi data penuh menyebabkan fragmentasi tabel pada tujuan.
Selama migrasi penuh dan inkremental, DTS menangguhkan pemeriksaan kendala dan operasi kaskade kunci asing pada tingkat sesi. Jika pembaruan atau penghapusan kaskade terjadi di sumber selama tugas berjalan, hal ini dapat menyebabkan ketidakkonsistenan data.
DTS secara otomatis mencoba ulang tugas yang gagal hingga tujuh hari. Sebelum mengalihkan aplikasi Anda ke tujuan, hentikan atau lepas tugas migrasi—atau jalankan
REVOKEuntuk mencabut izin tulis dari akun database DTS. Jika tidak, DTS mungkin menimpa data tujuan saat mencoba ulang.
Izin yang diperlukan
Instans sumber ApsaraDB RDS for MySQL
| Jenis migrasi | Izin yang diperlukan |
|---|---|
| Schema migration | SELECT |
| Full data migration | SELECT |
| Incremental data migration | REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW, SELECT |
Untuk instruksi membuat akun dan memberikan izin, lihat Create an account dan Modify account permissions.
Instans tujuan ApsaraDB RDS for PostgreSQL
| Jenis migrasi | Izin yang diperlukan |
|---|---|
| Schema migration | CREATE dan USAGE pada objek yang dimigrasikan |
| Full data migration | Izin pemilik skema |
| Incremental data migration | Izin pemilik skema |
Untuk instruksi membuat akun, lihat Create an account.
Buat tugas migrasi
Masuk ke Konsol Data Management (DMS). Di bilah navigasi atas, klik DTS. Di panel navigasi kiri, pilih DTS (DTS) > Data Migration.
Anda juga dapat langsung menuju halaman Tugas Migrasi Data.
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi Anda berada.
Di Konsol DTS versi baru, pilih wilayah dari bilah navigasi atas.
Klik Create Task. Di wizard Create Data Synchronization Task, konfigurasikan database sumber dan tujuan.
Pengaturan database sumber:
Parameter Nilai Task Name Masukkan nama deskriptif. DTS menghasilkan nama secara otomatis, tetapi nama yang bermakna memudahkan identifikasi tugas. Nama tidak perlu unik. Database Type MySQL Access Method Alibaba Cloud Instance Instance Region Wilayah instans sumber ApsaraDB RDS for MySQL Replicate Data Across Alibaba Cloud Accounts Pilih No untuk migrasi dalam akun yang sama RDS Instance ID ID instans sumber ApsaraDB RDS for MySQL Database Account Akun database untuk instans sumber Database Password Password untuk akun database Encryption Pilih Non-encrypted atau SSL-encrypted sesuai kebutuhan Anda. Untuk menggunakan enkripsi SSL, aktifkan terlebih dahulu pada instans RDS for MySQL. Lihat Use a cloud certificate to enable SSL encryption. Destination database settings:
Parameter Nilai Database Type PostgreSQL Access Method Alibaba Cloud Instance Instance Region Wilayah instans tujuan ApsaraDB RDS for PostgreSQL Instance ID ID instans tujuan ApsaraDB RDS for PostgreSQL Database Name Database dalam instans tujuan yang akan menerima objek yang dimigrasikan Database Account Akun database untuk instans tujuan Database Password Password untuk akun database Klik Test Connectivity and Proceed.
PeringatanDTS secara otomatis menambahkan blok CIDR servernya ke daftar putih instans database Alibaba Cloud, atau ke aturan grup keamanan instans Elastic Compute Service (ECS) yang menghosting database yang dikelola sendiri. Untuk database yang dikelola sendiri di pusat data atau disediakan oleh pihak ketiga, tambahkan secara manual blok CIDR DTS. Lihat Add the CIDR blocks of DTS servers to the security settings of on-premises databases. Menambahkan blok CIDR DTS membuka potensi risiko keamanan. Lakukan tindakan pencegahan seperti menerapkan password kuat, membatasi port yang terbuka, mengaudit panggilan API, dan meninjau secara berkala entri daftar putih. Sebagai alternatif, hubungkan ke DTS menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway. Setelah tugas migrasi selesai atau dilepas, hapus blok CIDR DTS dari daftar putih atau aturan grup keamanan.
Konfigurasikan objek yang akan dimigrasikan dan pengaturan lanjutan.
Pengaturan dasar:
Parameter Deskripsi Synchronization Types Pilih jenis migrasi yang akan dijalankan: Schema Migration, Full Data Migration, dan opsional Incremental Data Migration. Untuk migrasi tanpa mengganggu aplikasi Anda, pilih ketiganya. Jika Anda melewatkan Schema Migration, buat terlebih dahulu tabel dan skema yang diperlukan di tujuan. Jika Anda melewatkan Incremental Data Migration, hentikan semua operasi tulis ke database sumber selama migrasi untuk memastikan konsistensi data. Processing Mode of Conflicting Tables Precheck and Report Errors (default): gagal dalam Pemeriksaan Awal jika tujuan memiliki tabel dengan nama yang sama seperti sumber. Gunakan object name mapping untuk mengganti nama tabel yang bentrok jika tidak dapat dihapus. Ignore Errors and Proceed: melewati pemeriksaan ini. Selama migrasi data penuh, catatan yang sudah ada dengan kunci primer yang cocok tetap dipertahankan; selama migrasi data inkremental, catatan tersebut ditimpa. Gunakan dengan hati-hati. Capitalization of Object Names in Destination Instance Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default-nya adalah DTS default policy. Lihat Specify the capitalization of object names in the destination instance. Source Objects Pilih objek dari Source Objects dan klik
untuk memindahkannya ke Selected Objects. Catatan: Nilai TIMESTAMP bernilai 0 di sumber dikonversi menjadi null di tujuan.Selected Objects Untuk mengganti nama satu objek, klik kanan objek tersebut. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Lihat Map object names. Catatan: Mengganti nama objek dapat menyebabkan migrasi objek dependen gagal. Pengaturan lanjutan:
Parameter Deskripsi 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. Retry Time for Failed Connections Rentang waktu yang ditunggu DTS sebelum menandai koneksi gagal sebagai tidak dapat dipulihkan. Nilai valid: 10–1.440 menit. Default: 120 menit. Atur minimal 30 menit. Jika DTS berhasil terhubung kembali dalam jendela ini, tugas dilanjutkan secara otomatis. Catatan: Jika beberapa tugas berbagi sumber atau tujuan yang sama, waktu coba ulang yang dikonfigurasi terakhir berlaku untuk semuanya. DTS mengenakan biaya instans selama proses coba ulang. Configure ETL Pilih Yes untuk mengaktifkan pemrosesan ekstrak, transformasi, dan muat (ETL). Masukkan pernyataan pemrosesan data di editor kode. Untuk informasi selengkapnya, lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. Klik Next: Save Task Settings and Precheck.
DTS menjalankan Pemeriksaan Awal sebelum memulai migrasi. Tugas tidak dapat dimulai hingga lulus pemeriksaan. Jika Pemeriksaan Awal gagal, klik View Details di samping setiap item yang gagal, selesaikan masalahnya, lalu klik Precheck Again. Jika peringatan dipicu: untuk peringatan yang tidak dapat diabaikan, selesaikan masalah dan periksa ulang. Untuk peringatan yang dapat diabaikan, klik Confirm Alert Details, lalu Ignore, lalu OK, lalu Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan kelas instans.
Parameter Deskripsi Resource Group Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat What is Resource Management? Instance Class Kelas instans menentukan kecepatan migrasi. Lihat Instance classes of data migration instances untuk opsi yang tersedia. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start. Di dialog konfirmasi, klik OK.
Tugas akan muncul di halaman Data Migration, tempat Anda dapat memantau progresnya.