All Products
Search
Document Center

ApsaraDB for OceanBase (Deprecated):Migrasi data dari database Oracle ke database OceanBase dalam mode kompatibel Oracle

Last Updated:Dec 30, 2025

Topik ini menjelaskan cara menggunakan layanan transmisi data untuk memigrasikan data dari database Oracle ke database OceanBase dalam mode kompatibel Oracle.

Penting

Tugas migrasi data yang berada dalam status tidak aktif terlalu lama mungkin gagal dilanjutkan, tergantung pada periode retensi log inkremental. Status tidak aktif meliputi Failed, Stopped, dan Completed. Layanan transmisi data akan melepaskan tugas migrasi data yang tetap dalam status tidak aktif lebih dari 3 hari untuk membebaskan sumber daya terkait. Kami menyarankan Anda mengonfigurasi alert untuk tugas migrasi data dan segera menangani pengecualian tugas.

Prasyarat

  • Layanan transmisi data memiliki hak istimewa untuk mengakses sumber daya cloud. Untuk informasi selengkapnya, lihat Berikan hak istimewa kepada peran untuk transmisi data.

  • Anda telah membuat pengguna database khusus untuk migrasi data di database Oracle sumber dan database OceanBase target dalam mode kompatibel Oracle, serta memberikan hak istimewa yang sesuai kepada pengguna tersebut. Untuk informasi selengkapnya, lihat Buat pengguna database.

  • Anda telah membuat database untuk database OceanBase target dalam mode kompatibel Oracle. OceanBase Database hanya mendukung migrasi tabel dan kolom, sehingga Anda harus membuat database target terlebih dahulu.

  • Anda telah mengaktifkan ARCHIVELOG untuk instans Oracle sumber dan melakukan switch file log sebelum layanan transmisi data memulai replikasi data inkremental.

  • Anda telah menginstal LogMiner di instans Oracle sumber, dan LogMiner berjalan dengan baik.

    LogMiner memungkinkan Anda memperoleh data dari log arsip instans Oracle.

  • Anda telah memastikan bahwa instans Oracle telah mengaktifkan fitur pencatatan tambahan (supplemental logging) di tingkat database atau tabel.

  • Jika Anda mengaktifkan pencatatan tambahan untuk kunci primer dan kunci unik di tingkat database, tekanan pada LogMiner Reader untuk mengambil log dan pada database Oracle akan meningkat ketika sejumlah besar log yang tidak diperlukan dihasilkan oleh tabel yang tidak perlu disinkronkan. Oleh karena itu, layanan transmisi data hanya memungkinkan Anda mengaktifkan pencatatan tambahan di tingkat tabel untuk kunci primer dan kunci unik pada database Oracle. Namun, jika Anda menentukan opsi extract-transform-load (ETL) untuk memfilter kolom selain kolom kunci primer dan kunci unik saat membuat tugas migrasi, aktifkan pencatatan tambahan untuk kolom yang sesuai atau semua kolom.

  • Sinkronisasi jam telah dikonfigurasi—misalnya dengan menggunakan layanan Network Time Protocol (NTP)—antara server Oracle sumber dan server yang menjalankan layanan transmisi data untuk menghindari risiko data. Untuk Oracle Real Application Cluster (RAC), sinkronisasi jam juga diperlukan antar instans Oracle.

Batasan

  • Batasan pada database sumber

    Jangan melakukan operasi DDL yang mengubah skema database atau tabel selama migrasi skema atau migrasi penuh. Jika dilakukan, tugas migrasi data mungkin terganggu.

  • Layanan transmisi data mendukung Oracle 10g, 11g, 12c, 18c, dan 19c. Versi 12c dan yang lebih baru menyediakan container databases (CDBs) dan pluggable databases (PDBs).

  • Layanan transmisi data hanya mendukung migrasi tabel biasa dan view.

  • Layanan transmisi data hanya mendukung migrasi objek jika nama database, nama tabel, dan nama kolom objek tersebut dienkripsi dalam ASCII tanpa karakter khusus. Karakter khusus tersebut meliputi line break, spasi, dan karakter berikut: . | " ' ` ( ) = ; / & \.

  • Layanan transmisi data tidak mendukung trigger di target ketika target berupa database. Jika trigger ada di database target, migrasi data mungkin gagal.

  • Untuk mencegah gangguan pada tugas migrasi data, layanan transmisi data tidak mendukung migrasi index-organized tables (IOTs) dari database Oracle.

  • Batasan tipe data

    • Layanan transmisi data tidak mendukung sinkronisasi inkremental pada tabel yang semua kolomnya bertipe LOB, yaitu BLOB, CLOB, atau NCLOB.

    • Jika sebuah tabel tidak memiliki kunci primer tetapi berisi data bertipe LOB, inkremental balik (reverse increment) pada tabel tersebut dapat menghasilkan kualitas data yang buruk.

  • Identifier sumber data dan akun pengguna harus bersifat unik secara global dalam sistem transmisi data.

  • Layanan transmisi data dapat mengurai hingga 5 TB log inkremental database Oracle per hari.

  • Anda tidak dapat membuat objek database yang namanya melebihi 30 byte pada database Oracle versi 11g atau lebih lama. Perhatikan bahwa Anda tidak dapat membuat objek database yang melebihi batas ini pada database OceanBase dalam mode kompatibel Oracle selama inkremental balik.

  • Secara default, layanan transmisi data tidak mendukung migrasi objek database—seperti skema, tabel, dan kolom—yang namanya melebihi 30 byte dari database Oracle versi 12c atau lebih baru. Untuk memigrasikan objek database dengan nama melebihi 30 byte, hubungi Dukungan Teknis OceanBase.

  • Layanan transmisi data tidak mendukung beberapa pernyataan UPDATE di database sumber. Misalnya, pernyataan UPDATE berikut tidak didukung:

     UPDATE TABLE_NAME SET KEY=KEY+1;

    Pada contoh di atas, TABLE_NAME adalah nama tabel, dan KEY adalah kolom kunci primer bertipe NUMERIC.

  • Virtual Private Cloud (VPC) tempat database yang dikelola sendiri berada harus berada di wilayah yang sama dengan database OceanBase.

