All Products
Search
Document Center

ApsaraDB for OceanBase (Deprecated):Sinkronkan data antara database OceanBase dalam mode kompatibilitas yang berbeda

Last Updated:Jul 06, 2025

Topik ini menjelaskan cara menyinkronkan data dari database OceanBase dalam mode kompatibel MySQL ke database OceanBase dalam mode kompatibel Oracle, atau sebaliknya.

Prasyarat

Batasan

Layanan transmisi data hanya mendukung sinkronisasi objek jika nama database, nama tabel, dan nama kolom dikodekan ASCII tanpa karakter khusus. Karakter khusus meliputi jeda baris, spasi, serta karakter berikut: . | " ' ` ( ) = ; / & \.

Pertimbangan

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

    Sebagai contoh, jika jam lebih awal dari waktu standar, latensi bisa negatif. Jika jam lebih lambat dari waktu standar, latensi bisa positif.

  • Jika Anda hanya memilih Sinkronisasi Inkremental saat membuat tugas sinkronisasi data, layanan transmisi data memerlukan log inkremental lokal di database sumber disimpan setidaknya selama 48 jam.

    Jika Anda memilih Sinkronisasi Penuh dan Sinkronisasi Inkremental, layanan transmisi data memerlukan log inkremental lokal di database sumber disimpan setidaknya selama tujuh hari. Jika tidak, tugas sinkronisasi data mungkin gagal atau data di sumber dan target mungkin tidak konsisten karena layanan transmisi data tidak dapat memperoleh log inkremental.

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

  • Ketelitian Huruf Besar/Kecil

    • Saat menyinkronkan data dari database OceanBase dalam mode kompatibel MySQL ke database OceanBase dalam mode kompatibel Oracle, nama tabel target dan nama kolom di tabel diubah menjadi huruf besar.

    • Saat menyinkronkan data dari database OceanBase dalam mode kompatibel Oracle ke database OceanBase dalam mode kompatibel MySQL, nama tabel target dan nama kolom di tabel diubah menjadi huruf kecil.

  • Saat menyinkronkan data dari database OceanBase dalam mode kompatibel MySQL ke database OceanBase dalam mode kompatibel Oracle, kehilangan data mungkin terjadi jika kolom dengan kendala UNIQUE mengizinkan nilai NULL. Secara khusus, jika sebuah kolom dengan beberapa nilai NULL ada di database sumber, hanya nilai NULL pertama dari kolom yang berhasil disinkronkan dan nilai NULL berikutnya dibuang karena pelanggaran kendala UNIQUE.

Jenis instansi sumber dan target yang didukung

Sumber

Target

OB_MySQL (Instansi kluster OceanBase)

OB_Oracle (Instansi kluster OceanBase)

OB_MySQL (Instansi kluster OceanBase)

OB_Oracle (Database mandiri dalam VPC)

OB_MySQL (Database mandiri dalam VPC)

OB_Oracle (Instansi kluster OceanBase)

OB_MySQL (Database mandiri dalam VPC)

OB_Oracle (Database mandiri dalam VPC)

OB_Oracle (Instansi kluster OceanBase)

OB_MySQL (Instansi kluster OceanBase)

OB_Oracle (Instansi kluster OceanBase)

OB_MySQL (Database mandiri dalam VPC)

OB_Oracle (Database mandiri dalam VPC)

OB_MySQL (Instansi kluster OceanBase)

OB_Oracle (Database mandiri dalam VPC)

OB_MySQL (Database mandiri dalam VPC)

Pemetaan tipe data

Pemetaan dari OB_MySQL ke OB_Oracle

OB_MySQL

OB_Oracle

INT

NUMBER(10,0)

TINYINT

NUMBER(3,0)

SMALLINT

NUMBER(5,0)

DECIMAL(p,s)

NUMBER(p,s)

NUMERIC(p,s)

NUMBER(p,s)

FLOAT(10,2)

BINARY_FLOAT

DOUBLE(10,2)

BINARY_DOUBLE

BIT(1)

BIT(n)

BIT(64)

RAW(1)

RAW(n/8+1)

RAW(9)

MEDIUMINT

NUMBER(7,0)

BIGINT

NUMBER(19,0)

TIMESTAMP

TIMESTAMP

TIME

TIMESTAMP(0) 

TIME(n)

TIMESTAMP(n)

DATE

DATE

DATETIME

TIMESTAMP

YEAR

NUMBER(4)

VARCHAR(n)

VARCHAR2(n)

n=information_schema. CHARACTER_OCTET_LENGTH

CHAR(n)

CHAR(n)

n=information_schema. CHARACTER_OCTET_LENGTH

BINARY(n)

RAW(n)

VARBINARY(n)

(n <= 2000) RAW(n)

