All Products
Search
Document Center

Data Transmission Service:Migrasi data dari database Oracle yang dikelola sendiri ke instans ApsaraDB RDS for MySQL

Last Updated:Mar 29, 2026

Layanan Transmisi Data (DTS) memungkinkan migrasi data dari database Oracle yang dikelola sendiri ke instans ApsaraDB RDS for MySQL dengan downtime minimal. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental—pilih ketiganya untuk menjaga aplikasi tetap berjalan selama proses transfer data.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Memiliki database Oracle sumber dan instans ApsaraDB RDS for MySQL tujuan. Untuk membuat instans RDS for MySQL, lihat Buat instans ApsaraDB RDS for MySQL.

  • Database Oracle sumber berjalan dalam Mode ARSIPLOG, dengan file log arsip dapat diakses dan periode retensi yang sesuai telah ditetapkan. Lihat Managing Archived Redo Log Files.

  • Pencatatan tambahan diaktifkan pada database Oracle sumber, dengan SUPPLEMENTAL_LOG_DATA_PK dan SUPPLEMENTAL_LOG_DATA_UI diatur ke Yes. Lihat Supplemental Logging.

  • Untuk versi database sumber dan tujuan yang didukung, lihat Ikhtisar skenario migrasi data.

Penagihan

Jenis migrasiBiaya konfigurasi instansBiaya lalu lintas Internet
Migrasi skema dan migrasi data penuhGratisDikenakan biaya hanya jika data dimigrasikan dari Alibaba Cloud melalui Internet. Lihat Ikhtisar penagihan.
Migrasi data inkrementalDikenakan biaya. Lihat Ikhtisar penagihan.

Jenis migrasi

Jenis migrasiDeskripsi
Migrasi skemaMemigrasikan skema objek yang dipilih ke database tujuan. Tabel bersarang tidak didukung. Tabel terklaster dan tabel berbasis indeks (IOT) dikonversi menjadi tabel biasa. Indeks berbasis fungsi, indeks domain, indeks bitmap, dan indeks terbalik tidak dimigrasikan. View, sinonim, prosedur tersimpan, fungsi, paket, dan tipe yang ditentukan pengguna tidak dimigrasikan.
Migrasi data penuhMemigrasikan semua data yang ada dari database Oracle sumber ke tujuan.
Migrasi data inkrementalSetelah migrasi data penuh selesai, DTS membaca file redo log dan terus menerapkan perubahan inkremental ke tujuan. Hal ini menjaga aplikasi tetap berjalan tanpa gangguan selama jendela migrasi.
Penting

Karena Oracle dan MySQL menggunakan sistem tipe data yang berbeda, tinjau Pemetaan tipe data antar database heterogen sebelum memulai untuk memahami bagaimana data Anda akan dikonversi.

Pilih kombinasi jenis migrasi

TujuanJenis migrasi yang dipilih
Migrasi data dengan aplikasi offline (hanya migrasi penuh)Migrasi skema + Migrasi data penuh
Migrasi data dengan downtime minimalMigrasi skema + Migrasi data penuh + Migrasi data inkremental

Untuk migrasi dengan downtime minimal, setelah migrasi data penuh selesai:

  1. Tunggu hingga latensi migrasi inkremental mendekati nol.

  2. Hentikan operasi tulis ke database Oracle sumber.

  3. Biarkan perubahan terakhir direplikasi ke tujuan.

  4. Aktifkan kembali kunci asing, pemicu, atau kendala lainnya di tujuan jika diperlukan.

  5. Arahkan aplikasi Anda ke instans RDS for MySQL tujuan.

Operasi SQL untuk migrasi inkremental

Jenis operasiPernyataan SQL
DMLINSERT, UPDATE, DELETE
DDLCREATE TABLE (tabel dengan fungsi bersarang dikecualikan); ALTER TABLE dengan ADD COLUMN, DROP COLUMN, RENAME COLUMN, dan ADD INDEX; DROP TABLE; RENAME TABLE; TRUNCATE TABLE; CREATE INDEX (hanya operasi dalam akun database saat ini)

Batasan

Perilaku kunci asing

Selama migrasi skema, DTS memigrasikan kunci asing dari sumber ke tujuan. Selama migrasi data penuh dan migrasi data inkremental, DTS sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat sesi. Jika Anda menjalankan operasi kaskade atau penghapusan pada sumber selama migrasi berlangsung, ketidakkonsistenan data dapat terjadi.