Pertimbangan

  • Saat melakukan sinkronisasi inkremental untuk database Oracle, kami menyarankan Anda memastikan bahwa setiap file arsip di database Oracle berukuran kurang dari 2 GB.

  • File arsip harus disimpan lebih dari dua hari di database Oracle. Jika tidak, dalam kasus lonjakan jumlah file arsip, pemulihan (restore) mungkin gagal karena kurangnya file arsip yang diperlukan.

  • Jika operasi DML dilakukan untuk menukar kunci primer di database Oracle sumber, terjadi error saat layanan transmisi data mengurai log. Hal ini menyebabkan kehilangan data saat data dimigrasikan ke database target. Berikut contoh pernyataan DML yang menukar kunci primer:

    update test set c1=(case when c1=1 then 2 when c1=2 then 1 end) where c1 in (1,2);
  • Layanan transmisi data memungkinkan Anda memigrasikan data dari instans Oracle sumber yang menggunakan set karakter termasuk AL32UTF8, AL16UTF16, ZHS16GBK, dan GB18030.

    Jika database sumber menggunakan set karakter UTF-8, kami menyarankan Anda menggunakan set karakter yang kompatibel, seperti UTF-8 atau UTF-16, di database target untuk menghindari karakter acak (garbled characters).

  • Saat memigrasikan data dari database Oracle ke database OceanBase dalam mode kompatibel Oracle, jangan lakukan operasi apa pun pada tabel yang dapat mengubah nilai ROWID, seperti impor/ekspor data, ALTER TABLE, FLASHBACK TABLE, serta pemisahan atau kompaksi partisi.

    Jika operasi yang mengubah nilai ROWID—seperti pembaruan kunci partisi dan kompaksi partisi—dilakukan di database Oracle sumber, ROWID yang bergantung pada kolom tersembunyi akan dihasilkan di database OceanBase target dalam mode kompatibel Oracle, yang dapat menyebabkan kehilangan data.

  • Jika jam antar node atau antara klien dan server tidak tersinkronisasi, latensi selama sinkronisasi inkremental atau inkremental balik mungkin tidak akurat.

    Misalnya, jika jam lebih awal dari waktu standar, latensi bisa bernilai negatif. Jika jam lebih lambat dari waktu standar, latensi bisa bernilai positif.

  • Daylight Savings Time (DST) pernah diterapkan di Tiongkok, sehingga diharapkan terjadi selisih waktu satu jam antara sumber dan target untuk data bertipe TIMESTAMP(6) WITH TIME ZONE yang dihasilkan selama periode berikut: periode DST tahun 1986 hingga 1991, dan 10–17 April 1988.

  • Jika Anda memodifikasi indeks unik di target saat sinkronisasi DDL dinonaktifkan, Anda harus merestart tugas migrasi data untuk menghindari inkonsistensi data.

  • Jika alih bencana maju (forward switchover) dinonaktifkan untuk tugas migrasi data, hapus indeks unik dan pseudokolom dari database target. Jika tidak dihapus, data tidak dapat ditulis, dan pseudokolom akan dihasilkan kembali saat data diimpor ke sistem downstream, menyebabkan konflik dengan pseudokolom di database sumber.

    Jika alih bencana maju diaktifkan untuk tugas migrasi data, layanan transmisi data akan secara otomatis menghapus kolom tersembunyi dan indeks unik berdasarkan jenis tugas migrasi. Untuk informasi selengkapnya, lihat Mekanisme kolom tersembunyi layanan transmisi data.

  • Jika tabel baru tanpa kunci primer ditambahkan di database Oracle sumber selama sinkronisasi inkremental, layanan transmisi data tidak secara otomatis menghapus kolom tersembunyi dan indeks unik yang ditambahkan ke tabel tersebut di database OceanBase target dalam mode kompatibel Oracle. Anda perlu menghapusnya secara manual sebelum memulai tugas migrasi balik.

    Untuk mengonfirmasi tabel tanpa kunci primer yang ditambahkan selama sinkronisasi inkremental, lihat file manual_table.log di direktori logs/msg/.

  • Jika database sumber dan target menggunakan set karakter yang berbeda, kebijakan ekstensi panjang field akan diterapkan selama migrasi skema. Misalnya, panjang field diperpanjang 1,5 kali lipat, dan satuan panjang diubah dari BYTE menjadi CHAR.

    Hal ini memastikan bahwa data yang dienkripsi dengan set karakter berbeda di database sumber dapat dimigrasikan ke database target. Namun, setelah cut-over, data mungkin gagal ditulis kembali ke database sumber selama inkremental balik karena panjang data yang terlalu besar.

  • Jika tipe data di database sumber berisi informasi zona waktu, seperti TIMESTAMP WITH TIME ZONE, pastikan database target mendukung zona waktu tersebut dan berisi informasi zona waktu yang sesuai. Jika tidak, inkonsistensi data dapat terjadi selama migrasi data.

  • Perhatikan pertimbangan berikut jika Anda ingin menggabungkan beberapa tabel:

    • Kami menyarankan Anda mengonfigurasi pemetaan antara sumber dan target dengan menentukan aturan pencocokan.

    • Kami menyarankan Anda membuat skema di target secara manual. Jika Anda membuat skema di target menggunakan layanan transmisi data, lewati objek yang gagal pada langkah migrasi skema.

  • Periksa objek di keranjang daur ulang (recycle bin) database Oracle. Jika keranjang daur ulang berisi lebih dari 100 objek, kueri tabel internal mungkin timeout. Anda harus mengosongkan objek di keranjang daur ulang.

    • Periksa apakah recycle bin diaktifkan.

      SELECT Value FROM V$parameter WHERE Name = 'recyclebin';
    • Periksa jumlah objek di recycle bin.

      SELECT COUNT(*) FROM RECYCLEBIN;
  • Jika Anda hanya memilih Incremental Synchronization saat membuat tugas migrasi data, layanan transmisi data mensyaratkan agar log arsip database sumber dipertahankan minimal selama 48 jam.

    Jika Anda memilih Full Migration dan Incremental Synchronization saat membuat tugas migrasi data, layanan transmisi data mensyaratkan agar log arsip database sumber dipertahankan minimal selama 7 hari. Jika layanan transmisi data tidak dapat memperoleh log inkremental, tugas migrasi data mungkin gagal atau bahkan menyebabkan ketidaksesuaian data antara sumber dan target setelah migrasi.

  • Jika sumber atau target berisi objek tabel yang hanya berbeda dalam huruf besar/kecil, hasil migrasi data mungkin tidak sesuai harapan karena ketidaksensitifan terhadap huruf besar/kecil di sumber atau target.

  • Jika target adalah database OceanBase V4.1.0 atau lebih baru dalam mode kompatibel MySQL, set karakter Latin1 mendukung migrasi.

  • Untuk tugas sinkronisasi inkremental dengan database Oracle sebagai sumber—kecuali kasus di mana data inkremental diperoleh melalui Kafka—jika log dari satu transaksi tersebar di beberapa file log arsip, LogMiner tidak dapat mengembalikan data lengkap secara benar, yang dapat menyebabkan kehilangan data. Kami menyarankan Anda mengonfigurasi verifikasi penuh dan koreksi data untuk memastikan konsistensi data.

