Topik ini menjelaskan cara menyinkronkan data dari instance ApsaraDB RDS for PostgreSQL ke tenant Oracle di OceanBase Database.
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 akun khusus untuk sinkronisasi data di instance ApsaraDB RDS for PostgreSQL sumber. Untuk informasi lebih lanjut, lihat Sumber Data PostgreSQL.
Anda telah membuat pengguna database khusus untuk sinkronisasi data di tenant Oracle target di OceanBase Database dan memberikan hak istimewa yang sesuai. Untuk informasi lebih lanjut, lihat Buat Pengguna Database.
Jika Anda perlu melakukan sinkronisasi inkremental, lakukan operasi berikut terlebih dahulu:
Layanan transmisi data tidak mendukung sinkronisasi otomatis pernyataan DDL selama sinkronisasi inkremental. Jika Anda perlu menjalankan operasi DDL pada tabel yang akan disinkronkan, eksekusi pernyataan DDL terlebih dahulu di target, kemudian di instance ApsaraDB RDS for PostgreSQL sumber.
Untuk mem-parsing dengan benar operasi DML inkremental setelah pernyataan DDL dieksekusi, Anda harus membuat pemicu (trigger) dan tabel yang sesuai untuk mencatat pernyataan DDL. Untuk informasi lebih lanjut, lihat Buat Pemicu (Trigger).
Jika Anda memilih Sinkronisasi Inkremental, Anda harus menyetel parameter wal_level menjadi logical.
Untuk informasi lebih lanjut, lihat Ubah Level Log untuk Instance ApsaraDB RDS for PostgreSQL.
Batasan
Hanya instance ApsaraDB RDS for PostgreSQL V11.x dan V12.x yang didukung.
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: . | " ' ` ( ) = ; / & \.
Layanan transmisi data tidak mendukung sinkronisasi tampilan, tabel partisi, tabel unlogged, tabel sementara, batasan FOREIGN KEY, atau batasan check dari instance ApsaraDB RDS for PostgreSQL ke tenant Oracle di OceanBase Database.
Layanan transmisi data hanya mendukung sinkronisasi inkremental dari database utama.
Pertimbangan
Jika Anda memilih Sinkronisasi Inkremental, opsi tingkat tabel
REPLICA IDENTITYharus memenuhi persyaratan berikut:Jika Anda memilih Specify Objects, tabel yang ditentukan harus berisi kunci utama, atau parameter
REPLICA IDENTITYuntuk tabel harus disetel ke FULL. Jika tidak, operasi pembaruan atau penghapusan data bisnis gagal.Jika Anda memilih Match Rules, instance ApsaraDB RDS for PostgreSQL sumber harus berlangganan semua tabel dari database yang dipilih, termasuk tabel yang dipilih, tabel yang tidak dipilih, dan tabel baru. Semua tabel harus berisi kunci utama, atau parameter
REPLICA IDENTITYuntuk tabel harus disetel ke FULL. Jika tidak, operasi pembaruan atau penghapusan data bisnis gagal.
Anda dapat mengeksekusi pernyataan berikut untuk menyetel opsi tingkat tabel
REPLICA IDENTITYke FULL:ALTER TABLE table_name REPLICA IDENTITY FULL;Saat menyinkronkan skema atau operasi DDL inkremental dari instance ApsaraDB RDS for PostgreSQL ke tenant Oracle di OceanBase Database, nama tabel dan nama bidang diubah menjadi huruf besar berdasarkan strategi default layanan transmisi data. Misalnya, nama tabel sumber a secara default diubah menjadi A di target. Anda dapat menentukan nama tabel atau nama bidang dalam format a, A, atau "A", tetapi bukan "a".
Komponen Incr-Sync dari instance ApsaraDB RDS for PostgreSQL secara otomatis membuat publikasi dan slot, tetapi Anda harus memantau penggunaan disk log instance. Secara default, layanan transmisi data memberi tahu instance, dengan interval 10 menit, untuk memperbarui nilai
confirmed_flush_lsndari slot ke nomor urutan log (LSN) terbaru dari 10 menit yang lalu. Oleh karena itu, setiap komponen Incr-Sync menyimpan setidaknya 10 menit log dari instance ApsaraDB RDS for PostgreSQL.CatatanJika Anda ingin memodifikasi interval notifikasi, atau periode retensi file log yang dihasilkan dari instance ApsaraDB RDS for PostgreSQL, hubungi Dukungan Teknis OceanBase.
Jika log dari instance ApsaraDB RDS for PostgreSQL tidak dapat dibersihkan selama sinkronisasi data karena adanya slot, Anda harus menghapus tugas sinkronisasi data dan kemudian membersihkan log. Nilai
slot restart_lsnterkecil di antara semua slot menentukan apakah file log dari instance ApsaraDB RDS for PostgreSQL dapat didaur ulang. Jika nilai terkecil berada dalam rentang file log, file log tidak didaur ulang.Saat menyinkronkan data ke target, data duplikat mungkin ada jika tabel target tidak memiliki kunci utama atau kunci unik yang tidak NULL.
Jika set karakter UTF-8 digunakan di database sumber, kami sarankan menggunakan set karakter yang kompatibel, seperti UTF-8 atau UTF-16, di database target untuk menghindari karakter acak.
Periksa apakah presisi sinkronisasi layanan transmisi data untuk kolom tipe data DECIMAL, FLOAT, dan DOUBLE sesuai harapan. Jika presisi tipe bidang target lebih rendah daripada tipe bidang sumber, nilai dengan presisi lebih tinggi mungkin terpotong. Ini dapat mengakibatkan ketidaksesuaian data antara bidang sumber dan target.
Jika Anda memodifikasi indeks unik di target, Anda harus memulai ulang tugas sinkronisasi data untuk menghindari ketidaksesuaian data.
Jika jam antara node atau antara klien dan server tidak sinkron, 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 mengharuskan log inkremental lokal di database sumber disimpan setidaknya selama 48 jam.
Jika Anda memilih Sinkronisasi Penuh dan Sinkronisasi Inkremental saat membuat tugas sinkronisasi data, layanan transmisi data mengharuskan log inkremental lokal di database sumber disimpan setidaknya selama tujuh hari. Jika tidak, tugas sinkronisasi data mungkin gagal atau data di database sumber dan target mungkin tidak konsisten karena layanan transmisi data tidak dapat memperoleh log inkremental.
Jika database sumber atau target berisi objek tabel yang hanya berbeda dalam huruf besar/kecil, hasil migrasi data mungkin tidak sesuai harapan karena insensitivitas huruf besar/kecil di database sumber atau target.
Jika kolom dengan batasan UNIQUE mengizinkan nilai NULL, kehilangan data mungkin terjadi. Saat beberapa nilai NULL ada di instance ApsaraDB RDS for PostgreSQL sumber, hanya nilai NULL pertama yang berhasil disinkronkan ke tenant Oracle target di OceanBase Database, sedangkan nilai NULL berikutnya dibuang karena pelanggaran batasan UNIQUE.
Tipe instance sumber dan target yang didukung
Dalam tabel berikut, OB_Oracle berarti tenant Oracle di OceanBase Database.
Sumber | Target |
PostgreSQL (instance ApsaraDB RDS) | OB_Oracle (instance kluster OceanBase) |
PostgreSQL (instance ApsaraDB RDS) | OB_Oracle (database mandiri di VPC) |
Pemetaan tipe data
Tipe data di instance ApsaraDB RDS for PostgreSQL | Tipe data yang dipetakan di tenant Oracle di OceanBase Database |
int | NUMBER(10) |
smallint | NUMBER(5) |
bigint | NUMBER(20) |
decimal | NUMBER(p,s) |
numeric | NUMBER(p,s) |
real | BINARY_FLOAT |
double precision | BINARY_DOUBLE |
smallserial | NUMBER(5) |
serial | NUMBER(10) |
bigserial | NUMBER(20) |
char | CHAR(n) Catatan Panjang default dan panjang maksimum kolom tipe data |
varchar | VARCHAR2(n) |
text | CLOB |
timestamp | TIMESTAMP(p) |
timestamp with time zone | TIMESTAMP(p) WITH TIME ZONE |
time | DATE |
time with time zone | TIMESTAMP(p) WITH TIME ZONE |
boolean | NUMBER(1) |
bytea | BLOB |
citext | CLOB |
tsvector | CLOB |
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 Anda ingin merujuk konfigurasi tugas yang 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 tidak boleh melebihi 64 karakter.
Sumber
Jika Anda telah membuat sumber data PostgreSQL, pilih dari daftar drop-down. Jika tidak, klik New Data Source di daftar drop-down dan buat satu di kotak dialog yang muncul di sebelah kanan. Untuk informasi lebih lanjut, lihat Buat sumber data PostgreSQL.
Target
Jika Anda telah membuat sumber data OceanBase, pilih dari daftar drop-down. Jika tidak, klik New Data Source di daftar drop-down dan buat satu di kotak dialog yang muncul di sebelah kanan. Untuk informasi lebih lanjut, lihat 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 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 hanya mendukung DML Synchronization. Operasi DML yang didukung adalah
INSERT,DELETE, danUPDATE. Anda dapat memilih opsi sesuai kebutuhan. Untuk informasi lebih lanjut, lihat Konfigurasikan Sinkronisasi DDL/DML.Klik Next. Di halaman Select Synchronization Objects, pilih objek sinkronisasi.
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" di Konfigurasikan dan Modifikasi Aturan Pencocokan.
PentingNama tabel yang akan disinkronkan, serta nama kolom di tabel tersebut, tidak boleh mengandung karakter Cina.
Jika nama database atau tabel mengandung dua tanda dolar ($$), Anda tidak dapat membuat tugas sinkronisasi.

