All Products
Search
Document Center

ApsaraDB for OceanBase (Deprecated):Konfigurasikan tugas sinkronisasi dua arah

Last Updated:Dec 30, 2025

Topik ini menjelaskan sinkronisasi dua arah antara database MySQL dan database OceanBase dalam mode yang kompatibel dengan MySQL.

Penting

Tugas migrasi data yang tetap dalam keadaan tidak aktif dalam waktu lama mungkin gagal dilanjutkan tergantung pada periode retensi log inkremental. Keadaan tidak aktif meliputi Failed, Stopped, dan Completed. Layanan transmisi data akan melepaskan tugas migrasi data yang tetap dalam keadaan tidak aktif selama lebih dari 3 hari untuk mereklaim resource terkait. Kami menyarankan Anda mengonfigurasi alert untuk tugas migrasi data dan menangani pengecualian tugas secara tepat waktu.

Latar Belakang

Apa itu sinkronisasi dua arah?

Selama sinkronisasi data inkremental, Anda dapat mengonfigurasi tugas migrasi maju dan balik untuk sumber data yang sama guna menyinkronkan data antara sumber dan target. Mekanisme pencegahan replikasi siklik digunakan untuk mencegah data yang telah disinkronkan dalam satu arah agar tidak disinkronkan berulang kali oleh tugas dalam arah sebaliknya.

Catatan

Sinkronisasi dua arah tidak mendukung penulisan simultan ke sumber dan target. Jika suatu aplikasi menulis data yang sama—yang diidentifikasi oleh primary key atau unique key yang sama—secara bersamaan ke sumber dan target, Anda harus menentukan strategi penyelesaian konflik (overwrite atau ignore) untuk tugas sinkronisasi dua arah tersebut. Kami menyarankan agar Anda melarang aplikasi menulis data yang sama secara bersamaan ke sumber dan target.

Jenis migrasi yang mendukung sinkronisasi dua arah

Layanan transmisi data mendukung sinkronisasi data dua arah antara database MySQL dan database OceanBase dalam mode yang kompatibel dengan MySQL, antara database Oracle dan database OceanBase dalam mode yang kompatibel dengan Oracle, serta antara database OceanBase. Untuk informasi lebih lanjut mengenai batasan dan pertimbangan, lihat topik tentang jenis migrasi data yang sesuai.

Pernyataan untuk memberikan hak istimewa pada sumber data MySQL

Untuk melakukan sinkronisasi dua arah antara database MySQL dan database OceanBase, Anda harus memberikan hak istimewa CREATE DATABASE dan CREATE TABLE kepada akun database pada sumber data MySQL untuk tugas saat ini. Anda juga harus membuat database transaksi dan tabel transaksi untuk mencegah replikasi siklik antara kedua pihak yang terlibat dalam sinkronisasi dua arah. Jika tidak, tugas sinkronisasi dua arah mungkin menjadi abnormal.

  • Berikan hak istimewa pembuatan database global

    GRANT CREATE ON *.* TO '<user_name>' ;
  • Berikan hak istimewa untuk membuat tabel di database oms

    GRANT CREATE ON oms.* TO '<user_name>' 

Pernyataan untuk membuat skema dan memberikan hak istimewa pada sumber data Oracle

Untuk melakukan sinkronisasi dua arah antara database Oracle dan database OceanBase, Anda harus membuat skema bernama OMS pada sumber data Oracle untuk tugas saat ini, serta memberikan hak istimewa CREATE TABLE pada skema OMS kepada akun database di sumber data ini. Jika tidak, tugas sinkronisasi dua arah mungkin menjadi abnormal.

  • Buat pengguna OMS

    CREATE USER OMS IDENTIFIED BY <YOUR_PASSWORD> DEFAULT TABLESPACE <tablespace>; // Ganti YOUR_PASSWORD dengan password pengguna yang sebenarnya.
    ALTER USER OMS QUOTA unlimited ON <tablespace yang ditentukan pada langkah sebelumnya>; 
    ALTER USER <data source user> QUOTA unlimited ON <tablespace yang ditentukan pada langkah sebelumnya>; 
  • Berikan hak istimewa

    GRANT CREATE ANY TABLE TO <YOUR_USERNAME>; 
    GRANT INSERT ANY TABLE TO <YOUR_USERNAME>;
    GRANT UPDATE ANY TABLE TO <YOUR_USERNAME>;
    GRANT DELETE ANY TABLE TO <YOUR_USERNAME>;
    GRANT SELECT ANY TABLE TO <YOUR_USERNAME>;

Pertimbangan

Tugas sinkronisasi dua arah terdiri atas tugas maju dan tugas balik.

Jenis

Deskripsi