Jenis instans sumber dan target yang didukung

Pada tabel berikut, OB_Oracle merepresentasikan database OceanBase dalam mode kompatibel Oracle.

Sumber

Target

Oracle (database yang dikelola sendiri dalam VPC)

OB_Oracle (instans kluster OceanBase)

Oracle (database yang dikelola sendiri dengan alamat IP publik)

OB_Oracle (instans kluster OceanBase)

Pemetaan tipe data

Penting
  • Data bertipe CLOB dan BLOB harus berukuran kurang dari 48 MB.

  • Data bertipe ROWID, BFILE, XMLType, UROWID, UNDEFINED, dan UDT tidak dapat dimigrasikan.

  • Sinkronisasi inkremental tidak didukung untuk tabel yang berisi data bertipe LONG atau LONG RAW.

Tipe data di database Oracle

Tipe data di database OceanBase dalam mode kompatibel Oracle

CHAR(n CHAR)

CHAR(n CHAR)

CHAR(n BYTE)

CHAR(n BYTE)

NCHAR(n)

NCHAR(n)

VARCHAR2(n)

VARCHAR2(n)

NVARCHAR2(n)

NVARCHAR2(n)

NUMBER(n)

NUMBER(n)

NUMBER (p, s)

NUMBER(p,s)

RAW

RAW

CLOB

CLOB

NCLOB

NVARCHAR2

Catatan

Di database OceanBase dalam mode kompatibel Oracle, field NVARCHAR2 tidak mendukung nilai null. Jika nilai null ada di sumber, nilainya direpresentasikan sebagai string NULL.

BLOB

BLOB

REAL

FLOAT

FLOAT(n)

FLOAT

BINARY_FLOAT

BINARY_FLOAT

BINARY_DOUBLE

BINARY_DOUBLE

DATE

DATE

TIMESTAMP

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

INTERVAL YEAR(p) TO MONTH

INTERVAL YEAR(p) TO MONTH

INTERVAL DAY(p) TO SECOND

INTERVAL DAY(p) TO SECOND

LONG

CLOB

Penting

Sinkronisasi inkremental tidak didukung untuk tipe ini.

LONG RAW

BLOB

Penting

Sinkronisasi inkremental tidak didukung untuk tipe ini.

SDO_GEOMETRY

SDO_GEOMETRY

Periksa dan modifikasi konfigurasi sistem database Oracle sumber

Lakukan operasi berikut:

  1. Aktifkan ARCHIVELOG untuk database Oracle sumber.

  2. Aktifkan pencatatan tambahan (supplemental logging) di database Oracle sumber.

  3. (Opsional) Tetapkan parameter sistem database Oracle sumber.

Aktifkan ARCHIVELOG untuk database Oracle sumber

SELECT log_mode FROM v$database;

Nilai field log_mode harus archivelog. Jika tidak, lakukan langkah-langkah berikut untuk memodifikasi pengaturan:

  1. Jalankan perintah berikut untuk mengaktifkan ARCHIVELOG:

    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    ALTER DATABASE ARCHIVELOG;
    ALTER DATABASE OPEN;
  2. Jalankan perintah berikut untuk melihat path dan kuota log arsip.

    Lihat path dan kuota recovery file. Kami menyarankan Anda menetapkan parameter db_recovery_file_dest_size ke nilai yang relatif besar. Setelah Anda mengaktifkan ARCHIVELOG, Anda perlu secara berkala mengosongkan log arsip menggunakan Recovery Manager (RMAN) atau metode lainnya.

    SHOW PARAMETER db_recovery_file_dest;
  3. Modifikasi kuota log arsip berdasarkan kebutuhan bisnis.

    ALTER SYSTEM SET db_recovery_file_dest_size =50G SCOPE = BOTH;