Di bagian Select Synchronization Objects, pilih opsi Specify Objects.
Di bagian Select Synchronization Scope, pilih objek yang akan disinkronkan dari daftar Source Object(s). Anda dapat memilih tabel dari satu atau lebih 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, menyetel objek, dan menghapus satu objek atau semua objek.
CatatanSaat Anda memilih Match Rules untuk menentukan objek migrasi, penggantian nama objek dilakukan berdasarkan sintaks aturan pencocokan yang ditentukan. Di area operasi, Anda hanya dapat menyetel kondisi filter. Untuk informasi lebih lanjut, lihat Konfigurasikan dan Modifikasi Aturan Pencocokan.
Operasi
Deskripsi
Impor objek
Di daftar di sebelah kanan, klik Impor Objek di pojok kanan atas.
Di kotak dialog yang muncul, klik OK.
PentingOperasi ini akan menimpa pilihan sebelumnya. Lanjutkan dengan hati-hati.
Di kotak dialog Impor Objek Sinkronisasi, impor objek yang akan disinkronkan. Anda dapat mengimpor file CSV untuk mengganti nama database atau tabel dan menyetel kondisi filter baris. Untuk informasi lebih lanjut, lihat Unduh dan impor pengaturan objek sinkronisasi.
Klik Validasi.
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
Anda dapat menggunakan klausa
WHEREuntuk menyaring data berdasarkan baris dan melihat informasi kolom dari objek sinkronisasi.Di daftar di sebelah kanan, arahkan kursor ke objek yang ingin Anda atur.
Klik Settings.
Di kotak dialog Settings, Anda dapat melakukan operasi berikut:
Di bagian Row Filters, tentukan klausa SQL standar
WHEREuntuk menyaring data berdasarkan baris. Untuk informasi lebih lanjut, lihat Gunakan kondisi SQL untuk menyaring data.Anda juga dapat melihat informasi kolom tentang objek sinkronisasi di bagian View Columns.
Klik OK.
Hapus satu atau semua objek
Layanan transmisi data memungkinkan Anda menghapus satu atau semua objek sinkronisasi yang 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 menyebabkan tekanan 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 menyebabkan tekanan 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 instance.
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 hal 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 Incremental Synchronization di halaman Select Synchronization Type.