Forward task

  • Forward task mendukung migrasi skema, migrasi penuh, sinkronisasi inkremental operasi DML, sinkronisasi inkremental operasi DDL, dan verifikasi penuh.

  • Forward task tidak didukung dalam skenario agregasi database atau tabel. Misalnya, tidak didukung untuk agregasi tabel dari sumber a dan b ke target c.

  • Jangan lakukan operasi DDL yang memodifikasi skema database atau tabel selama migrasi skema atau migrasi penuh. Jika tidak, tugas mungkin gagal.

  • Jangan tentukan tabel transaksi untuk Aturan Pengecualian Objek ketika Anda memilih objek migrasi menggunakan opsi Match Rules.

Reverse task

  • Anda hanya dapat mengonfigurasi reverse task ketika forward task berada dalam fase sinkronisasi inkremental dan dalam status Running.

  • Reverse task hanya mendukung sinkronisasi inkremental operasi DML.

  • Anda tidak dapat memodifikasi objek sinkronisasi saat mengonfigurasi reverse task. Secara default, objek sinkronisasi yang ditentukan dalam forward task akan digunakan.

Pertimbangan lainnya

  • Jika tugas sinkronisasi dua arah melibatkan tabel tanpa primary key atau unique key non-null, data duplikat mungkin muncul di database atau tabel target yang sesuai selama sinkronisasi.

  • Tugas sinkronisasi dua arah membuat database atau skema bernama OMS di database MySQL atau Oracle dan membuat tabel transaksi di database atau skema OMS untuk menghindari sinkronisasi data siklik. Jangan lakukan operasi DML atau DDL pada tabel transaksi selama tugas berjalan.

Skenario konflik data

Untuk memastikan konsistensi data dalam sinkronisasi dua arah, pastikan bahwa operasi data pada primary key atau unique key non-null yang sama hanya dilakukan di sumber atau target. Jika data diperbarui secara bersamaan di sumber dan target, konflik data dapat terjadi, termasuk skenario berikut.

  • Konflik unique key dalam operasi INSERT

    Jika suatu aplikasi mengeksekusi operasi INSERT pada unique key yang sama di sumber dan target hampir bersamaan, operasi INSERT di target gagal karena Kendala UNIK selama sinkronisasi ke target. Anda dapat mengonfigurasi tugas untuk mengabaikan data yang bertentangan atau menimpa data di target.

  • Konflik unique key dalam operasi UPDATE

    • Jika data yang akan diperbarui oleh operasi UPDATE sudah ada di target, data di target akan ditimpa oleh data dari sumber.

    • Jika data yang akan diperbarui oleh operasi UPDATE tidak ada di target, operasi UPDATE gagal.

    • Jika operasi UPDATE menyebabkan konflik primary key atau unique key di target, operasi UPDATE gagal.

  • Konflik unique key dalam operasi DELETE

    • Jika data yang akan dihapus oleh operasi DELETE tidak ada, operasi DELETE gagal.

Prosedur