Aktifkan pencatatan tambahan di database Oracle sumber

LogMiner Reader hanya memungkinkan Anda mengaktifkan pencatatan tambahan di tingkat tabel pada database Oracle. Jika Anda membuat tabel di database Oracle sumber selama migrasi dan tabel tersebut perlu dimigrasikan, Anda harus mengaktifkan pencatatan tambahan untuk kunci primer dan kunci unik sebelum melakukan operasi DML. Jika tidak, layanan transmisi data akan mengembalikan pengecualian yang menunjukkan log tidak lengkap.

Jika indeks tidak konsisten antara database sumber dan target, hasil ETL tidak sesuai harapan, atau kinerja migrasi tabel partisi menurun, Anda perlu melakukan operasi berikut:

  • Tambahkan parameter supplemental_log_data_pk dan supplemental_log_data_ui di tingkat database atau tabel.

  • Aktifkan pencatatan tambahan untuk kolom.

    • Aktifkan pencatatan tambahan untuk semua kolom yang terkait dengan kunci primer atau kunci unik di database sumber dan target guna mengatasi ketidaksesuaian indeks antara sumber dan target.

    • Jika ETL terlibat, tambahkan kolom terkait ETL untuk mengatasi hasil ETL yang tidak sesuai harapan.

    • Jika tabel target merupakan tabel partisi, tambahkan kolom partisi guna mengatasi penurunan kinerja penulisan akibat kegagalan partition pruning.

    Anda dapat mengeksekusi pernyataan berikut untuk memeriksa hasil operasi di atas:

    SELECT log_group_type FROM all_log_groups WHERE OWNER = '<schema_name>' AND table_name = '<table_name>';

    Jika hasil pemeriksaan mencakup ALL COLUMN LOGGING, pemeriksaan tersebut berhasil. Jika tidak, verifikasi apakah tabel ALL_LOG_GROUP_COLUMNS berisi semua kolom yang disebutkan di atas.

    Contoh pernyataan untuk mengaktifkan pencatatan tambahan pada kolom adalah sebagai berikut:

    ALTER TABLE <table_name> ADD SUPPLEMENTAL LOG GROUP <table_name_group> (c1, c2) ALWAYS;

Tabel berikut menjelaskan risiko yang mungkin terjadi saat Anda melakukan operasi DDL dalam tugas migrasi data yang sedang berjalan, serta solusi yang sesuai.

Operasi

Risiko

Solusi

CREATE TABLE (untuk membuat tabel yang perlu disinkronkan)

Jika tabel di database target adalah tabel partisi, indeks tabel di database sumber dan target tidak konsisten, atau ETL diperlukan, kinerja migrasi data mungkin terpengaruh dan ETL mungkin tidak sesuai harapan.

Pencatatan tambahan di tingkat database untuk kunci primer dan kunci unik harus diaktifkan. Aktifkan secara manual pencatatan tambahan untuk kolom yang terlibat.

Menambah, menghapus, atau memodifikasi kunci primer, kunci unik, atau kolom partisi, atau memodifikasi kolom terkait ETL

Hal ini melanggar aturan bahwa pencatatan tambahan harus diaktifkan saat startup dan dapat menyebabkan inkonsistensi data atau penurunan kinerja migrasi.

Aktifkan pencatatan tambahan berdasarkan aturan di atas.

LogMiner Reader menggunakan metode berikut untuk memeriksa apakah pencatatan tambahan diaktifkan. Jika tidak diaktifkan, LogMiner Reader akan keluar.

  • Aktifkan supplemental_log_data_pk dan supplemental_log_data_ui di tingkat database.

    Jalankan perintah berikut untuk memeriksa apakah pencatatan tambahan diaktifkan. Jika nilai kembaliannya YES, pencatatan tambahan telah diaktifkan.

    SELECT supplemental_log_data_pk, supplemental_log_data_ui FROM v$database;

    Jika pencatatan tambahan belum diaktifkan, lakukan langkah-langkah berikut:

    1. Eksekusi pernyataan berikut untuk mengaktifkan pencatatan tambahan:

      ALTER DATABASE ADD supplemental log DATA(PRIMARY KEY, UNIQUE) columns;
    2. Setelah mengaktifkan pencatatan tambahan, lakukan switch ke mode ARCHIVELOG dua kali dan tunggu lebih dari 5 menit sebelum memulai tugas. Untuk Oracle RAC, lakukan switch secara bergantian pada instans.

      ALTER SYSTEM SWITCH LOGFILE;

      Di Oracle RAC, setelah melakukan switch ke mode ARCHIVELOG beberapa kali pada satu instans, saat Anda melakukan switch ke mode ARCHIVELOG pada instans berikutnya, instans tersebut mungkin menarik log yang dihasilkan sebelum pencatatan tambahan diaktifkan.

  • Aktifkan supplemental_log_data_pk dan supplemental_log_data_ui di tingkat tabel.

    1. Eksekusi pernyataan berikut untuk memeriksa apakah supplemental_log_data_min diaktifkan di tingkat database:

      SELECT supplemental_log_data_min FROM v$database;

      Jika nilai kembaliannya YES atau IMPLICIT, pencatatan tambahan telah diaktifkan.

    2. Eksekusi pernyataan berikut untuk memeriksa apakah pencatatan tambahan di tingkat tabel diaktifkan untuk tabel yang akan disinkronkan:

      SELECT log_group_type FROM all_log_groups WHERE OWNER = '<schema_name>' AND table_name = '<table_name>';

      Satu baris dikembalikan untuk setiap jenis pencatatan tambahan. Hasilnya harus berisi ALL COLUMN LOGGING atau keduanya PRIMARY KEY LOGGING dan UNIQUE KEY LOGGING.

      Jika pencatatan tambahan di tingkat tabel belum diaktifkan, eksekusi pernyataan berikut:

      ALTER TABLE table_name ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE) COLUMNS;
    3. Setelah mengaktifkan pencatatan tambahan, lakukan switch ke mode ARCHIVELOG dua kali dan tunggu lebih dari 5 menit sebelum memulai tugas. Untuk Oracle RAC, lakukan switch secara bergantian pada instans.

      ALTER SYSTEM SWITCH LOGFILE;

