Layanan Transmisi Data (Data Transmission Service/DTS) mendukung migrasi data dari database Oracle yang dikelola sendiri ke instans ApsaraDB RDS for PostgreSQL dengan downtime minimal. Jalankan migrasi skema, migrasi data penuh, dan migrasi data inkremental secara bersamaan agar database sumber tetap dapat melayani lalu lintas selama proses migrasi.
Prasyarat
Sebelum memulai, pastikan bahwa:
Versi database Oracle adalah 9i, 10g, 11g, 12c, 18c, atau 19c.
Database Oracle berjalan dalam Mode ARSIPLOG (ARCHIVELOG mode) dengan file log arsip dapat diakses dan periode retensi yang sesuai telah dikonfigurasi. Untuk detailnya, lihat Managing Archived Redo Log Files.
Supplemental logging diaktifkan untuk database Oracle, dengan
SUPPLEMENTAL_LOG_DATA_PKdanSUPPLEMENTAL_LOG_DATA_UIkeduanya diatur keYes. Untuk detailnya, lihat Supplemental Logging.Semua tabel yang akan dimigrasikan memiliki primary key atau indeks UNIQUE NOT NULL.
Instans ApsaraDB RDS for PostgreSQL tujuan telah dibuat. Untuk detailnya, lihat Create an ApsaraDB RDS for PostgreSQL instance.
Anda telah meninjau kemampuan dan batasan DTS untuk migrasi Oracle. Gunakan Advanced Database & Application Migration (ADAM) untuk melakukan penilaian kompatibilitas database sebelum migrasi. Untuk detailnya, lihat Prepare an Oracle database dan Overview.
Penagihan
| Jenis migrasi | Biaya konfigurasi tugas | Biaya trafik Internet |
|---|---|---|
| Migrasi skema dan migrasi data penuh | Gratis | Dikenakan biaya hanya jika data dimigrasikan dari Alibaba Cloud melalui Internet. Lihat Billing overview. |
| Migrasi data inkremental | Dikenakan biaya. Lihat Billing overview. | — |
Jenis migrasi
| Jenis migrasi | Deskripsi |
|---|---|
| Migrasi skema | Memigrasikan skema objek dari Oracle ke ApsaraDB RDS for PostgreSQL. Jenis objek yang didukung: table, view, synonym, trigger, stored procedure, stored function, package, dan custom type. Catatan DTS tidak kompatibel dengan trigger. Hapus trigger dari database sumber sebelum migrasi untuk mencegah ketidakkonsistenan data. Untuk detailnya, lihat Configure a data synchronization task for a source database that contains a trigger. |
| Migrasi data penuh | Memigrasikan semua data yang ada dari database Oracle ke ApsaraDB RDS for PostgreSQL. Jangan lakukan operasi DDL pada objek yang sedang dimigrasikan selama fase ini. |
| Migrasi data inkremental | Setelah migrasi data penuh selesai, DTS mengambil file redo log dari database Oracle dan menerapkan perubahan inkremental ke ApsaraDB RDS for PostgreSQL. Hal ini menjaga database sumber tetap beroperasi selama proses migrasi. |
Operasi SQL yang didukung untuk migrasi inkremental
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | CREATE TABLE (tidak termasuk pernyataan dengan klausa partisi, subpartisi, atau fungsi; CREATE TABLE AS SELECT tidak didukung), ALTER TABLE (ADD COLUMN, ADD INDEX, DROP COLUMN, DROP INDEX, MODIFY COLUMN, RENAME COLUMN), DROP TABLE, RENAME TABLE, TRUNCATE TABLE, CREATE INDEX |
Batasan
Selama migrasi skema, DTS memigrasikan kunci asing (foreign keys) dari database sumber ke database tujuan.
Selama migrasi data penuh dan migrasi data inkremental, DTS sementara menonaktifkan pemeriksaan constraint dan operasi kaskade pada kunci asing di tingkat session. Jika Anda melakukan operasi kaskade dan penghapusan (delete) pada database sumber selama migrasi, ketidakkonsistenan data dapat terjadi.
Batasan database sumber
Server database sumber harus memiliki bandwidth keluar yang mencukupi. Bandwidth yang tidak mencukupi akan mengurangi kecepatan migrasi.
Jika database sumber adalah database Oracle RAC yang terhubung melalui Express Connect, Anda harus menentukan alamat IP virtual (VIP) saat mengonfigurasi database sumber.
Jika database sumber adalah database Oracle RAC yang terhubung melalui Express Connect, VPN Gateway, Smart Access Gateway, Database Gateway, atau Cloud Enterprise Network (CEN), gunakan satu VIP saja, bukan alamat IP Single Client Access Name (SCAN) saat mengonfigurasi database sumber. Setelah menentukan VIP, failover node tidak didukung untuk database Oracle RAC tersebut.
Jika bidang VARCHAR2 di Oracle berisi string kosong (yang dievaluasi sebagai null di Oracle) dan bidang yang sesuai di PostgreSQL memiliki Kendala NOT NULL, tugas migrasi akan gagal.
Tabel yang akan dimigrasikan harus memiliki PRIMARY KEY atau Kendala UNIK dengan semua bidang unik. Tanpa ini, database tujuan mungkin berisi catatan duplikat.
Untuk Oracle 12c atau versi lebih baru, nama tabel tidak boleh melebihi 30 byte.
Jika Anda memilih tabel sebagai objek migrasi dan perlu mengganti nama tabel atau kolom di tujuan, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau migrasikan seluruh database.
Untuk migrasi inkremental, logging redo dan logging arsip harus diaktifkan: Kegagalan memenuhi persyaratan retensi ini dapat menyebabkan DTS kehilangan akses ke log yang diperlukan, sehingga menyebabkan kegagalan tugas atau, dalam kasus ekstrem, kehilangan data atau ketidakkonsistenan. Perjanjian Tingkat Layanan (SLA) DTS tidak mencakup kegagalan yang disebabkan oleh retensi log yang tidak mencukupi.
Hanya migrasi inkremental: log redo dan log arsip harus dipertahankan lebih dari 24 jam.
Migrasi data penuh + migrasi data inkremental: log redo dan log arsip harus dipertahankan setidaknya 7 hari. Setelah migrasi data penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam.
Selama migrasi skema dan migrasi data penuh, jangan lakukan operasi DDL pada objek yang dimigrasikan. Hal ini menyebabkan kegagalan migrasi.
Hanya selama migrasi data penuh (tanpa inkremental), jangan menulis ke database sumber. Untuk memastikan konsistensi data, jalankan migrasi skema, migrasi data penuh, dan migrasi data inkremental secara bersamaan.
Jangan memperbarui bidang LONGTEXT selama migrasi. Hal ini menyebabkan kegagalan migrasi.
Batasan lainnya
Jalankan migrasi selama jam sepi. Migrasi data penuh menggunakan sumber daya baca dan tulis pada kedua database sumber dan tujuan, sehingga meningkatkan beban database.
Setelah migrasi data penuh, ruang tabel (tablespace) tujuan akan lebih besar daripada sumber karena fragmentasi INSERT konkuren.
DTS secara otomatis mencoba ulang tugas migrasi yang gagal hingga 7 hari. Sebelum mengalihkan beban kerja ke tujuan, hentikan atau lepaskan tugas yang gagal tersebut. Atau, eksekusi pernyataan
REVOKEuntuk mencabut izin tulis dari akun DTS pada database tujuan. Jika tidak, tugas yang gagal dan dilanjutkan kembali dapat menimpa data tujuan dengan data sumber.Set karakter database sumber dan tujuan harus kompatibel. Set karakter yang tidak kompatibel menyebabkan ketidakkonsistenan data atau kegagalan migrasi.
Gunakan fitur migrasi skema DTS untuk menghindari kegagalan akibat tipe data yang tidak kompatibel.
Database sumber dan tujuan harus menggunakan zona waktu yang sama.
DTS tidak menulis terminator null
\0ke ApsaraDB RDS for PostgreSQL. Jika data yang dimigrasikan berisi karakter ini, ketidakkonsistenan data dapat terjadi.Konstraint CHECK di Oracle dikonversi menjadi Kendala NOT NULL di ApsaraDB RDS for PostgreSQL.
DTS memigrasikan objek tipe kustom ke ApsaraDB RDS for PostgreSQL. Objek bawaan yang dihasilkan secara otomatis oleh Oracle tidak dimigrasikan — ApsaraDB RDS for PostgreSQL sudah mendukung objek tersebut secara native.
Siapkan akun database
Login ke database Oracle, buat akun untuk digunakan oleh DTS, dan berikan izin yang diperlukan.
Jika Anda sudah memiliki akun dengan izin seperti pada tabel di bawah, lewati langkah ini.
| Database | Migrasi skema | Migrasi data penuh | Migrasi data inkremental |
|---|---|---|---|
| Database Oracle yang dikelola sendiri | Izin pemilik skema | Izin pemilik skema | Izin tingkat granularitas halus (fine-grained permissions) |
| ApsaraDB RDS for PostgreSQL | Izin pemilik skema | — | — |
Untuk membuat akun dan memberikan izin:
Database Oracle yang dikelola sendiri: Prepare a database account, CREATE USER, dan GRANT
Instans ApsaraDB RDS for PostgreSQL: Create an account
Buat tugas migrasi
Buka halaman Tugas Migrasi Data (Data Migration Tasks).
Login ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik DTS.
Di panel navigasi kiri, pilih DTS (DTS) > Data Migration.
Langkah-langkah dapat berbeda tergantung pada mode dan tata letak konsol DMS. Untuk detailnya, lihat Simple mode dan Customize the layout and style of the DMS console. Anda juga dapat langsung membuka halaman Tugas Migrasi Data di konsol DTS baru.
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
Di konsol DTS baru, pilih wilayah dari pojok kiri atas.
Klik Create Task dan konfigurasikan database sumber dan tujuan.
PeringatanSetelah mengonfigurasi database sumber dan tujuan, tinjau batasan yang ditampilkan di bagian atas halaman sebelum melanjutkan. Melewatkan tinjauan ini dapat menyebabkan kegagalan tugas atau ketidakkonsistenan data.
Source database
Parameter Deskripsi Task Name Nama untuk tugas migrasi. DTS memberikan nama default. Gunakan nama deskriptif agar tugas mudah diidentifikasi. Database Type Pilih Oracle. Connection Type Metode yang digunakan untuk mengakses database Oracle sumber. Pada contoh ini, Public IP Address dipilih. Untuk metode akses lainnya, siapkan lingkungan yang diperlukan terlebih dahulu. Lihat Preparation overview. Instance Region Wilayah tempat database Oracle sumber berada. Hostname or IP address Alamat IP database Oracle sumber. Port Number Port layanan database Oracle sumber. Default: 1521. Port ini harus dapat diakses melalui Internet untuk contoh ini. Oracle Type Arsitektur database Oracle sumber. Pilih Non-RAC Instance untuk mengonfigurasi parameter SID, atau RAC or PDB Instance untuk mengonfigurasi parameter Service Name. Contoh ini menggunakan Non-RAC Instance. Database Account Akun untuk database Oracle sumber. Untuk izin yang diperlukan, lihat Set up database accounts. Database Password Kata sandi untuk akun database. Destination database
Parameter Deskripsi Database Type Pilih PostgreSQL. Connection Type Pilih Alibaba Cloud Instance. Instance Region Wilayah tempat instans ApsaraDB RDS for PostgreSQL tujuan berada. Instance ID ID instans ApsaraDB RDS for PostgreSQL tujuan. Database Name Nama database tujuan. Database Account Akun untuk instans tujuan. Untuk izin yang diperlukan, lihat Set up database accounts. Database Password Kata sandi untuk akun database. Jika database sumber menggunakan daftar putih alamat IP, tambahkan blok CIDR server DTS ke daftar putih tersebut. Lalu klik Test Connectivity and Proceed.
PeringatanMenambahkan blok CIDR server DTS ke daftar putih database atau grup keamanan dapat menimbulkan risiko keamanan. Sebelum menggunakan DTS, ambil langkah pencegahan seperti: memperkuat keamanan username dan password, membatasi port yang terbuka, mengotentikasi panggilan API, secara berkala mengaudit aturan daftar putih dan grup keamanan, serta menghapus blok CIDR yang tidak sah. Pertimbangkan untuk menghubungkan database ke DTS melalui Express Connect, VPN Gateway, atau Smart Access Gateway, bukan menggunakan alamat IP publik.
Konfigurasikan objek dan pengaturan migrasi.
Parameter Deskripsi Migration Types Pilih Schema Migration, Full Data Migration, dan Incremental Data Migration untuk memastikan kontinuitas layanan. Pilih hanya Schema Migration dan Full Data Migration untuk migrasi satu kali dengan downtime. CatatanTanpa migrasi data inkremental, jangan menulis ke database sumber selama migrasi.
Processing Mode of Conflicting Tables Precheck and Report Errors: memeriksa konflik nama tabel sebelum memulai. Tugas akan gagal dalam pemeriksaan awal jika ditemukan konflik. Gunakan object name mapping untuk menyelesaikan konflik tanpa menghapus atau mengganti nama tabel tujuan. Ignore Errors and Proceed: melewati pemeriksaan konflik. PeringatanOpsi ini dapat menyebabkan ketidakkonsistenan data. Jika skema cocok, DTS melewati catatan dengan primary key duplikat. Jika skema berbeda, hanya kolom tertentu yang dimigrasikan atau tugas gagal.
Source Objects Pilih objek dari Source Objects dan klik ikon panah untuk menambahkannya ke Selected Objects. Selected Objects Klik kanan objek untuk mengganti namanya atau menetapkan kondisi filter WHERE. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus. CatatanMengganti nama objek dengan fitur pemetaan nama objek dapat menyebabkan migrasi objek dependen gagal. Untuk kondisi WHERE, lihat Set filter conditions. Untuk pemilihan operasi SQL inkremental per tabel, klik kanan tabel dan pilih operasi SQL yang akan disertakan.
Klik Next: Advanced Settings dan konfigurasikan parameter berikut.
Parameter Deskripsi Select the dedicated cluster used to schedule the task Secara default, DTS menjadwalkan tugas ke kluster bersama. Untuk menggunakan kluster khusus, beli terlebih dahulu. Lihat What is a DTS dedicated cluster? Retry Time for Failed Connections Durasi DTS mencoba ulang jika database sumber atau tujuan tidak dapat dijangkau setelah tugas dimulai. Nilai valid: 10–1.440 menit. Default: 720 menit. Atur minimal 30 menit. Jika DTS berhasil terhubung kembali dalam periode ini, tugas akan dilanjutkan secara otomatis. CatatanJika beberapa tugas berbagi database sumber atau tujuan, waktu coba ulang yang paling baru ditentukan akan berlaku. DTS mengenakan biaya untuk instans selama periode coba ulang. Kami menyarankan Anda menentukan waktu coba ulang sesuai kebutuhan bisnis dan segera melepaskan instans DTS setelah database sumber dan instans tujuan dilepaskan.
The wait time before a retry when other issues occur in the source and destination databases. Durasi DTS mencoba ulang jika operasi DDL atau DML gagal setelah tugas dimulai. Nilai valid: 1–1.440 menit. Default: 10 menit. Atur minimal 10 menit. Nilai ini harus lebih kecil dari nilai Retry Time for Failed Connections. Enable Throttling for Full Data Migration Membatasi penggunaan sumber daya DTS selama migrasi data penuh untuk mengurangi beban pada server database. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Tersedia hanya jika Full Data Migration dipilih. Enable Throttling for Incremental Data Migration Membatasi penggunaan sumber daya DTS selama migrasi data inkremental. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Tersedia hanya jika Incremental Data Migration dipilih. Environment Tag Tag opsional untuk mengidentifikasi instans DTS. Actual Write Code Format encoding untuk data yang ditulis ke database tujuan. Configure ETL Apakah akan mengaktifkan fitur ekstrak, transformasi, dan muat (extract, transform, and load/ETL). Pilih Yes untuk memasukkan pernyataan pemrosesan data di editor kode. Lihat Configure ETL in a data migration or data synchronization task. Pilih No untuk melewati ETL. Lihat juga: What is ETL? Monitoring and Alerting Apakah akan mengonfigurasi peringatan untuk kegagalan tugas atau latensi migrasi yang melebihi ambang batas. Pilih Yes untuk menentukan ambang batas peringatan dan kontak. Lihat Configure monitoring and alerting for a new DTS task. Klik Next: Save Task Settings and Precheck. Untuk melihat pratinjau parameter API untuk konfigurasi ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview API Call.
DTS menjalankan pemeriksaan awal sebelum memulai tugas. Tugas hanya dapat dimulai setelah lulus pemeriksaan awal. - Jika pemeriksaan awal gagal, klik View Details di samping setiap item yang gagal, perbaiki masalahnya, lalu klik Precheck Again. - Jika pemeriksaan awal menghasilkan peringatan, perbaiki masalah dan jalankan ulang pemeriksaan awal, atau klik Confirm Alert Details > Ignore > OK > Precheck Again untuk melanjutkan. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Tunggu hingga tingkat keberhasilan mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan parameter berikut.
Parameter Deskripsi Resource Group Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat What is Resource Management? Instance Class Kelas instans menentukan kecepatan migrasi. Lihat Specifications of data migration instances. Baca dan centang kotak Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start. Pantau progres tugas di halaman Manajemen Tugas (Task Management).