Kendala database sumber

  • Bandwidth: Server yang menghosting database sumber harus memiliki bandwidth keluar yang mencukupi. Bandwidth yang tidak mencukupi akan mengurangi kecepatan migrasi.

  • Oracle RAC melalui Express Connect: Tentukan alamat IP virtual (VIP) alih-alih alamat IP Single Client Access Name (SCAN). Setelah VIP ditetapkan, failover node tidak didukung.

  • Oracle RAC melalui Express Connect, VPN Gateway, Smart Access Gateway, Gerbang Basis Data, atau Cloud Enterprise Network (CEN): Gunakan satu VIP alih-alih IP SCAN. Failover node tidak didukung setelah VIP ditetapkan.

  • String kosong VARCHAR2: Di Oracle, string VARCHAR2 kosong dievaluasi sebagai NULL. Jika kolom yang sesuai di tujuan memiliki kendala NOT NULL, tugas migrasi akan gagal.

  • Kendala kunci primer atau unik: Tabel yang akan dimigrasikan harus memiliki kendala PRIMARY KEY atau UNIQUE dengan semua field unik. Tanpa ini, catatan duplikat dapat muncul di tujuan.

  • Oracle 12c atau lebih baru: Nama tabel tidak boleh melebihi 30 byte.

  • Batas jumlah tabel saat mengganti nama objek: Jika Anda memilih tabel sebagai objek yang akan dimigrasikan dan berencana mengganti nama tabel atau kolom, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, bagi tabel tersebut ke beberapa tugas atau migrasikan seluruh database.

Retensi log untuk migrasi inkremental

Ruang lingkup migrasiRetensi log minimum
Hanya migrasi inkrementalLebih dari 24 jam
Migrasi penuh + Migrasi inkrementalMinimal 7 hari. Setelah migrasi penuh selesai, kurangi menjadi lebih dari 24 jam.

Retensi log yang tidak mencukupi dapat menyebabkan DTS kehilangan redo log atau archive log, yang berpotensi menggagalkan tugas atau menyebabkan kehilangan data. Retensi log secara langsung memengaruhi jaminan Service Level Agreement (SLA) DTS.

Operasi yang harus dihindari selama migrasi

  • Selama migrasi skema dan migrasi data penuh: Jangan jalankan operasi DDL yang mengubah skema database atau tabel. Perubahan DDL selama fase ini akan menggagalkan tugas migrasi.

  • Hanya selama migrasi penuh: Jangan menulis data ke database sumber. Gunakan Migrasi Skema + Migrasi Data Penuh + Migrasi Data Inkremental secara bersamaan untuk menjaga konsistensi data.

  • Kapan saja selama migrasi: Jangan perbarui field LONGTEXT. Melakukannya akan menggagalkan tugas migrasi.

Kendala umum

  • Jalankan migrasi selama jam sepi. DTS mengonsumsi sumber daya baca dan tulis dari sumber dan tujuan, yang meningkatkan beban server.

  • Setelah migrasi penuh, ruang tabel tujuan akan lebih besar daripada sumber karena operasi INSERT konkuren menyebabkan fragmentasi tabel.

  • DTS mencoba ulang tugas yang gagal hingga 7 hari. Sebelum beralih ke tujuan, hentikan atau hapus tugas yang gagal, atau gunakan pernyataan REVOKE untuk mencabut izin tulis akun DTS di tujuan. Jika tidak, tugas yang dilanjutkan dapat menimpa data yang telah Anda tulis ke tujuan setelah cutover.

Perilaku khusus RDS for MySQL

  • Sensitivitas huruf: Nama tabel di ApsaraDB RDS for MySQL tidak peka huruf besar/kecil. DTS mengonversi semua huruf kapital dalam nama tabel Oracle menjadi huruf kecil. Jika database Oracle Anda memiliki nama tabel yang hanya berbeda dalam kapitalisasi, mereka akan diidentifikasi sebagai duplikat, dan migrasi skema akan mengembalikan pesan "Objek sudah ada." Gunakan fitur pemetaan nama objek untuk menyelesaikan konflik penamaan sebelum memulai tugas.

  • Pembuatan database otomatis: DTS membuat database tujuan di instans RDS for MySQL secara otomatis. Jika nama database sumber tidak valid untuk MySQL, buat database secara manual terlebih dahulu. Lihat Buat database untuk instans ApsaraDB RDS for MySQL.

Siapkan akun dan izin

Izin yang diperlukan

DatabaseMigrasi skemaMigrasi data penuhMigrasi data inkremental
Oracle yang dikelola sendiriIzin pemilik skemaIzin pemilik skemaIzin detail halus
ApsaraDB RDS for MySQLIzin tulis pada database tujuanIzin tulis pada database tujuanIzin tulis pada database tujuan

Buat dan berikan izin

Oracle database:

Gunakan pernyataan CREATE USER dan GRANT untuk membuat akun dan memberikan izin yang diperlukan.