Parameter
Deskripsi
Konkurensi Tulis
Konkurensi untuk menulis data ke target selama sinkronisasi inkremental. Nilai maksimum adalah 512. Konkurensi tulis tinggi dapat menyebabkan tekanan 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 instance.
Waktu Mulai Sinkronisasi Inkremental
Parameter ini tidak tersedia saat sumbernya adalah database PostgreSQL. Nilai defaultnya adalah waktu ketika sinkronisasi inkremental dimulai.
Parameter Lanjutan
Parameter berikut hanya ditampilkan jika Schema Synchronization tidak dipilih di halaman Select Synchronization Type.

Parameter
Deskripsi
Synchronize Data
Setelah Anda memilih parameter ini, Anda dapat menulis data tertentu, seperti skema dan nilai bidang kustom lainnya dari sumber, ke bidang tertentu di target.
Sync Schema Name
Layanan transmisi data mendapatkan nama skema dari sumber dan menulisnya sebagai string ke bidang tertentu di tabel target.
Saat Anda menentukan Specify Field Name, pastikan bidang ini ada di skema semua tabel terkait di target.
Sync Custom Data
Anda dapat menyinkronkan nilai bidang kustom sebagai string ke bidang tertentu dari tabel target di target.
PentingLayanan transmisi data tidak memverifikasi tipe bidang yang ditentukan oleh Specify Field Name, memverifikasi validitas nilai yang ditentukan oleh Field Value, atau meloloskan karakter khusus. Pastikan tipe bidang dan nilai memenuhi persyaratan.
Bagian ini hanya ditampilkan jika target adalah tenant Oracle di OceanBase Database V4.3.0 atau lebih baru dan Anda telah memilih Schema Synchronization di halaman Pilih Jenis Sinkronisasi.

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 bahwa parameter lain secara otomatis disetel berdasarkan konfigurasi parameter target. Objek tabel dalam sinkronisasi skema ditulis ke skema yang sesuai berdasarkan tipe penyimpanan yang ditentukan.
Klik Precheck.
Selama pemeriksaan awal, layanan transmisi data mendeteksi koneksi antara sumber dan target. Jika terjadi kesalahan selama pemeriksaan ini, Anda dapat melakukan operasi berikut:
Identifikasi dan perbaiki masalah, lalu lakukan pemeriksaan awal lagi.
Klik Skip di kolom Actions item pemeriksaan awal yang gagal. Di kotak dialog yang menunjukkan konsekuensi operasi, klik
OK .
Setelah pemeriksaan awal 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. Setelah tugas sinkronisasi data dimulai, tugas tersebut akan dieksekusi berdasarkan jenis sinkronisasi yang dipilih. Untuk informasi lebih lanjut, lihat Lihat Detail Tugas Sinkronisasi Data.
Layanan transmisi data memungkinkan Anda menghapus objek sinkronisasi selama sinkronisasi data. Untuk informasi lebih lanjut, lihat Lihat dan Modifikasi Objek Sinkronisasi.
PentingAnda tidak dapat menambahkan objek sinkronisasi selama sinkronisasi data dari instance ApsaraDB RDS for PostgreSQL ke tenant Oracle di OceanBase Database.
Jika tugas sinkronisasi data mengalami pengecualian eksekusi karena kegagalan jaringan atau startup lambat proses, Anda dapat mengklik Restore di halaman Tugas Sinkronisasi atau Detail Tugas Sinkronisasi.