Data Transmission Service (DTS) melakukan migrasi data dari database OceanBase dalam mode MySQL ke instans ApsaraDB RDS for MySQL. Gunakan panduan ini untuk mengonfigurasi dan menjalankan tugas migrasi secara end-to-end.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Database OceanBase sumber yang merupakan Community Edition V4.x
Instans ApsaraDB RDS for MySQL tujuan dengan ruang penyimpanan yang tersedia lebih besar daripada ukuran total data di database sumber. Untuk instruksi penyiapan, lihat Buat instans ApsaraDB RDS for MySQL
Akun database dengan izin yang diperlukan. Lihat Izin yang diperlukan di bawah ini
Penagihan
| Jenis migrasi | Biaya konfigurasi tugas | Biaya transfer data |
|---|---|---|
| Migrasi skema + migrasi data penuh | Gratis | Gratis dalam contoh ini |
| Migrasi data inkremental | Dikenai biaya | — |
Untuk informasi harga migrasi data inkremental, lihat Ikhtisar penagihan.
Batasan
Batasan ketat
| Kategori | Batasan |
|---|---|
| Jenis database sumber | Hanya OceanBase Community Edition V4.x |
| Sumber ApsaraDB for OceanBase | Harus berupa instans kluster di China (Shenzhen) atau China (Shanghai). Instans tenant tidak didukung. |
| Kendala tabel | Tabel harus memiliki PRIMARY KEY atau kendala UNIQUE dengan semua field unik. Tabel tanpa kendala ini dapat menghasilkan catatan duplikat di tujuan. |
| Batas tugas penggantian nama tabel | Saat memilih tabel sebagai objek migrasi dan mengganti nama tabel atau kolom di tujuan, satu tugas mendukung maksimal 1.000 tabel. Untuk lebih dari 1.000 tabel, jalankan beberapa tugas secara batch, atau migrasikan seluruh database. |
| Tipe data GEOMETRY | Hanya migrasi data penuh. Migrasi inkremental data GEOMETRY tidak didukung. |
| Kunci asing | DTS melakukan migrasi kunci asing selama migrasi skema. Selama migrasi penuh dan inkremental, DTS sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session. Operasi cascade delete pada sumber selama migrasi dapat menyebabkan ketidakkonsistenan data. |
| Kapitalisasi nama kolom | Jika nama kolom dalam tabel tujuan yang sama hanya berbeda kapitalisasi, hasil migrasi mungkin tidak sesuai harapan karena nama kolom MySQL bersifat case-insensitive secara default. |
Penanganan tipe data
| Tipe data | Perilaku |
|---|---|
| GEOMETRY | Hanya migrasi data penuh. Migrasi inkremental tidak didukung. |
| FLOAT | DTS menggunakan ROUND(COLUMN, PRECISION). Jika presisi tidak ditentukan, DTS menggunakan default 38 digit. |
| DOUBLE | DTS menggunakan ROUND(COLUMN, PRECISION). Jika presisi tidak ditentukan, DTS menggunakan default 308 digit. |
Verifikasi bahwa pengaturan presisi default untuk FLOAT dan DOUBLE memenuhi kebutuhan Anda sebelum memulai migrasi.
Operasi yang diizinkan pada database sumber selama migrasi
| Fase migrasi | Operasi sumber yang diizinkan |
|---|---|
| Migrasi skema + migrasi data penuh | Hanya baca. Jangan menjalankan pernyataan DDL yang mengubah skema database atau tabel. Tugas akan gagal jika pernyataan DDL dieksekusi. |
| Hanya migrasi data penuh (tanpa inkremental) | Hanya baca. Jangan menulis data ke database sumber. Operasi tulis menyebabkan ketidakkonsistenan data. |
Pertimbangan
Pemberian nama database: Jika nama database sumber tidak mengikuti konvensi penamaan ApsaraDB RDS for MySQL, buat database tujuan secara manual sebelum mengonfigurasi tugas. Kemudian gunakan pemetaan nama objek untuk mengganti namanya selama langkah Configure Objects and Advanced Settings.
Percobaan ulang tugas gagal: DTS mencoba ulang tugas migrasi yang gagal hingga tujuh hari. Sebelum mengalihkan beban kerja ke tujuan, hentikan atau lepaskan tugas yang gagal — atau jalankan
REVOKEuntuk menghapus izin tulis DTS pada tujuan — agar data sumber tidak menimpa data tujuan saat tugas dilanjutkan.Kegagalan DDL di tujuan: Jika pernyataan DDL gagal dieksekusi di tujuan, tugas DTS tetap berjalan. Periksa log tugas untuk detailnya. Lihat Lihat log tugas.
Verifikasi pasca-migrasi: Setelah migrasi selesai, jalankan
ANALYZE TABLE <table_name>untuk memastikan data berhasil ditulis. Dalam skenario alih bencana high-availability (HA), data mungkin hanya ada di memori dan dapat hilang jika tidak dipersistensikan.Kinerja database sumber: Migrasi data penuh meningkatkan beban pada sumber dan tujuan. Jalankan migrasi selama jam sepi dan aktifkan pembatasan kecepatan jika diperlukan.
Ukuran ruang tabel tujuan: Operasi INSERT konkuren selama migrasi penuh menyebabkan fragmentasi tabel. Ruang tabel tujuan akan lebih besar daripada sumber setelah migrasi selesai.
Operasi SQL yang didukung untuk migrasi inkremental
| Jenis operasi | Pernyataan yang didukung |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, TRUNCATE TABLE, RENAME TABLE |
Operasi RENAME TABLE dapat menyebabkan ketidakkonsistenan data. Jika Anda mengganti nama tabel selama migrasi dan tabel tersebut ditambahkan sebagai objek migrasi berdasarkan nama, data tabel yang diganti namanya tidak akan dimigrasikan. Untuk mencegah hal ini, tambahkan database (bukan tabel individual) sebagai objek migrasi, dan pastikan database sebelum dan sesudah penggantian nama termasuk dalam migrasi.
Izin yang diperlukan
| Database | Migrasi skema | Migrasi data penuh | Migrasi data inkremental |
|---|---|---|---|
| OceanBase (user tenant atau regular tenant) | SELECT | SELECT | Regular tenant |
| ApsaraDB RDS for MySQL | Baca dan tulis pada database tujuan | Baca dan tulis pada database tujuan | Baca dan tulis pada database tujuan |
Untuk migrasi data inkremental, instal oblogproxy pada server yang menghosting database OceanBase sumber dan konfigurasikan sys tenant. oblogproxy adalah layanan proxy untuk mengelola log inkremental. Lihat Instal dan deploy oblogproxyInstal dan deploy oblogproxy menggunakan paket instalasi.
Untuk membuat akun database dan memberikan izin:
Database OceanBase yang dikelola sendiri (situs Internasional): Lihat Buat tenant, Buat user, dan Berikan izin.
OceanBase: Buat tenant, Buat user, dan Berikan hak istimewa
ApsaraDB RDS for MySQL: Buat akun dan Ubah izin akun
Buat tugas migrasi
Alur kerja migrasi terdiri dari tujuh langkah: navigasi ke halaman Data Migration Tasks, konfigurasi database sumber dan tujuan, uji konektivitas, pilih objek migrasi, konfigurasi pengaturan lanjutan, jalankan pemeriksaan awal, dan beli instans untuk memulai tugas.
Langkah 1: Buka halaman Data Migration Tasks
Login ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik DTS.
Di panel navigasi kiri, pilih DTS (DTS) > Data Migration.
Anda juga dapat langsung membuka halaman Data Migration Tasks. Tata letak konsol dapat berbeda — lihat Simple mode dan Sesuaikan tata letak dan gaya konsol DMS untuk opsi navigasi.
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi akan berada.
Di konsol DTS baru, pilih wilayah di pojok kiri atas.
Langkah 2: Konfigurasi database sumber dan tujuan
Klik Create Task. Pada halaman Create Data Migration Task, konfigurasikan parameter berikut.
Database sumber
| Parameter | Deskripsi |
|---|---|
| Select an existing DMS database instance | Opsional. Jika dipilih, DTS secara otomatis mengisi parameter database. |
| Database type | Pilih ApsaraDB OceanBase for MySQL. |
| Access method | Pilih berdasarkan lokasi penyebaran database sumber. Contoh ini menggunakan Public IP Address. Untuk database yang dikelola sendiri, siapkan lingkungan terlebih dahulu. Lihat Ikhtisar persiapan. |
| Instance region | Wilayah tempat database OceanBase sumber berada. |
| IP Address or Domain Name | Titik akhir database OceanBase sumber. |
| Port number | Port layanan. Default: 2881. |
| IP address in log proxy (domain name not supported) | Alamat IP oblogproxy untuk database OceanBase sumber. |
| Port in log proxy | Port pendengar oblogproxy. Default: 2983. |
| Database account | Akun database OceanBase sumber. Lihat Izin yang diperlukan. |
| Database password | Kata sandi untuk akun database. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| Select an existing DMS database instance | Opsional. Jika dipilih, DTS secara otomatis mengisi parameter database. |
| Database type | Pilih MySQL. |
| Access method | Pilih Alibaba Cloud Instance. |
| Instance region | Wilayah tempat instans ApsaraDB RDS for MySQL tujuan berada. |
| Replicate data across Alibaba Cloud accounts | Pilih No untuk migrasi dalam akun yang sama. |
| RDS instance ID | ID instans ApsaraDB RDS for MySQL tujuan. |
| Database account | Akun database tujuan. Lihat Izin yang diperlukan. |
| Database password | Kata sandi untuk akun database. |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. Untuk menggunakan SSL, aktifkan enkripsi SSL pada instans RDS terlebih dahulu. Lihat Konfigurasi enkripsi SSL. |
Langkah 3: Uji konektivitas dan konfigurasi daftar putih alamat IP
Klik Test connectivity and proceed.
Jika database sumber atau tujuan Anda menggunakan daftar putih alamat IP, tambahkan Blok CIDR server DTS ke daftar putih tersebut.
| Lokasi database | Cara menambahkan Blok CIDR |
|---|---|
| Instans database Alibaba Cloud (ApsaraDB RDS for MySQL, ApsaraDB for MongoDB, dll.) | DTS menambahkan Blok CIDR secara otomatis. |
| Database yang dikelola sendiri di Elastic Compute Service (ECS) | DTS secara otomatis menambahkan Blok CIDR ke aturan grup keamanan ECS. Jika database dihosting di beberapa instans ECS, tambahkan Blok CIDR secara manual ke grup keamanan setiap instans. |
| Database yang dikelola sendiri di pusat data atau cloud pihak ketiga | Tambahkan Blok CIDR secara manual. Lihat Blok CIDR server DTS. |
Menambahkan Blok CIDR publik ke daftar putih database atau grup keamanan ECS menimbulkan risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan: gunakan kredensial kuat, batasi port yang terbuka, autentikasi panggilan API, audit aturan daftar putih secara berkala, dan hapus Blok CIDR yang tidak sah. Pertimbangkan untuk menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway untuk koneksi yang lebih aman.
Jika database sumber adalah instans ApsaraDB for OceanBase, tambahkan Blok CIDR server DTS secara manual ke daftar putih alamat IP ApsaraDB for OceanBase. Gunakan Blok CIDR yang sama seperti untuk database dengan Metode akses Express Connect, VPN Gateway, atau Smart Access Gateway. Lihat Buat grup daftar putih dan Blok CIDR server DTS.
Langkah 4: Pilih jenis dan objek migrasi
Konfigurasikan parameter berikut.
Jenis migrasi
Pilih jenis migrasi berdasarkan kebutuhan downtime Anda.
| Jenis | Kapan digunakan | Catatan |
|---|---|---|
| Migrasi skema + migrasi data penuh | Migrasi satu kali dengan jendela downtime yang direncanakan | Jangan menulis ke database sumber selama migrasi. |
| Migrasi skema + migrasi data penuh + migrasi data inkremental | Migrasi hampir tanpa waktu henti; menjaga sinkronisasi antara sumber dan tujuan selama proses peralihan | Memerlukan oblogproxy yang diinstal pada server sumber. |
Objek dan Pengaturan Lanjutan
| Parameter | Deskripsi |
|---|---|
| Method to migrate triggers in source database | Tersedia saat migrasi skema dipilih. Pilih opsi sesuai kebutuhan Anda. Lihat Synchronize or migrate triggers. |
| Processing mode of conflicting tables | Precheck and report errors: Gagal dalam Pemeriksaan Awal jika nama tabel di sumber dan tujuan sama. Ignore errors and proceed: Melewati pemeriksaan tersebut, tetapi berisiko menyebabkan inkonsistensi data atau kegagalan migrasi sebagian. |
| Capitalization of object names in destination instance | Mengatur kapitalisasi nama database, tabel, dan kolom di instans tujuan. Nilai default: DTS default policy. Lihat Specify object name capitalization. |
| Source objects | Pilih objek dari bagian Source objects, lalu pindahkan ke Selected objects menggunakan ikon |
| Selected objects | Klik kanan objek untuk mengganti namanya. Klik Batch edit guna mengganti nama beberapa objek sekaligus. Lihat Map object names. Untuk menetapkan kondisi filter baris, klik kanan tabel dan tentukan kondisi WHERE. Lihat Set filter conditions. |
Pemetaan nama objek dapat menyebabkan objek dependen gagal dimigrasikan. Pemetaan kolom untuk migrasi tabel non-penuh, atau ketidaksesuaian skema antara sumber dan tujuan, dapat mengakibatkan kehilangan data untuk kolom yang tidak dipetakan.
Langkah 5: Konfigurasi pengaturan tugas lanjutan
Klik Next: Advanced settings dan konfigurasikan hal berikut.
| Parameter | Deskripsi |
|---|---|
| Dedicated cluster for task scheduling | Secara default, DTS menggunakan kluster bersama. Beli kluster khusus untuk stabilitas yang lebih tinggi. Lihat What is a DTS dedicated cluster. |
| Set alerts | Konfigurasikan Peringatan untuk kegagalan task atau latensi migrasi yang melebihi ambang batas. Pilih Yes untuk menentukan ambang batas peringatan dan kontak notifikasi. Lihat Configure monitoring and alerting. |
| Retry time for failed connections | Rentang: 10–1.440 menit. Default: 720 menit. Kami menyarankan Anda mengatur parameter ini ke nilai lebih dari 30. DTS melanjutkan task jika terhubung kembali dalam jendela waktu ini; jika tidak, task akan gagal. Jika beberapa task menggunakan sumber atau tujuan yang sama, nilai yang paling baru ditetapkan akan berlaku. |
| Retry time for other issues | Rentang: 1–1.440 menit. Default: 10 menit. Kami menyarankan Anda mengatur parameter ini ke nilai lebih dari 10. Nilai ini harus lebih kecil daripada nilai Retry time for failed connections. |
| Enable throttling for full data migration | Membatasi beban baca/tulis pada sumber dan tujuan selama migrasi data penuh. Atur QPS to the source database, RPS of full data migration, dan Data migration speed (MB/s). Tersedia hanya jika migrasi data penuh dipilih. |
| Enable throttling for incremental data migration | Membatasi beban selama migrasi data inkremental. Atur RPS of incremental data migration dan Data migration speed (MB/s). Tersedia hanya jika migrasi data inkremental dipilih. |
| Environment tag | Opsional. Beri tag pada instans DTS untuk identifikasi lingkungan. |
| Configure ETL | Aktifkan fitur ekstrak, transformasi, dan muat (ETL) untuk menerapkan transformasi data selama migrasi. Lihat What is ETL? dan Configure ETL. |
Langkah 6: Jalankan pemeriksaan awal
Klik Next: Save task settings and precheck.
Untuk melihat pratinjau parameter OpenAPI untuk mengonfigurasi tugas ini melalui API, arahkan kursor ke Next: Save task settings and precheck dan klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum tugas migrasi dapat dimulai.
Jika item pemeriksaan fails: klik View details, selesaikan masalah, lalu klik Precheck again.
Jika item pemeriksaan menampilkan alert: tentukan apakah dapat diabaikan dengan aman. Untuk mengabaikannya, klik View details > Ignore > OK > Precheck again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Tunggu hingga tingkat keberhasilan mencapai 100%.
Langkah 7: Beli instans migrasi dan mulai tugas
Klik Next: Purchase instance.
Di halaman Purchase instance, konfigurasikan hal berikut:
Bagian Parameter Deskripsi Kelas instans baru Pengaturan kelompok sumber daya Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Resource Management? Instance Class Kelas instans menentukan kecepatan migrasi. Lihat Spesifikasi instans migrasi data. Baca dan centang kotak Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and start.
Tugas migrasi dimulai. Lacak progres di daftar tugas.
FAQ
Apa yang harus saya masukkan untuk field oblogproxy jika oblogproxy belum diinstal?
Gunakan nilai default untuk IP address in log proxy (domain name not supported) dan Port in log proxy, dan jangan pilih Incremental data migration untuk Migration types. Memilih migrasi inkremental tanpa menginstal oblogproxy akan menyebabkan error.
Wilayah database OceanBase sumber saya tidak ada di daftar drop-down Instance region. Apa yang harus saya pilih?
Pilih wilayah terdekat dengan database OceanBase sumber Anda.
Database OceanBase sumber saya diterapkan dalam klaster. Apa yang harus saya masukkan untuk parameter Domain Name atau IP?
Atur parameter ini ke nilai yang Anda tentukan untuk OBServer Node saat membuat klaster.
Bagaimana cara mengatur Port number untuk penyebaran OceanBase berklaster?
Jika database OceanBase sumber dalam mode standalone, gunakan port default. Jika diterapkan dalam klaster, gunakan nilai yang Anda tentukan untuk SQL Port saat membuat klaster.
Bagaimana format field Database account untuk database OceanBase sumber?
Gunakan format <username>@<tenant_name>. Misalnya, jika user adalah dtstest dan tenant adalah dts, masukkan dtstest@dts.