(Opsional) Tetapkan parameter sistem database Oracle sumber

Kami menyarankan Anda menetapkan _log_parallelism_max ke 1. Nilai default biasanya 2.

  1. Kueri nilai parameter _log_parallelism_max dengan salah satu metode berikut:

    • Metode 1

      SELECT NAM.KSPPINM,VAL.KSPPSTVL,NAM.KSPPDESC FROM SYS.X$KSPPI NAM,SYS.X$KSPPSV VAL WHERE NAM.INDX= VAL.INDX AND NAM.KSPPINM LIKE '_%' AND UPPER(NAM.KSPPINM) LIKE '%LOG_PARALLEL%';
    • Metode 2

      SELECT VALUE FROM v$parameter WHERE name = '_log_parallelism_max';
  2. Modifikasi nilai parameter _log_parallelism_max. Pernyataan untuk memodifikasi parameter bervariasi tergantung lingkungan database.

    • Untuk database Oracle RAC:

      ALTER SYSTEM SET "_log_parallelism_max" = 1 SID = '*' SCOPE = spfile;
    • Untuk database non-Oracle RAC:

      ALTER SYSTEM SET "_log_parallelism_max" = 1 SCOPE = spfile;

    Saat memodifikasi nilai parameter _log_parallelism_max di Oracle 10g, jika pesan error write to SPFILE requested but no SPFILE specified at startup dikembalikan, lakukan operasi berikut:

    CREATE SPFILE FROM PFILE;
    SHUTDOWN IMMEDIATE;
    STARTUP;
    SHOW PARAMETER SPFILE;
  3. Setelah memodifikasi nilai _log_parallelism_max, restart instans, lakukan switch ke mode ARCHIVELOG dua kali, dan tunggu minimal 5 menit sebelum memulai tugas.