Untuk migrasi inkremental, Anda juga perlu mengaktifkan arsip dan pencatatan tambahan untuk mendapatkan perubahan inkremental. Untuk daftar lengkap izin yang diperlukan dan langkah konfigurasi, lihat Konfigurasi database Oracle.

Instans ApsaraDB RDS for MySQL:

Lihat Buat akun dan Ubah izin akun untuk membuat akun dengan izin tulis pada database tujuan.

Buat tugas migrasi

  1. Login 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 di konsol DTS baru. Untuk opsi navigasi konsol, lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS.
  2. Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi berada.

    Di konsol DTS baru, pilih wilayah di pojok kiri atas.
  3. Klik Create Task. Konfigurasikan database sumber dan tujuan.

    Peringatan

    Setelah mengonfigurasi sumber dan tujuan, baca batasan yang ditampilkan di bagian atas halaman sebelum melanjutkan. Melewatkan langkah ini dapat menyebabkan kegagalan tugas atau ketidakkonsistenan data.

    Database sumber (Oracle)

    ParameterDeskripsi
    Task NameDTS memberikan nama secara otomatis. Tentukan nama deskriptif untuk mengidentifikasi tugas. Nama unik tidak wajib.
    Database TypePilih Oracle.
    Access MethodPilih Public IP Address untuk contoh ini. Metode akses lain memerlukan penyiapan lingkungan tambahan — lihat Ikhtisar persiapan.
    Instance RegionWilayah tempat database Oracle sumber berada.
    Hostname or IP addressTitik akhir database Oracle sumber.
    Port NumberPort layanan. Default: 1521. Port harus dapat diakses melalui Internet untuk contoh ini.
    Oracle TypePilih Non-RAC Instance (konfigurasikan SID) atau RAC or PDB Instance (konfigurasikan Service Name). Contoh ini menggunakan Non-RAC Instance.
    Database AccountAkun Oracle dengan izin yang diperlukan. Lihat Siapkan akun dan izin.
    Database PasswordPassword untuk akun tersebut.

    Database tujuan (ApsaraDB RDS for MySQL)

    ParameterDeskripsi
    Database TypePilih MySQL.
    Access MethodPilih Alibaba Cloud Instance.
    Instance RegionWilayah tempat instans RDS for MySQL tujuan berada.
    RDS Instance IDID instans RDS for MySQL tujuan.
    Database AccountAkun dengan izin tulis pada database tujuan.
    Database PasswordPassword untuk akun tersebut.
    EncryptionPilih Non-encrypted atau SSL-encrypted. Untuk enkripsi SSL, aktifkan SSL pada instans RDS for MySQL terlebih dahulu — lihat Konfigurasi fitur enkripsi SSL.
  4. Jika database sumber Anda memiliki daftar putih alamat IP, tambahkan blok CIDR server DTS ke daftar putih tersebut. Lalu klik Test Connectivity and Proceed.

    Peringatan

    Menambahkan blok CIDR server DTS ke daftar putih database atau grup keamanan ECS menciptakan potensi risiko keamanan. Sebelum melanjutkan, ambil langkah perlindungan: gunakan kredensial kuat, batasi port yang terbuka, autentikasi panggilan API, dan audit aturan daftar putih secara berkala. Untuk isolasi jaringan, hubungkan melalui Express Connect, VPN Gateway, atau Smart Access Gateway.

  5. Konfigurasikan objek yang akan dimigrasikan dan pilih jenis migrasi. Untuk memfilter data berdasarkan kondisi baris, lihat Tetapkan kondisi filter. Untuk mengganti nama objek, lihat Pemetaan nama objek.

    ParameterOpsi
    Migration TypesPilih Schema Migration dan Full Data Migration untuk migrasi penuh. Pilih ketiganya (Schema Migration, Full Data Migration, dan Incremental Data Migration) untuk migrasi dengan downtime minimal. Jika Anda tidak memilih migrasi inkremental, jangan menulis ke database sumber selama migrasi berlangsung.
    Processing Mode of Conflicting TablesPrecheck and Report Errors (default): pemeriksaan awal gagal jika nama tabel identik ada di sumber dan tujuan. Gunakan ini untuk mendeteksi konflik penamaan lebih awal. Ignore Errors and Proceed: melewati pemeriksaan. Gunakan ini hanya jika Anda memahami risikonya — DTS akan melewati catatan dengan kunci primer yang cocok, dan perbedaan skema dapat menyebabkan migrasi parsial atau kegagalan tugas.
    Source ObjectsPilih objek dari daftar Source Objects dan klik ikon panah untuk menambahkannya ke Selected Objects.
    Selected ObjectsKlik kanan objek untuk mengganti namanya atau menetapkan kondisi filter WHERE. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Klik kanan tabel untuk memilih operasi SQL mana yang akan disertakan dalam migrasi inkremental. Catatan: mengganti nama objek dengan fitur pemetaan nama objek dapat menyebabkan objek dependen gagal dimigrasikan.
  6. Klik Next: Advanced Settings dan konfigurasikan parameter berikut sesuai kebutuhan.

    ParameterDescription
    Select the dedicated cluster used to schedule the taskDTS menggunakan klaster bersama secara default. Untuk menggunakan klaster khusus, Anda harus membelinya terlebih dahulu. Lihat What is a DTS dedicated cluster.
    Retry Time for Failed ConnectionsDurasi waktu DTS mencoba menghubungkan kembali koneksi yang terputus sebelum tugas dianggap gagal. Nilai yang valid: 10–1.440 menit. Nilai default: 720. Atur nilai ini minimal 30. Jika beberapa tugas menggunakan sumber atau tujuan yang sama, nilai retry time terbaru akan berlaku untuk semua tugas tersebut. Selama proses percobaan ulang, instans DTS tetap dikenai biaya.
    The wait time before a retry when other issues occur in the source and destination databasesDurasi waktu DTS menunggu sebelum mencoba kembali operasi DDL atau DML yang gagal. Nilai yang valid: 1–1.440 menit. Nilai default: 10. Atur nilai ini minimal 10. Nilai ini harus lebih kecil daripada nilai Retry Time for Failed Connections.
    Enable Throttling for Full Data MigrationMembatasi beban baca/tulis pada sumber dan tujuan selama migrasi data penuh. Konfigurasikan queries per second (QPS) ke sumber, records per second (RPS) untuk migrasi data penuh, serta kecepatan migrasi data (MB/s). Opsi ini hanya tersedia jika migrasi data penuh dipilih.
    Enable Throttling for Incremental Data MigrationMembatasi beban selama migrasi inkremental. Konfigurasikan RPS untuk migrasi data inkremental dan kecepatan migrasi data (MB/s). Opsi ini hanya tersedia jika migrasi data inkremental dipilih.
    Environment TagLabel opsional untuk mengidentifikasi instans DTS.
    Actual Write CodeFormat encoding untuk data yang ditulis ke database tujuan. Pilih sesuai kebutuhan data Anda.
    Configure ETLAktifkan untuk menerapkan transformasi extract, transform, and load (ETL) selama migrasi. Masukkan pernyataan pemrosesan data di editor kode. Lihat Configure ETL in a data migration or data synchronization task.
    Monitoring and AlertingKonfigurasikan peringatan agar kontak yang ditentukan diberi tahu ketika tugas gagal atau latensi migrasi melebihi ambang batas. Lihat Configure monitoring and alerting for a new DTS task.
  7. Klik Next: Save Task Settings and Precheck. DTS menjalankan pemeriksaan awal sebelum tugas dimulai. Jika ada item yang gagal, klik View Details untuk melihat penyebabnya, perbaiki masalah, dan jalankan pemeriksaan awal lagi. Untuk item peringatan yang dapat diabaikan dengan aman: klik Confirm Alert Details, lalu Ignore, lalu OK, dan kemudian Precheck Again. Mengabaikan item peringatan dapat menyebabkan ketidakkonsistenan data.

    Untuk meninjau parameter API yang digunakan, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview API Call.
  8. Tunggu hingga tingkat keberhasilan mencapai 100%, lalu klik Next: Purchase Instance.

  9. Baca Syarat Layanan Data Transmission Service (Pay-as-you-go) dan centang kotak untuk menyetujui.

  10. Klik Buy and Start. Lacak progres migrasi di halaman Manajemen Tugas.

Pemecahan masalah

Dua masalah berikut menyebabkan sebagian besar kegagalan migrasi Oracle ke MySQL:

Pencatatan tambahan tidak sepenuhnya dikonfigurasi

Jika tugas gagal selama migrasi inkremental dengan error terkait log, verifikasi bahwa pencatatan tambahan diaktifkan pada tingkat database dan bahwa SUPPLEMENTAL_LOG_DATA_PK dan SUPPLEMENTAL_LOG_DATA_UI keduanya diatur ke Yes. Untuk langkah konfigurasi, lihat Konfigurasi database Oracle.

Konflik kapitalisasi nama tabel

ApsaraDB RDS for MySQL tidak peka huruf besar/kecil untuk nama tabel. Jika database Oracle Anda memiliki tabel yang namanya hanya berbeda dalam kapitalisasi (misalnya, Orders dan ORDERS), DTS akan menganggapnya sebagai duplikat dan migrasi skema akan gagal dengan pesan "Objek sudah ada." Gunakan fitur pemetaan nama objek untuk mengganti nama tabel yang bertabrakan sebelum menjalankan tugas.

Langkah selanjutnya