Topik ini menjelaskan cara menyinkronkan data dari database OceanBase dalam mode kompatibel MySQL ke database OceanBase dalam mode kompatibel Oracle, atau sebaliknya.
Prasyarat
Layanan transmisi data harus memiliki hak istimewa untuk mengakses sumber daya cloud. Untuk informasi lebih lanjut, lihat Berikan Hak Istimewa kepada Peran untuk Transmisi Data.
Anda telah membuat pengguna database khusus untuk sinkronisasi data di OceanBase Database dan memberikan hak istimewa yang diperlukan kepada pengguna tersebut. Untuk informasi lebih lanjut, lihat Konfigurasikan Hak Istimewa Pengguna untuk Sumber Data.
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 |
|
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
Masuk ke Konsol ApsaraDB for OceanBase dan beli tugas sinkronisasi data.
Untuk informasi lebih lanjut, lihat Beli Tugas Sinkronisasi Data.
Pilih Data Transmission > Data Synchronization. Di halaman yang muncul, klik Configuration untuk tugas sinkronisasi data.

Jika ingin merujuk konfigurasi tugas yang sudah ada, klik Reference Configuration. Untuk informasi lebih lanjut, lihat Referensi dan Hapus Konfigurasi Tugas Sinkronisasi Data.
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.
Klik Next. Di halaman Select Synchronization Type, tentukan jenis sinkronisasi untuk tugas sinkronisasi data saat ini.

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.
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.
PentingNama 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.

Di bagian Select Synchronization Objects, pilih Specify Objects.
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.
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.
CatatanSaat 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
Di daftar di sebelah kanan, klik Import Objects di pojok kanan atas.
Di kotak dialog yang muncul, klik OK.
PentingOperasi ini akan menimpa pilihan sebelumnya. Lanjutkan dengan hati-hati.
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.
Klik Validate.
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.
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.

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.
CatatanNilai 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.
PentingJika 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.
PentingJika 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.

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.
CatatanNilai 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

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.
CatatanNilai 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.
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.
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.