(n > 2000) BLOB

TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB

BLOB

TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT

CLOB

ENUM/SET

VARCHAR2(32767)

JSON

  • Versi lebih lama dari V4.1.0: CLOB

  • Versi V4.1.0 dan yang lebih baru: JSON

Pemetaan dari OB_Oracle ke OB_MySQL

Tabel berikut menggunakan OceanBase Database V4.2.0 dalam mode kompatibel Oracle sebagai contoh.

OB_Oracle

OB_MySQL

CHAR(n CHAR)

VARCHAR(n)

CHAR(n BYTE)

CHAR(n)

NCHAR(n)

VARCHAR(n)

VARCHAR2(n)

VARCHAR(n)

NVARCHAR2(n)

VARCHAR(n)

NVARCHAR2(n BYTE)

VARCHAR(n)

NUMBER(n)

NUMERIC(n)

NUMBER(p, s)

DECIMAL(p, s)/NUMERIC(p, s)

RAW

VARBINARY

CLOB

LONGTEXT

BLOB

LONGBLOB

FLOAT(n)

DOUBLE (n)

BINARY_FLOAT

DOUBLE

BINARY_DOUBLE

DOUBLE

DATE

DATETIME

TIMESTAMP

DATETIME(n)

TIMESTAMP WITH TIME ZONE

VARCHAR(50)

TIMESTAMP WITH LOCAL TIME ZONE

TIMESTAMP

INTERVAL YEAR(p) TO MONTH

VARCHAR(50)

INTERVAL DAY(p) TO SECOND

VARCHAR(50)

ROWID

CHAR(18)

UROWID(n)

VARCHAR(18)

JSON

JSON