Konfigurasikan forward task

  1. Konfigurasikan tugas migrasi data seperti yang diminta hingga mencapai langkah Select Migration Type dan atur Synchronous Topology menjadi Bidirectional Synchronization.

    Untuk informasi lebih lanjut, lihat topik tentang jenis migrasi data yang sesuai.

    image

  2. Pada halaman Select Migration Type, tentukan jenis migrasi untuk tugas migrasi data.

    Sinkronisasi dua arah mendukung jenis migrasi berikut: Schema Migration, Full Migration, Incremental synchronization, dan Full Verification.

    image

    Jenis migrasi

    Deskripsi

    Schema migration

    Setelah tugas migrasi skema dimulai, layanan transmisi data akan memigrasikan definisi objek basis data—seperti tabel, indeks, kendala, komentar, dan tampilan—dari database sumber ke database target dan secara otomatis memfilter tabel temporary.

    Full migration

    Setelah tugas migrasi penuh dimulai, layanan transmisi data akan memigrasikan data yang ada dari tabel di database sumber ke tabel yang sesuai di database target.

    Incremental synchronization

    Setelah tugas sinkronisasi inkremental dimulai, layanan transmisi data akan 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 lebih lanjut, lihat Configure DDL/DML synchronization.

    Catatan
    • Dalam sinkronisasi dua arah, opsi DML Synchronization harus dipilih.

    • Dalam sinkronisasi dua arah, sinkronisasi DDL hanya didukung untuk forward task.

    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.

  3. 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" dalam Configure and modify matching rules.

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

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

    • Jika Anda telah memilih DDL Synchronization pada 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 yang berganti nama tidak akan disinkronkan.

    image.png

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

    2. Pada daftar Source Object(s) di bagian Specify Migration Scope, pilih objek yang akan dimigrasikan. Anda dapat memilih tabel dan tampilan 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, mengatur filter baris, melihat informasi kolom, serta 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 mengatur kondisi filter. Untuk informasi lebih lanjut, lihat Configure and modify matching rules.

    Operasi

    Deskripsi

    Import objects

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

    2. Pada kotak dialog yang muncul, klik OK.

      Penting

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

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

      Anda dapat mengimpor file CSV untuk mengganti nama database atau tabel serta mengatur kondisi filter baris. Untuk informasi lebih lanjut, lihat Download and import the settings of migration objects.

    4. Klik Validate.

      Setelah Anda mengimpor objek migrasi, periksa validitasnya. Pemetaan bidang kolom belum didukung saat ini.

    5. Setelah validasi berhasil, klik OK.

    Rename objects

    Layanan transmisi data memungkinkan Anda mengganti nama objek migrasi. Untuk informasi lebih lanjut, lihat Rename a database table.

    Configure settings

    Layanan transmisi data memungkinkan Anda memfilter baris menggunakan kondisi WHERE. Untuk informasi lebih lanjut, lihat Use SQL conditions to filter 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 telah ditambahkan ke daftar sisi kanan selama pemetaan data.

    • Remove a single migration object

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

    • Remove all migration objects

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

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

    • Full migration

      Tabel berikut menjelaskan parameter untuk migrasi penuh, yang hanya ditampilkan jika Anda telah memilih Bidirectional Synchronization dan Full Migration pada 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, sehingga 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, sehingga 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 catatan per detik (RPS) dan byte per detik (BPS). RPS menentukan jumlah maksimum baris data yang dimigrasikan ke target per detik selama migrasi penuh, sedangkan 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. Kinerja migrasi penuh yang sebenarnya bergantung pada faktor-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, ketika data yang akan dimasukkan bertentangan dengan data yang sudah ada di tabel target, layanan transmisi data akan mencatat data yang bertentangan sambil mempertahankan data yang sudah 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, kesalahan yang menunjukkan migrasi tidak didukung akan dilaporkan selama migrasi penuh. Dalam kasus ini, Anda harus memproses data di tabel target sebelum melanjutkan migrasi.

        Penting

        Jika Anda mengklik Resume pada kotak dialog yang menampilkan kesalahan tersebut, layanan transmisi data akan mengabaikan kesalahan ini dan melanjutkan migrasi data. Lakukan dengan hati-hati.

      Post-Indexing

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

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

      • Hanya indeks non-unique key yang dapat dibuat setelah migrasi selesai.

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

        • Pesan kesalahan di database OceanBase dalam mode yang kompatibel dengan MySQL: Duplicate key name.

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

      Jika Anda memilih Allow, atur parameter berikut:

      • DDL Concurrency for Single Index: jumlah maksimum operasi DDL konkuren yang diizinkan untuk satu indeks. Nilai yang lebih besar menunjukkan konsumsi resource 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 client 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

      Tabel berikut menjelaskan parameter untuk sinkronisasi inkremental, yang hanya ditampilkan jika Anda telah memilih Bidirectional Synchronization dan Incremental Synchronization pada 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, sehingga 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 catatan per detik (RPS) dan byte per detik (BPS). RPS menentukan jumlah maksimum baris data yang disinkronkan ke target per detik selama sinkronisasi inkremental, sedangkan 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. Kinerja sinkronisasi inkremental yang sebenarnya bergantung pada faktor-faktor seperti pengaturan sumber dan target serta spesifikasi instans.

      Data Conflict Handling Strategy

      Nilai yang valid adalah Ignore errors and keep the original data on the target dan Ignore conflicts, use source data to overwrite target data. Untuk informasi lebih lanjut, lihat bagian "Data conflict scenarios" dalam topik ini.

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

    Selama pemeriksaan awal, layanan transmisi data memeriksa hak istimewa baca dan tulis pengguna database serta koneksi jaringan database. Tugas sinkronisasi data hanya dapat dimulai setelah lulus semua item pemeriksaan. Jika terjadi kesalahan 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. Pada kotak dialog yang menampilkan konsekuensi operasi tersebut, klik OK.

  6. Setelah pemeriksaan awal berhasil, klik Start Task untuk memulai forward task.

Konfigurasikan reverse task

  1. Buka halaman Migration Tasks. Tunggu hingga forward task berada dalam fase sinkronisasi inkremental dan dalam status Running. Kemudian, klik Configuration untuk reverse task.

    image

  2. Pada dialog Configure Reverse Tasks, konfigurasikan parameter.

    image

    Parameter

    Deskripsi

    Task Instance

    Pilih instans tugas yang tersedia dari daftar drop-down untuk mengonfigurasi reverse task. Jika tidak ada instans tugas yang tersedia, beli instans tersebut. Untuk informasi lebih lanjut, lihat Purchase a data migration task.

    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, sehingga memengaruhi bisnis.

    Incremental Synchronization Rate Limit

    Anda dapat memilih apakah akan membatasi laju sinkronisasi inkremental sesuai kebutuhan.

    Data Conflict Handling Strategy

    Nilai yang valid adalah Ignore errors and keep the original data on the target dan Ignore conflicts, use source data to overwrite target data.

  3. Klik Precheck. Sistem akan melakukan pemeriksaan awal pada reverse task.

  4. Setelah pemeriksaan awal berhasil, klik Start Task untuk memulai reverse task.