Layanan Transmisi Data (DTS) melakukan migrasi data dari database Oracle yang dikelola sendiri ke kluster AnalyticDB for MySQL V3.0 dalam tiga fase: migrasi skema, migrasi data penuh, dan migrasi data inkremental. Menjalankan ketiga fase secara bersamaan memungkinkan layanan Anda tetap berjalan tanpa downtime selama proses migrasi.
Cara kerja
DTS menarik data dari sumber Oracle Anda dan menuliskannya ke AnalyticDB for MySQL dalam tiga fase berurutan:
Schema migration — DTS mengonversi dan membuat struktur tabel di kluster tujuan. Foreign key tidak dimigrasikan.
Full data migration — DTS menyalin seluruh data yang ada dari sumber ke tujuan. Operasi INSERT konkuren dapat menyebabkan fragmentasi tabel di kluster tujuan.
Incremental data migration — DTS membaca redo log dan archive log Oracle untuk menangkap perubahan yang sedang berlangsung dan menerapkannya ke tujuan hampir secara real time. Hanya operasi DML (INSERT, UPDATE, DELETE) yang ditangkap.
Saat DTS menulis ke AnalyticDB for MySQL V3.0, pernyataan UPDATE secara otomatis dikonversi menjadi REPLACE INTO. Operasi UPDATE pada kunci primer dikonversi menjadi DELETE + INSERT.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster AnalyticDB for MySQL V3.0 dengan kapasitas penyimpanan tersedia yang lebih besar daripada ukuran total database Oracle sumber. Lihat Buat kluster.
Database Oracle sumber berjalan dalam Mode ARSIPLOG dengan file log arsip dapat diakses dan periode retensi yang sesuai telah dikonfigurasi. Lihat Mengelola file log redo arsip.
Pencatatan tambahan diaktifkan pada database Oracle sumber, dengan
SUPPLEMENTAL_LOG_DATA_PKdanSUPPLEMENTAL_LOG_DATA_UIdiatur keYes. Jalankan perintah SQL berikut pada database Oracle sumber untuk mengaktifkan pencatatan arsip dan pencatatan tambahan:-- Aktifkan pencatatan arsip (memerlukan mode ARCHIVELOG) -- Verifikasi mode saat ini: SELECT LOG_MODE FROM V$DATABASE; -- Aktifkan pencatatan tambahan di tingkat database ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; -- Aktifkan pencatatan tambahan kunci primer ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; -- Aktifkan pencatatan tambahan indeks unik ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS; -- Verifikasi status pencatatan tambahan SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE; -- Yang diharapkan: SUPPLEMENTAL_LOG_DATA_PK = YES, SUPPLEMENTAL_LOG_DATA_UI = YESUntuk informasi lebih lanjut, lihat Pencatatan tambahan dan Konfigurasi database Oracle.
Pemahaman tentang kemampuan dan batasan DTS untuk migrasi database Oracle. Advanced Database & Application Migration (ADAM) digunakan untuk evaluasi database guna membantu memastikan migrasi lancar ke cloud. Lihat Persiapkan database Oracle dan Ikhtisar.
Akun database pada database Oracle sumber dengan izin yang diperlukan. Lihat Izin yang diperlukan.
Akun database pada kluster AnalyticDB for MySQL V3.0 tujuan dengan izin baca dan tulis.
Untuk versi database Oracle yang didukung, lihat Ikhtisar skenario migrasi data.
Izin yang diperlukan
Buat akun database untuk setiap database dan berikan izin berikut sebelum mengonfigurasi tugas migrasi. Lewati langkah ini jika akun tersebut sudah ada dengan izin yang sesuai.
| Database | Schema migration | Full data migration | Incremental data migration |
|---|---|---|---|
| Database Oracle yang dikelola sendiri | Izin pemilik skema | Izin pemilik skema | Izin detail halus |
| Kluster AnalyticDB for MySQL V3.0 | Izin baca dan tulis pada database tujuan |
Untuk membuat akun dan memberikan izin:
Database Oracle yang dikelola sendiri: Lihat Persiapkan akun database, CREATE USER, dan GRANT.
Kluster AnalyticDB for MySQL V3.0: Lihat Buat akun database.
Batasan
Tinjau batasan berikut sebelum mengonfigurasi tugas.
Selama migrasi skema, DTS tidak memigrasikan foreign key dari sumber ke tujuan.
Selama migrasi data penuh dan migrasi data inkremental, DTS sementara menonaktifkan pemeriksaan kendala dan operasi kaskade pada foreign key di tingkat sesi. Operasi update dan delete kaskade pada sumber selama migrasi dapat menyebabkan ketidakkonsistenan data.
Batasan database sumber
| Kategori | Batasan |
|---|---|
| Bandwidth | Server sumber harus memiliki bandwidth keluar yang mencukupi; jika tidak, kecepatan migrasi akan menurun. |
| Oracle RAC melalui Express Connect | Tentukan alamat IP virtual (VIP) untuk database. |
| Oracle RAC melalui Express Connect, VPN Gateway, Smart Access Gateway, Database Gateway, atau Cloud Enterprise Network (CEN) | Gunakan satu VIP, bukan alamat IP Single Client Access Name (SCAN). Setelah menentukan VIP, failover node tidak didukung untuk database Oracle RAC. |
| String kosong VARCHAR2 | Oracle mengevaluasi string VARCHAR2 kosong sebagai null. Jika bidang tujuan memiliki kendala NOT NULL, tugas migrasi gagal. |
| Kendala tabel | Tabel harus memiliki kendala PRIMARY KEY atau UNIQUE dengan semua bidang unik. Tanpa kendala ini, tujuan mungkin berisi catatan duplikat. |
| Oracle 12c dan versi setelahnya | Nama tabel tidak boleh melebihi 30 byte. |
| Batasan penggantian nama tabel | Jika Anda memilih tabel sebagai objek migrasi dan perlu mengganti nama tabel atau kolom: satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau migrasikan seluruh database. |
| Migrasi inkremental: retensi log | Redo log dan archive log harus disimpan selama minimal 7 hari. Periode retensi yang lebih pendek dapat menyebabkan tugas gagal, dan dalam kasus luar biasa, ketidakkonsistenan atau kehilangan data dapat terjadi. Jika periode retensi tidak mencukupi, perjanjian tingkat layanan (SLA) DTS tidak menjamin keandalan atau kinerja. |
| Migrasi inkremental: operasi sumber | Jangan gunakan Oracle Data Pump untuk menulis data ke sumber selama migrasi inkremental. Kehilangan data dapat terjadi. |
| DDL selama migrasi | Jangan lakukan operasi DDL yang mengubah skema database atau tabel selama migrasi skema atau migrasi data penuh. Tugas akan gagal. |
| Migrasi data penuh: penulisan sumber | Jangan menulis data ke sumber selama migrasi data penuh saja (tanpa migrasi inkremental). Ketidakkonsistenan data antara sumber dan tujuan dapat terjadi. |
Batasan kluster tujuan
| Kategori | Batasan |
|---|---|
| Penggunaan disk | Jika penggunaan disk pada node mana pun di kluster AnalyticDB for MySQL V3.0 melebihi 80%, terjadi pengecualian pada tugas DTS dan tugas DTS tertunda. Perkirakan ruang yang dibutuhkan sebelum memulai dan pastikan kluster tujuan memiliki kapasitas penyimpanan yang cukup. |
| Kunci primer | Tentukan kunci primer khusus di database tujuan atau konfigurasikan Primary Key Column selama konfigurasi bidang tabel. Kunci primer yang tidak ada dapat menyebabkan kegagalan migrasi. |
| Konflik backup | Jika kluster tujuan menjalankan backup saat tugas DTS aktif, tugas DTS gagal. |
| Tabel eksternal | Tabel eksternal tidak dapat dimigrasikan. |
| Set karakter | Set karakter database sumber dan tujuan harus kompatibel. Set karakter yang tidak kompatibel dapat menyebabkan ketidakkonsistenan data atau kegagalan tugas. |
| Zona waktu | Zona waktu database sumber dan tujuan harus sama. |
| Pemulihan tugas gagal | DTS mencoba melanjutkan tugas yang gagal dalam 7 hari terakhir. Sebelum beralih beban kerja ke kluster tujuan, hentikan atau lepas tugas yang gagal, atau jalankan pernyataan REVOKE untuk mencabut izin tulis dari akun DTS. Jika tidak, tugas yang dilanjutkan dapat menimpa data tujuan. |
| Kegagalan eksekusi DDL | Jika pernyataan DDL gagal di tujuan, tugas DTS tetap berjalan. Lihat pernyataan yang gagal di log tugas. Lihat Lihat log tugas. |
| Migrasi skema | Gunakan fitur migrasi skema DTS untuk menghindari kegagalan tugas akibat tipe data yang tidak kompatibel. |
| Dampak kinerja | Migrasi data penuh meningkatkan beban pada server sumber dan tujuan. Jalankan migrasi selama jam sepi. |
| Fragmentasi tabel | Operasi INSERT konkuren selama migrasi data penuh menyebabkan fragmentasi tabel. Setelah migrasi data penuh, ruang tabel yang digunakan di tujuan lebih besar daripada di sumber. |
| Dukungan teknis DTS | Jika tugas DTS gagal, dukungan teknis mencoba memulihkannya dalam waktu 8 jam. Selama pemulihan, tugas mungkin dimulai ulang dan parameter tugas (bukan parameter database) mungkin dimodifikasi. Lihat Modifikasi parameter instans untuk parameter yang mungkin dimodifikasi. |
Penagihan
| Jenis migrasi | Biaya konfigurasi instans | Biaya lalu lintas internet |
|---|---|---|
| Migrasi skema dan migrasi data penuh | Gratis | Dikenakan biaya ketika Access Method untuk tujuan diatur ke Public IP Address. Lihat Ikhtisar penagihan. |
| Migrasi data inkremental | Dikenakan biaya. Lihat Ikhtisar penagihan. | — |
Operasi SQL yang didukung untuk migrasi inkremental
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
Pernyataan UPDATE dikonversi menjadi REPLACE INTO saat ditulis ke AnalyticDB for MySQL V3.0. Operasi UPDATE pada kunci primer dikonversi menjadi DELETE + INSERT.
Pemetaan tipe data
Untuk pemetaan tipe data dari Oracle ke MySQL, lihat Pemetaan tipe data antar database heterogen.
Buat tugas migrasi
Prosedur ini terdiri dari lima langkah:
Buka halaman Data Migration.
Konfigurasi database sumber dan tujuan.
Konfigurasi objek migrasi dan pengaturan lanjutan.
Jalankan pemeriksaan awal dan beli instans.
Pantau tugas migrasi.
Langkah 1: Buka halaman Data Migration
Gunakan salah satu metode berikut untuk membuka halaman Data Migration.
Konsol DTS
Masuk ke Konsol DTS.
Di panel navigasi kiri, klik Data Migration.
Di pojok kiri atas, pilih wilayah tempat instans migrasi berada.
Konsol DMS
Operasi aktual dapat berbeda tergantung pada mode dan tata letak konsol DMS. Lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS.
Masuk ke Konsol DMS.
Di bilah navigasi atas, arahkan kursor ke Data + AI > DTS (DTS) > Data Migration.
Dari daftar drop-down di sebelah kanan Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
Langkah 2: Konfigurasi database sumber dan tujuan
Klik Create Task.
Konfigurasi nama tugas dan database sumber.
PeringatanSetelah mengonfigurasi database sumber dan tujuan, baca Batasan yang ditampilkan di bagian atas halaman sebelum melanjutkan.
Parameter Deskripsi Task Name DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif untuk mengidentifikasi tugas. Nama tidak perlu unik. Select Existing Connection Pilih instans database terdaftar dari daftar, atau konfigurasi koneksi secara manual. Database Type Pilih Oracle. Access Method Pilih metode akses untuk database sumber. Contoh ini menggunakan Self-managed Database on ECS. Untuk metode akses lainnya, lihat Ikhtisar persiapan. Instance Region Wilayah tempat database Oracle sumber berada. ECS Instance ID ID instans Elastic Compute Service (ECS) yang menjalankan database Oracle sumber. Port Number Port layanan database Oracle sumber. Default: 1521. Oracle Type Pilih arsitektur database: Non-RAC Instance (memerlukan SID) atau RAC or PDB Instance (memerlukan Service Name). Contoh ini menggunakan RAC or PDB Instance. Database Account Akun database Oracle sumber dengan izin yang diperlukan. Database Password Kata sandi untuk akun database sumber. Konfigurasi database tujuan.
Parameter Deskripsi Select Existing Connection Pilih instans database terdaftar, atau konfigurasi koneksi secara manual. Database Type Pilih AnalyticDB for MySQL 3.0. Access Method Pilih Alibaba Cloud Instance. Instance Region Wilayah tempat kluster AnalyticDB for MySQL V3.0 tujuan berada. Instance ID ID kluster tujuan. Database Account Akun database untuk kluster tujuan dengan izin baca dan tulis. Database Password Kata sandi untuk akun database tujuan. Klik Test Connectivity and Proceed, lalu klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.
Pastikan blok CIDR server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan. Lihat Tambahkan blok CIDR server DTS.
Langkah 3: Konfigurasi objek migrasi dan pengaturan lanjutan
Di halaman Configure Objects, atur parameter migrasi.
Parameter Deskripsi Migration Types Pilih jenis migrasi sesuai kebutuhan Anda: <br>- Schema Migration + Full Data Migration: memigrasikan data yang ada tanpa perubahan inkremental. <br>- Schema Migration + Full Data Migration + Incremental Data Migration: menjaga sinkronisasi tujuan selama migrasi, memungkinkan pergantian lancar tanpa downtime. <br><br> CatatanJika Anda melewatkan Schema Migration, buat tabel target secara manual dan aktifkan pemetaan nama objek. Jika Anda melewatkan Incremental Data Migration, jangan menulis ke sumber selama migrasi.
DDL and DML Operations to Be Synchronized Operasi DDL atau DML yang akan dimigrasikan. Untuk memilih operasi untuk tabel tertentu, klik kanan tabel di Selected Objects. Merge Tables No (default): memigrasikan tabel tanpa penggabungan. Yes: menambahkan kolom __dts_data_sourceke setiap tabel dan menggabungkan semua tabel sumber yang dipilih menjadi satu tabel tujuan. Lihat Aktifkan fitur penggabungan multi-tabel. <br><br>PeringatanJangan lakukan perubahan skema DDL pada tabel sumber saat Merge Tables diaktifkan.
Processing Mode of Conflicting Tables Precheck and Report Errors (default): gagal dalam pemeriksaan awal jika tabel tujuan memiliki nama yang sama dengan tabel sumber. Ignore Errors and Proceed: melewati pemeriksaan konflik nama. <br><br> PeringatanMemilih Ignore Errors and Proceed dapat menyebabkan ketidakkonsistenan data. Selama migrasi data penuh, catatan yang bertentangan dipertahankan di tujuan tanpa pembaruan. Selama migrasi inkremental, catatan yang bertentangan ditimpa.
Capitalization of Object Names in Destination Instance Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default: DTS default policy. Lihat Tentukan kapitalisasi nama objek di instans tujuan. Source Objects Pilih objek yang akan dimigrasikan, lalu klik
untuk memindahkannya ke Selected Objects. Kolom, tabel, dan database semuanya didukung.Selected Objects Klik kanan objek tunggal untuk mengganti namanya. Klik Edit di pojok kanan atas untuk mengganti nama beberapa objek sekaligus. Lihat Pemetaan nama database, tabel, dan kolom. <br><br> CatatanMengganti nama objek dapat menyebabkan objek dependen gagal dimigrasikan. Untuk memfilter data tabel berdasarkan kondisi, klik kanan tabel dan tentukan kondisi WHERE. Lihat Tentukan kondisi filter.
Klik Next: Advanced Settings dan konfigurasi parameter lanjutan.
Parameter Deskripsi Dedicated Cluster for Task Scheduling DTS menggunakan kluster bersama secara default. Untuk menggunakan klaster khusus, lakukan pembelian secara terpisah. Lihat Apa itu klaster khusus DTS? Retry Time for Failed Connections Durasi waktu DTS mencoba kembali koneksi yang gagal setelah tugas dimulai. Nilai yang valid: 10–1.440 menit. Default: 720 menit. Atur nilai lebih dari 30 menit. Jika DTS berhasil terhubung kembali dalam periode ini, tugas akan dilanjutkan; jika tidak, tugas gagal. CatatanSaat beberapa tugas berbagi sumber atau tujuan yang sama, waktu retry yang dikonfigurasi terakhir berlaku untuk semua tugas tersebut. DTS mengenakan biaya atas instans selama masa retry.
Retry Time for Other Issues Durasi waktu DTS mencoba kembali operasi DDL atau DML yang gagal. Nilai yang valid: 1–1.440 menit. Default: 10 menit. Atur nilai lebih dari 10 menit dan pastikan nilainya kurang dari Retry Time for Failed Connections. Enable Throttling for Full Data Migration Membatasi penggunaan sumber daya baca/tulis selama migrasi data penuh. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Opsi ini tersedia hanya jika Full Data Migration dipilih. Enable Throttling for Incremental Data Migration Membatasi penggunaan sumber daya selama migrasi inkremental. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Opsi ini tersedia hanya jika Incremental Data Migration dipilih. Environment Tag Tag opsional untuk mengidentifikasi instans DTS. Actual Write Code Format encoding untuk data yang ditulis ke tujuan. Configure ETL Mengaktifkan fitur ekstrak, transformasi, dan muat (ETL). Lihat Apa itu ETL? dan Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. Monitoring and Alerting Mengonfigurasi notifikasi saat tugas gagal atau latensi melebihi ambang batas. Saat diaktifkan, tentukan ambang batas peringatan dan pengaturan notifikasi. Lihat Konfigurasi pemantauan dan peringatan saat membuat tugas DTS. Klik Next Step: Data Verification untuk mengonfigurasi tugas verifikasi data. Lihat Konfigurasi tugas verifikasi data.
(Opsional) Klik Next: Configure Database and Table Fields untuk mengatur Type, Primary Key Column, Distribution Key, Partition Key, Partitioning Rules, dan Partition Lifecycle untuk setiap tabel di kluster tujuan.
Langkah ini tersedia hanya jika Schema Migration dipilih. Atur Definition Status ke All untuk melihat dan memodifikasi semua bidang. Primary Key Column mendukung kunci primer komposit (beberapa kolom). Tentukan minimal satu kolom kunci primer sebagai Distribution Key dan Partition Key. Lihat CREATE TABLE.
Langkah 4: Jalankan pemeriksaan awal dan beli instans
Klik Next: Save Task Settings and Precheck. DTS menjalankan pemeriksaan awal sebelum memulai migrasi. Atasi semua kegagalan sebelum melanjutkan:
Untuk item yang gagal, klik View Details untuk melihat penyebabnya, perbaiki masalah, lalu klik Precheck Again.
Untuk item peringatan yang tidak dapat diabaikan, klik View Details, perbaiki masalah, lalu jalankan ulang pemeriksaan awal.
Untuk item peringatan yang dapat diabaikan, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Untuk melihat pratinjau parameter API untuk konfigurasi ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasi kelas instans.
Parameter Deskripsi Resource Group Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Manajemen Resource? Instance Class Kelas instans menentukan kecepatan migrasi. Lihat Kelas instans migrasi data. Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start > OK.
Langkah 5: Pantau tugas migrasi
Lihat progres tugas di halaman Data Migration.
Hanya migrasi penuh (tanpa inkremental): tugas berhenti otomatis saat selesai. Status menunjukkan Completed.
Dengan migrasi inkremental: tugas berjalan terus-menerus dan tidak berhenti otomatis. Status menunjukkan Running. Hentikan tugas secara manual setelah memverifikasi konsistensi data dan sebelum beralih beban kerja ke kluster tujuan.
Verifikasi hasil migrasi
Setelah tugas mencapai status Completed atau sebelum Anda beralih ke kluster tujuan, verifikasi bahwa data telah dimigrasikan dengan benar.
Sambungkan ke kluster AnalyticDB for MySQL V3.0 tujuan.
Bandingkan jumlah baris untuk tabel utama antara sumber dan tujuan:
-- Jalankan di database Oracle sumber SELECT COUNT(*) FROM <schema_name>.<table_name>; -- Jalankan di kluster AnalyticDB for MySQL V3.0 tujuan SELECT COUNT(*) FROM <table_name>;Periksa sampel catatan untuk memastikan akurasi data.
Tinjau log tugas DTS untuk peringatan atau error apa pun. Lihat Lihat log tugas.
Untuk migrasi heterogen yang melibatkan konversi tipe data, selalu verifikasi tabel kritis sebelum beralih.