Prosedur

  1. Masuk ke Konsol ApsaraDB for OceanBase dan beli tugas sinkronisasi data.

    Untuk informasi lebih lanjut, lihat Beli Tugas Sinkronisasi Data.

  2. Pilih Data Transmission > Data Synchronization. Di halaman yang muncul, klik Configuration untuk tugas sinkronisasi data.

    image.png

    Jika ingin merujuk konfigurasi tugas yang sudah ada, klik Reference Configuration. Untuk informasi lebih lanjut, lihat Referensi dan Hapus Konfigurasi Tugas Sinkronisasi Data.

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

    Parameter

    Deskripsi

    Nama Tugas Sinkronisasi

    Kami sarankan Anda menyetelnya menjadi kombinasi digit dan huruf. Nama tersebut tidak boleh mengandung spasi dan panjangnya tidak boleh melebihi 64 karakter.

    Sumber

    Jika Anda telah membuat sumber data OceanBase, Anda dapat memilih sumber data OceanBase dalam mode kompatibel MySQL atau Oracle dari daftar drop-down sesuai kebutuhan. Jika belum, klik New Data Source di daftar drop-down dan buat satu di kotak dialog yang muncul di sebelah kanan. Untuk informasi lebih lanjut tentang parameter, lihat Buat sumber data OceanBase.

    Target

    Jika Anda telah membuat sumber data OceanBase:

    • Pilih sumber data OceanBase dalam mode kompatibel Oracle dari daftar drop-down jika sumbernya adalah sumber data OceanBase dalam mode kompatibel MySQL.

    • Pilih sumber data OceanBase dalam mode kompatibel MySQL dari daftar drop-down jika sumbernya adalah sumber data OceanBase dalam mode kompatibel Oracle.

    Jika belum, klik New Data Source di daftar drop-down dan buat satu di kotak dialog yang muncul di sebelah kanan.

    Tag (Opsional)

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

  4. Klik Next. Di halaman Select Synchronization Type, tentukan jenis sinkronisasi untuk tugas sinkronisasi data saat ini.

    image

    Jenis sinkronisasi yang didukung adalah Schema Synchronization, Full Synchronization, dan Incremental Synchronization. Incremental Synchronization mendukung opsi DML Synchronization dan DDL Synchronization. Operasi DML yang didukung adalah INSERT, DELETE, dan UPDATE. Anda dapat memilih opsi sesuai kebutuhan. Untuk informasi lebih lanjut, lihat Konfigurasikan Sinkronisasi DDL/DML. Untuk informasi tentang operasi DDL yang didukung, lihat Operasi DDL yang Didukung untuk Sinkronisasi.

  5. Klik Next. Di halaman Select Synchronization Objects, pilih objek yang akan disinkronkan dalam tugas sinkronisasi data saat ini.

    Anda dapat menggunakan opsi Specify Objects atau Match Rules untuk menentukan objek sinkronisasi. Topik ini menjelaskan cara menentukan objek sinkronisasi dengan menggunakan opsi Specify Objects. Untuk informasi tentang cara mengonfigurasi aturan pencocokan, lihat bagian "Pola Wildcard untuk Migrasi/Sinkronisasi Data Antar Database" dalam topik Konfigurasikan dan Modifikasi Aturan Pencocokan.

    Penting
    • Nama tabel yang akan disinkronkan, serta nama kolom dalam tabel tersebut, tidak boleh mengandung karakter Cina.

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

    • Jika Anda memilih DDL synchronization di langkah Select Synchronization Type, kami sarankan Anda memilih objek sinkronisasi dengan menggunakan opsi Aturan Pencocokan. Ini memastikan bahwa semua objek baru yang memenuhi aturan pencocokan disinkronkan. Jika Anda memilih objek sinkronisasi dengan menggunakan opsi Tentukan Objek, objek baru atau objek yang diubah namanya tidak akan disinkronkan.

    image.png

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

    2. Di bagian Select Synchronization Scope, pilih objek yang akan disinkronkan dari daftar Source Object(s). Anda dapat memilih satu atau beberapa tabel database sebagai objek sinkronisasi.

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

    Layanan transmisi data memungkinkan Anda mengimpor objek menggunakan teks. Layanan ini juga memungkinkan Anda mengganti nama objek, menetapkan filter baris, dan menghapus satu objek atau semua objek.

    Catatan

    Saat Anda memilih Match Rules untuk menentukan objek sinkronisasi, penggantian nama objek dilakukan berdasarkan sintaks aturan pencocokan yang ditentukan. Di area operasi, Anda hanya dapat menetapkan kondisi filter dan memilih kolom sharding serta kolom yang akan disinkronkan. Untuk informasi lebih lanjut, lihat Konfigurasikan dan Modifikasi Aturan Pencocokan.

    Operasi

    Deskripsi

    Impor objek

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

    2. Di kotak dialog yang muncul, klik OK.

      Penting

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

    3. Di kotak dialog Import Synchronization Objects, impor objek yang akan disinkronkan. Anda dapat mengimpor file CSV untuk mengganti nama database atau tabel dan menetapkan kondisi filter baris. Untuk informasi lebih lanjut, lihat Unduh dan impor pengaturan objek sinkronisasi.

    4. Klik Validate.

    5. Setelah validasi berhasil, klik OK.

    Ganti nama objek

    Layanan transmisi data memungkinkan Anda mengganti nama objek sinkronisasi. Untuk informasi lebih lanjut, lihat Ganti nama tabel database.

    Konfigurasikan pengaturan

    Layanan transmisi data memungkinkan Anda menyaring baris menggunakan kondisi WHERE. Untuk informasi lebih lanjut, lihat Gunakan kondisi SQL untuk menyaring data.

    Anda dapat menanyakan informasi kolom objek sinkronisasi di bagian View Column.

    Hapus satu atau semua objek

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

    • Hapus satu objek sinkronisasi

      Di daftar di sebelah kanan, arahkan kursor ke objek yang ingin Anda hapus, dan klik Remove untuk menghapus objek sinkronisasi.

    • Hapus semua objek sinkronisasi

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

  6. Klik Next. Di halaman Synchronization Options, konfigurasikan parameter.

    • Sinkronisasi Penuh

      Tabel berikut menjelaskan parameter sinkronisasi penuh, yang hanya ditampilkan jika Anda telah memilih Full Synchronization di halaman Select Synchronization Type.

      image

      Parameter

      Deskripsi

      Konkurensi Baca

      Konkurensi untuk membaca data dari sumber selama sinkronisasi penuh. Nilai maksimum adalah 512. Konkurensi tinggi dapat menimbulkan stres berlebih pada sumber, sehingga memengaruhi bisnis.

      Konkurensi Tulis

      Konkurensi untuk menulis data ke target selama sinkronisasi penuh. Nilai maksimum adalah 512. Konkurensi tulis tinggi dapat menimbulkan stres berlebih pada target, memengaruhi bisnis.

      Batas Laju Sinkronisasi Penuh

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

      Catatan

      Nilai RPS dan BPS yang ditentukan di sini hanya untuk pembatasan. Kinerja sinkronisasi penuh aktual bergantung pada faktor-faktor seperti pengaturan sumber dan target serta spesifikasi instansi.

      Tangani Tabel Non-Kosong di Database Target

      • Jika Anda memilih Ignore, ketika 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 untuk 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, kesalahan 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 Pulihkan di kotak dialog yang menunjukkan kesalahan, layanan transmisi data mengabaikan kesalahan ini dan melanjutkan migrasi data. Lanjutkan dengan hati-hati.

    • Sinkronisasi Inkremental

      Tabel berikut menjelaskan parameter sinkronisasi inkremental, yang hanya ditampilkan jika Anda telah memilih Sinkronisasi Inkremental di halaman Pilih Jenis Sinkronisasi.

      image

      Parameter

      Deskripsi

      Konkurensi Tulis

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

      Batas Laju Sinkronisasi Inkremental

      Anda dapat memilih apakah akan membatasi laju sinkronisasi inkremental sesuai kebutuhan. Jika Anda memilih untuk membatasi laju sinkronisasi inkremental, Anda harus menentukan RPS dan 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. Kinerja sinkronisasi inkremental aktual bergantung pada faktor-faktor seperti pengaturan sumber dan target serta spesifikasi instansi.

      Waktu Mulai Sinkronisasi Inkremental

      • Parameter ini tidak tersedia jika Anda telah memilih Full Synchronization.

      • Jika Anda telah memilih Incremental Synchronization tetapi tidak Full Synchronization, tentukan titik waktu setelah mana data akan disinkronkan. Nilai defaultnya adalah waktu sistem saat ini. Untuk informasi lebih lanjut, lihat Tetapkan timestamp sinkronisasi inkremental.

    • Parameter Lanjutan

      image

      Parameter

      Deskripsi

      Tipe Penyimpanan Tabel Target

      Bagian ini hanya ditampilkan jika target adalah OceanBase Database V4.3.0 atau lebih baru dan Anda telah memilih Schema Synchronization atau memilih DDL synchronization untuk Sinkronisasi Inkremental di halaman Select Synchronization Type.

      Parameter ini menentukan tipe penyimpanan untuk objek tabel target selama sinkronisasi skema atau sinkronisasi inkremental. Tipe penyimpanan yang didukung untuk objek tabel target adalah Default, Row storage, Column storage, dan Hybrid columnar storage. Untuk informasi lebih lanjut, lihat default_table_store_format.

      Parameter ini menentukan tipe penyimpanan untuk objek tabel target selama sinkronisasi skema atau sinkronisasi inkremental. Tipe penyimpanan yang didukung untuk objek tabel target adalah Default, Row storage, Column storage, dan Hybrid columnar storage. Untuk informasi lebih lanjut, lihat default_table_store_format.

      Catatan

      Nilai Default berarti parameter lainnya secara otomatis diatur berdasarkan konfigurasi parameter target. Objek tabel dalam sinkronisasi skema atau objek tabel baru dalam sinkronisasi DDL inkremental ditulis ke skema yang sesuai berdasarkan tipe penyimpanan yang ditentukan.

      Tambahkan Kolom Tersembunyi untuk Tabel Tanpa Kunci Unik Non-null

      Parameter ini hanya ditampilkan jika Anda telah memilih Schema Synchronization atau memilih DDL synchronization untuk Sinkronisasi Inkremental di halaman Select Synchronization Type saat Anda membuat tugas yang menyinkronkan data antara database OceanBase dalam mode kompatibilitas yang berbeda. Untuk informasi lebih lanjut, lihat Mekanisme kolom tersembunyi layanan transmisi data.

  7. Klik Precheck.

    Selama pracheck, layanan transmisi data memeriksa hak istimewa baca/tulis pengguna database dan konektivitas jaringan database. Tugas sinkronisasi data hanya dapat dimulai setelah semua item pemeriksaan berhasil dilewati. Jika terjadi kesalahan selama pracheck, Anda dapat melakukan operasi berikut:

    • Identifikasi dan perbaiki masalah, lalu lakukan pracheck lagi.

    • Klik Skip di kolom Tindakan item pracheck yang gagal. Di kotak dialog yang menunjukkan konsekuensi operasi, klik OK.

  8. Setelah pracheck berhasil, klik Start Task.

    Jika Anda tidak perlu memulai tugas sekarang, klik Save. Anda dapat memulai tugas secara manual di halaman Synchronization Tasks atau dengan melakukan operasi batch nanti. Untuk informasi lebih lanjut tentang operasi batch, lihat Lakukan Operasi Batch pada Tugas Sinkronisasi Data.

    Layanan transmisi data memungkinkan Anda memodifikasi objek sinkronisasi saat tugas sinkronisasi sedang berjalan. Untuk informasi lebih lanjut, lihat Lihat dan Modifikasi Objek Sinkronisasi dan Kondisi Filter Mereka. Setelah tugas sinkronisasi data dimulai, tugas tersebut akan dieksekusi berdasarkan jenis sinkronisasi yang dipilih. Untuk informasi lebih lanjut, lihat Lihat Detail Tugas Sinkronisasi Data.

Jika tugas sinkronisasi data mengalami pengecualian eksekusi karena kegagalan jaringan atau startup proses yang lambat, Anda dapat mengklik Restore di halaman Tugas Sinkronisasi atau Detail Tugas Sinkronisasi.

Referensi