Prosedur

  1. Login ke

    ApsaraDB for OceanBase console

    Untuk informasi selengkapnya, lihat Beli tugas migrasi data.

  2. Pilih Data Transmission > Data Migration. Pada halaman yang muncul, klik Configuration untuk tugas migrasi data.

    image.png

    Jika Anda ingin mereferensikan konfigurasi tugas yang sudah ada, klik Reference Configuration. Untuk informasi selengkapnya, lihat Referensikan konfigurasi tugas migrasi data.

  3. Pada halaman Select Source and Target, konfigurasikan parameter.

    Parameter

    Deskripsi

    Migration Task Name

    Kami menyarankan Anda menetapkannya sebagai kombinasi angka dan huruf. Tidak boleh mengandung spasi dan tidak boleh melebihi 64 karakter.

    Source

    Jika Anda telah membuat sumber data Oracle, pilih dari daftar drop-down. Jika tidak, klik New Data Source di daftar drop-down dan buat di dialog yang muncul di sebelah kanan. Untuk informasi selengkapnya tentang parameter, lihat Buat sumber data Oracle.

    Target

    Jika Anda telah membuat database OceanBase dalam mode kompatibel Oracle sebagai sumber data, pilih dari daftar drop-down. Jika tidak, klik New Data Source di daftar drop-down dan buat di dialog yang muncul di sebelah kanan. Untuk informasi selengkapnya tentang parameter, lihat Buat sumber data OceanBase.

    Tag (Opsional)

    Pilih tag target dari daftar drop-down. Anda juga dapat mengklik Manage Tags untuk membuat, memodifikasi, dan menghapus tag. Untuk informasi selengkapnya, lihat Gunakan tag untuk mengelola tugas migrasi data.

  4. Klik Next. Pada halaman Select Migration Type, pilih One-way Synchronization untuk Synchronous Topology.

    Layanan transmisi data mendukung sinkronisasi satu arah dan dua arah. Topik ini menjelaskan cara mengonfigurasi tugas sinkronisasi satu arah. Untuk informasi tentang sinkronisasi dua arah, lihat Konfigurasi tugas sinkronisasi dua arah.

  5. Pilih jenis untuk tugas migrasi data saat ini.

    Jika Anda memilih One-way Synchronization untuk Synchronous Topology, jenis migrasi yang didukung adalah migrasi skema, migrasi penuh, sinkronisasi inkremental, verifikasi penuh, dan inkremental balik.

    image

    Jenis migrasi

    Deskripsi

    Schema migration

    Setelah tugas migrasi skema dimulai, layanan transmisi data memigrasikan definisi objek database (seperti tabel, indeks, constraint, komentar, dan view) dari database sumber ke database target dan secara otomatis memfilter tabel temporary.

    Full migration

    Setelah tugas migrasi penuh dimulai, layanan transmisi data memigrasikan data yang ada dari tabel di database sumber ke tabel yang sesuai di database target. Jika Anda memilih Full Migration, kami menyarankan Anda menggunakan pernyataan GATHER_SCHEMA_STATS atau GATHER_TABLE_STATS untuk mengumpulkan statistik database Oracle sebelum migrasi data.

    Incremental synchronization

    Setelah tugas sinkronisasi inkremental dimulai, layanan transmisi data menyinkronkan data yang berubah (data yang ditambahkan, dimodifikasi, atau dihapus) dari database sumber ke tabel yang sesuai di database target.

    Opsi untuk Incremental Synchronization adalah DML Synchronization dan DDL Synchronization. Anda dapat memilih opsi sesuai kebutuhan. Untuk informasi selengkapnya, lihat Konfigurasi sinkronisasi DDL/DML. Incremental Synchronization memiliki batasan berikut:

    • Sinkronisasi DDL tidak didukung saat beberapa tabel digabung menjadi satu tabel.

    • Jika Anda memilih DDL Synchronization, saat Anda melakukan operasi DDL yang tidak didukung oleh layanan transmisi data di database sumber, migrasi data mungkin terganggu.

    • Jika operasi DDL menambahkan kolom baru, definisikan kolom tersebut sebagai nullable untuk mencegah potensi gangguan pada migrasi data.

    Full verification

    Setelah tugas migrasi penuh dan sinkronisasi inkremental selesai, layanan transmisi data secara otomatis memulai tugas verifikasi penuh untuk memverifikasi tabel di database sumber dan target.

    • Jika Anda memilih Full Verification, kami menyarankan Anda mengumpulkan statistik database Oracle dan database OceanBase dalam mode kompatibel Oracle sebelum verifikasi penuh.

    • Jika Anda telah memilih Incremental Synchronization tetapi tidak memilih semua operasi DML di bagian DML Synchronization, Anda tidak dapat memilih Full Verification.

    Reverse increment

    Perubahan data yang dilakukan di database target setelah alih bencana database bisnis disinkronkan ke database sumber secara real-time melalui inkremental balik.

    Umumnya, konfigurasi sinkronisasi inkremental digunakan kembali untuk inkremental balik. Anda juga dapat menyesuaikan konfigurasi untuk inkremental balik sesuai kebutuhan.

  6. Klik Next. Pada halaman Select Migration Objects, tentukan objek migrasi untuk tugas migrasi data.

    Anda dapat memilih Specify Objects atau Match Rules untuk menentukan objek migrasi. Topik ini menjelaskan cara menggunakan Specify Objects untuk menentukan objek migrasi. Untuk informasi tentang aturan pencocokan, lihat "Pola wildcard untuk migrasi/sinkronisasi data antar database" di Konfigurasi dan modifikasi aturan pencocokan.

    Penting
    • Nama tabel yang akan dimigrasikan, serta nama kolom di dalam tabel, tidak boleh mengandung karakter Tionghoa.

    • Jika nama database atau tabel mengandung dua tanda dolar ($$), Anda tidak dapat membuat tugas migrasi.

    • Jika Anda telah memilih DDL Synchronization di halaman Select Migration Type, kami menyarankan Anda memilih objek migrasi menggunakan opsi Match Rules. Dengan demikian, semua objek baru yang memenuhi aturan migrasi akan disinkronkan. Jika Anda memilih objek migrasi menggunakan opsi Specify Objects, objek baru atau objek yang diganti namanya tidak akan disinkronkan.

    image.png

    1. Di bagian Select Migration Objects, pilih Specify Objects.

    2. Di daftar Source Object(s) bagian Specify Migration Scope, pilih objek yang akan dimigrasikan. Anda dapat memilih tabel dan view dari satu atau beberapa database.

    3. Klik > untuk menambahkannya ke daftar Target Object(s) .

    Layanan transmisi data memungkinkan Anda mengimpor objek dari file teks, mengganti nama objek target, menetapkan filter baris, melihat informasi kolom, dan menghapus satu atau semua objek migrasi.

    Catatan

    Saat Anda memilih Match Rules untuk menentukan objek migrasi, penggantian nama objek diimplementasikan berdasarkan sintaks aturan pencocokan yang ditentukan. Di area operasi, Anda hanya dapat menetapkan kondisi filter. Untuk informasi selengkapnya, lihat Konfigurasi dan modifikasi aturan pencocokan.

    Operasi

    Deskripsi

    Import objects

    1. Di daftar sebelah kanan, klik Import Objects di pojok kanan atas.

    2. Di dialog yang muncul, klik OK.

      Penting

      Operasi ini akan menimpa pilihan sebelumnya. Lakukan dengan hati-hati.

    3. Di dialog Import Objects, impor objek yang akan dimigrasikan.

      Anda dapat mengimpor file CSV untuk mengganti nama database atau tabel dan menetapkan kondisi filter baris. Untuk informasi selengkapnya, lihat Unduh dan impor pengaturan objek migrasi.

    4. Klik Validate.

      Setelah mengimpor objek migrasi, periksa validitasnya. Pemetaan field kolom saat ini tidak didukung.

    5. Setelah validasi berhasil, klik OK.

    Rename objects

    Layanan transmisi data memungkinkan Anda mengganti nama objek migrasi. Untuk informasi selengkapnya, lihat Ganti nama tabel database.

    Configure settings

    Layanan transmisi data memungkinkan Anda memfilter baris menggunakan kondisi WHERE. Untuk informasi selengkapnya, lihat Gunakan kondisi SQL untuk memfilter data.

    Anda juga dapat melihat informasi kolom objek migrasi di bagian View Columns.

    Remove one or all objects

    Layanan transmisi data memungkinkan Anda menghapus satu atau semua objek sinkronisasi yang ditambahkan ke daftar sisi kanan selama pemetaan data.

    • Hapus satu objek migrasi

      Di daftar sebelah kanan, arahkan pointer ke objek yang ingin dihapus, lalu klik Remove untuk menghapus objek migrasi.

    • Hapus semua objek migrasi

      Di daftar sebelah kanan, klik Remove All di pojok kanan atas. Di dialog yang muncul, klik OK untuk menghapus semua objek migrasi.

  7. Klik Next. Pada halaman Migration Options, konfigurasikan parameter.

    • Full migration

      Tabel berikut menjelaskan parameter untuk migrasi penuh, yang hanya ditampilkan jika Anda telah memilih One-way Synchronization dan Full Migration secara berurutan di halaman Select Migration Type.

      image

      Parameter

      Deskripsi

      Read Concurrency

      Konkurensi untuk membaca data dari sumber selama migrasi penuh. Nilai maksimum adalah 512. Konkurensi baca yang tinggi dapat menyebabkan beban berlebih pada sumber, memengaruhi bisnis.

      Write Concurrency

      Konkurensi untuk menulis data ke target selama migrasi penuh. Nilai maksimum adalah 512. Konkurensi tulis yang tinggi dapat menyebabkan beban berlebih pada target, memengaruhi bisnis.

      Full Migration Rate Limit

      Anda dapat memilih apakah akan membatasi laju migrasi penuh sesuai kebutuhan. Jika Anda memilih untuk membatasi laju migrasi penuh, Anda harus menentukan records per second (RPS) dan bytes per second (BPS). RPS menentukan jumlah maksimum baris data yang dimigrasikan ke target per detik selama migrasi penuh, dan BPS menentukan jumlah maksimum data dalam byte yang dimigrasikan ke target per detik selama migrasi penuh.

      Catatan

      Nilai RPS dan BPS yang ditentukan di sini hanya untuk pembatasan kecepatan (throttling). Kinerja migrasi penuh aktual bergantung pada faktor seperti pengaturan sumber dan target serta spesifikasi instans.

      Handle Non-empty Tables in Target Database

      Nilai yang valid adalah Ignore dan Stop Migration.

      • Jika Anda memilih Ignore, saat data yang akan dimasukkan bertentangan dengan data yang ada di tabel target, layanan transmisi data mencatat data yang bertentangan sambil mempertahankan data yang ada.

        Penting

        Jika Anda memilih Ignore, data ditarik dalam mode IN selama verifikasi penuh. Dalam kasus ini, verifikasi tidak berlaku jika target berisi data yang tidak ada di sumber, dan kinerja verifikasi menurun.

      • Jika Anda memilih Stop Migration dan tabel target berisi catatan, error yang menunjukkan migrasi tidak didukung dilaporkan selama migrasi penuh. Dalam kasus ini, Anda harus memproses data di tabel target sebelum melanjutkan migrasi.

        Penting

        Jika Anda mengklik Resume di dialog yang menampilkan error, layanan transmisi data mengabaikan error ini dan melanjutkan migrasi data. Lakukan dengan hati-hati.

      Post-Indexing

      Menentukan apakah indeks dibuat setelah migrasi penuh selesai. Post-indexing dapat mempersingkat waktu yang diperlukan untuk migrasi penuh. Untuk informasi selengkapnya tentang pertimbangan post-indexing, lihat deskripsi di bawah.

      Penting
      • Parameter ini hanya ditampilkan jika Anda telah memilih Schema Migration dan Full Migration di halaman Select Migration Type.

      • Hanya indeks kunci non-unik yang dapat dibuat setelah migrasi selesai.

      • Jika database OceanBase target mengembalikan error berikut selama pembuatan indeks, layanan transmisi data mengabaikan error tersebut dan menganggap indeks berhasil dibuat, tanpa membuatnya lagi.

        • Pesan error di database OceanBase dalam mode kompatibel MySQL: Duplicate key name.

        • Pesan error di database OceanBase dalam mode kompatibel Oracle: name is already used by an existing object.

      Jika target adalah database OceanBase dan Anda memilih Allow untuk parameter ini, parameter berikut perlu diatur:

      • DDL Concurrency for Single Index: jumlah maksimum operasi DDL konkuren yang diizinkan untuk satu indeks. Nilai yang lebih besar menunjukkan konsumsi sumber daya yang lebih tinggi dan migrasi data yang lebih cepat.

      • Maximum DDL Concurrency for Indexes: jumlah maksimum operasi DDL post-indexing yang dapat dipanggil sistem sekaligus.

      Jika post-indexing diizinkan, kami menyarankan Anda menggunakan klien CLI untuk memodifikasi parameter berikut untuk tenant bisnis berdasarkan kondisi perangkat keras OceanBase Database dan trafik bisnis Anda saat ini:

      // Tentukan batas ukuran buffer memori file.
      alter system set _temporary_file_io_area_size = '10' tenant = 'xxx'; 
      // Nonaktifkan throttling di OceanBase Database V4.x.
      alter system set sys_bkgd_net_percentage = 100;  
    • Incremental synchronization

      Parameter berikut hanya ditampilkan jika Anda telah memilih One-way Synchronization dan Incremental Synchronization secara berurutan di halaman Select Migration Type.

      image

      Parameter

      Deskripsi

      Write Concurrency

      Konkurensi untuk menulis data ke target selama sinkronisasi inkremental. Nilai maksimum adalah 512. Konkurensi tulis yang tinggi dapat menyebabkan beban berlebih pada target, memengaruhi bisnis.

      Incremental Synchronization Rate Limit

      Anda dapat memilih apakah akan membatasi laju sinkronisasi inkremental sesuai kebutuhan. Jika Anda memilih untuk membatasi laju sinkronisasi inkremental, Anda harus menentukan records per second (RPS) dan bytes per second (BPS). RPS menentukan jumlah maksimum baris data yang disinkronkan ke target per detik selama sinkronisasi inkremental, dan BPS menentukan jumlah maksimum data dalam byte yang disinkronkan ke target per detik selama sinkronisasi inkremental.

      Catatan

      Nilai RPS dan BPS yang ditentukan di sini hanya untuk pembatasan kecepatan (throttling). Kinerja sinkronisasi inkremental aktual bergantung pada faktor seperti pengaturan sumber dan target serta spesifikasi instans.

      Incremental Synchronization Start Timestamp

      • Parameter ini tidak ditampilkan jika Anda telah memilih Full Migration di halaman Select Migration Type.

      • Jika Anda telah memilih Incremental Synchronization tetapi tidak memilih Full Migration, tentukan titik waktu setelahnya data akan disinkronkan. Nilai default adalah waktu sistem saat ini. Untuk informasi selengkapnya, lihat Tetapkan timestamp sinkronisasi inkremental.

    • Reverse increment

      Parameter berikut hanya ditampilkan jika Anda telah memilih One-way Synchronization dan Reverse Increment secara berurutan di halaman Select Migration Type. Secara default, konfigurasi sinkronisasi inkremental digunakan kembali untuk sinkronisasi inkremental balik.

      image

      Anda dapat memilih untuk tidak menggunakan kembali konfigurasi sinkronisasi inkremental dan mengonfigurasi sinkronisasi inkremental balik sesuai kebutuhan.

      Parameter

      Deskripsi

      Konkurensi Tulis

      Konkurensi untuk menulis data ke sumber selama sinkronisasi inkremental balik. Nilai maksimum adalah 512. Konkurensi yang tinggi dapat menyebabkan beban berlebih pada sumber, memengaruhi bisnis.

      Reverse Increment Rate Limit

      Anda dapat memilih apakah akan membatasi laju sinkronisasi inkremental balik sesuai kebutuhan. Jika Anda memilih untuk membatasi laju sinkronisasi inkremental balik, Anda harus menentukan requests per second (RPS) dan bytes per second (BPS). RPS menentukan jumlah maksimum baris data yang disinkronkan ke sumber per detik selama sinkronisasi inkremental balik, dan BPS menentukan jumlah maksimum data dalam byte yang disinkronkan ke sumber per detik selama sinkronisasi inkremental balik.

      Catatan

      Nilai RPS dan BPS yang ditentukan di sini hanya untuk pembatasan kecepatan (throttling). Kinerja sinkronisasi inkremental balik aktual bergantung pada faktor seperti pengaturan sumber dan target serta spesifikasi instans.

      Incremental Synchronization Start Timestamp

      • Parameter ini tidak ditampilkan jika Anda telah memilih Full Migration di halaman Select Migration Type.

      • Jika Anda telah memilih Incremental Synchronization tetapi tidak memilih Full Migration, timestamp mulai alih bencana maju (jika ada) digunakan secara default. Parameter ini tidak dapat dimodifikasi.

    • Advanced parameters

      image

      Parameter

      Deskripsi

      Define Character Set and Length

      Parameter ini hanya ditampilkan jika Anda memilih Schema Migration pada halaman Select Migration Type serta sumber dan target menggunakan set karakter yang berbeda.

      Catatan

      Jika set karakter sumber berbeda dari target, misalnya set karakter sumber adalah GBK sedangkan target adalah UTF-8, field mungkin terpotong, yang mengakibatkan inkonsistensi data.

      Jika Anda memilih Automatically extend fields at the target. Namely from N bytes to 1.5N bytes., data setelah konversi dipotong hingga batas panjang maksimum jika melebihi batas tersebut.

      Add Hidden Columns for Tables Without Non-null Unique Keys

      Parameter ini diperlukan saat Anda membuat tugas untuk memigrasikan data dari database Oracle ke database OceanBase dalam mode kompatibel Oracle. Untuk informasi selengkapnya, lihat Mekanisme kolom tersembunyi layanan transmisi data.

      Target Table Storage Type

      Bagian ini hanya ditampilkan jika Anda telah memilih Schema Migration atau DDL Synchronization untuk Incremental Synchronization di halaman Select Migration Type saat memigrasikan data ke database OceanBase V4.3.0 atau lebih baru dalam mode kompatibel Oracle.

      Jenis penyimpanan yang didukung untuk objek tabel target adalah Default, Row storage, Column storage, dan Hybrid columnar storage. Untuk informasi selengkapnya, lihat default_table_store_format.

      Catatan

      Nilai Default berarti parameter lain diatur secara otomatis berdasarkan konfigurasi parameter target. Objek tabel dalam migrasi skema dan objek tabel baru dalam sinkronisasi DDL inkremental ditulis ke skema yang sesuai berdasarkan jenis penyimpanan yang ditentukan.

  8. Klik Precheck untuk memulai pemeriksaan awal pada tugas migrasi data.

    Selama pemeriksaan awal, layanan transmisi data memverifikasi hak akses baca/tulis pengguna database serta koneksi jaringan ke database. Tugas sinkronisasi data hanya dapat dimulai setelah semua item pemeriksaan berhasil dilalui. Jika terjadi error selama pemeriksaan awal, Anda dapat melakukan operasi berikut:

    • Identifikasi dan atasi masalah, lalu lakukan pemeriksaan awal lagi.

    • Klik Skip di kolom Actions pada item pemeriksaan awal yang gagal. Di dialog yang menampilkan konsekuensi operasi, klik OK.

  9. Setelah pemeriksaan awal berhasil, klik Start Task.

    Jika Anda tidak perlu memulai tugas sekarang, klik Save. Anda dapat memulai tugas nanti di halaman Migration Tasks atau dengan melakukan operasi batch. Untuk informasi selengkapnya tentang operasi batch, lihat Lakukan operasi batch pada tugas migrasi data.

    Layanan transmisi data memungkinkan Anda memodifikasi objek migrasi dan kondisi filter barisnya saat tugas migrasi sedang berjalan. Untuk informasi selengkapnya, lihat Lihat dan modifikasi objek migrasi serta kondisi filternya. Setelah tugas migrasi data dimulai, tugas tersebut dieksekusi berdasarkan jenis migrasi yang dipilih. Untuk informasi selengkapnya, lihat Lihat detail migrasi.

Referensi