Layanan Transmisi Data (DTS) mendukung migrasi data dari kluster PolarDB for PostgreSQL (Kompatibel dengan Oracle) ke database Oracle yang dikelola sendiri, mencakup migrasi data penuh untuk mentransfer data historis serta migrasi data inkremental untuk mereplikasi perubahan berkelanjutan dengan waktu henti layanan minimal.
Prasyarat
Sebelum memulai, pastikan bahwa:
Kluster sumber PolarDB for PostgreSQL (Kompatibel dengan Oracle) telah dibuat. Untuk informasi lebih lanjut, lihat Buat kluster PolarDB for PostgreSQL (Kompatibel dengan Oracle).
Parameter
wal_levelpada kluster sumber diatur kelogical. Pengaturan ini mengaktifkan logical encoding dalam write-ahead logging (WAL). Untuk informasi lebih lanjut, lihat Konfigurasi parameter kluster.
Izin yang diperlukan
| Database | Izin yang diperlukan |
|---|---|
| Kluster sumber PolarDB for PostgreSQL (Kompatibel dengan Oracle) | Akun istimewa |
| Database Oracle yang dikelola sendiri | Pemilik skema |
Untuk membuat akun dan memberikan izin, lihat:
PolarDB for PostgreSQL (Kompatibel dengan Oracle): Buat akun database
Database Oracle yang dikelola sendiri: CREATE USER dan GRANT
Penagihan
| Jenis migrasi | Biaya konfigurasi instans | Biaya lalu lintas Internet |
|---|---|---|
| Migrasi data penuh | Gratis | Dikenakan biaya hanya jika data dimigrasikan dari Alibaba Cloud melalui Internet. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan. |
| Migrasi data inkremental | Dikenakan biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan. | Dikenakan biaya hanya jika data dimigrasikan dari Alibaba Cloud melalui Internet. |
Jenis migrasi
| Jenis migrasi | Deskripsi |
|---|---|
| Migrasi data penuh | Memindahkan data historis dari database sumber ke tujuan. Jangan lakukan operasi DDL pada objek yang dimigrasikan selama fase ini. |
| Migrasi data inkremental | Membaca file redo log dari database sumber dan mereplikasi perubahan berkelanjutan ke tujuan. Pilih jenis ini bersamaan dengan migrasi data penuh agar layanan tetap berjalan selama migrasi. |
Operasi SQL yang didukung untuk migrasi inkremental
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | Tersedia hanya jika akun database sumber adalah akun istimewa: CREATE TABLE, DROP TABLE, ALTER TABLE (termasuk RENAME TABLE, ADD COLUMN, ADD COLUMN DEFAULT, ALTER COLUMN TYPE, DROP COLUMN, ADD CONSTRAINT, ADD CONSTRAINT CHECK, ALTER COLUMN DROP DEFAULT), TRUNCATE TABLE, CREATE INDEX ON TABLE |
Migrasi DDL hanya tersedia untuk tugas yang dibuat setelah 1 Oktober 2020. Jika tugas Anda dibuat sebelum 12 Mei 2023, buat trigger dan fungsi di database sumber sebelum mengonfigurasi tugas migrasi. Untuk informasi lebih lanjut, lihat Gunakan trigger dan fungsi untuk menerapkan migrasi DDL inkremental pada database PostgreSQL.
Operasi DDL berikut tidak dimigrasikan:
Informasi DDL tambahan seperti CASCADE atau RESTRICT
Pernyataan DDL dari sesi yang mengeksekusi
SET session_replication_role = replicaPernyataan DDL yang diajukan dalam transaksi yang sama dengan pernyataan DML
Pernyataan DDL pada objek yang tidak dipilih untuk migrasi
Migrasi data inkremental tidak mendukung tipe data BIT.
Batasan
Selama migrasi skema, DTS memindahkan kunci asing dari database sumber ke tujuan. Selama migrasi data penuh dan inkremental, DTS secara sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat sesi. Jika Anda melakukan operasi kaskade dan penghapusan 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.
Tabel yang akan dimigrasikan harus memiliki kendala PRIMARY KEY atau UNIQUE, dan semua bidang harus unik. Jika tidak, database tujuan mungkin berisi catatan duplikat.
Jika Anda memilih tabel sebagai objek migrasi dan perlu mengganti nama tabel atau kolom di database tujuan, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau migrasikan seluruh database.
Untuk migrasi data inkremental, WAL harus diaktifkan dan log WAL harus disimpan selama periode berikut: Jika log tidak disimpan selama periode yang diperlukan, DTS mungkin gagal memperoleh log WAL dan tugas dapat gagal. Dalam kondisi luar biasa, kehilangan data atau ketidakkonsistenan dapat terjadi. Setelah migrasi data penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam.
Hanya migrasi data inkremental: lebih dari 24 jam
Migrasi data penuh dan migrasi data inkremental: minimal tujuh hari
Selama migrasi data penuh, jangan lakukan operasi DDL yang mengubah skema database atau tabel. Tugas migrasi akan gagal.
Jika Anda hanya melakukan migrasi data penuh, jangan menulis data ke database sumber selama migrasi. Untuk memastikan konsistensi data, pilih kedua opsi Full Data Migration dan Incremental Data Migration.
Jika Anda berencana melakukan alih bencana primary/secondary pada kluster sumber, aktifkan fitur Logical Replication Slot Failover terlebih dahulu untuk mencegah interupsi langganan logis. Untuk informasi lebih lanjut, lihat Logical replication slot failover.
Jika terdapat transaksi jangka panjang di database sumber selama migrasi inkremental, log WAL yang dihasilkan sebelum transaksi tersebut dikomit dapat menumpuk dan menyebabkan ruang disk tidak mencukupi.
Batasan lainnya
Migrasi skema tidak didukung. Sebelum mengonfigurasi tugas migrasi, buat database dan tabel yang diperlukan di instans tujuan.
Satu tugas migrasi hanya memindahkan data dari satu database. Untuk memindahkan beberapa database, buat tugas terpisah untuk setiap database.
Selama migrasi inkremental, jika Anda memilih skema sebagai objek migrasi lalu membuat atau mengganti nama tabel di skema tersebut, jalankan pernyataan berikut sebelum menulis data ke tabel tersebut:
ALTER TABLE schema.table REPLICA IDENTITY FULL;Ganti
schemadantabledengan nama skema dan tabel yang sebenarnya.Untuk melacak latensi migrasi, DTS membuat tabel bernama
dts_postgres_heartbeatdi database sumber. Gambar berikut menunjukkan struktur tabel.
Selama migrasi inkremental, DTS membuat slot replikasi dengan awalan
dts_sync_di database sumber. DTS dapat memperoleh log inkremental dari 15 menit terakhir menggunakan slot ini.Setelah instans DTS dilepas, slot replikasi akan dihapus secara otomatis.
Jika Anda mengubah kata sandi database sumber atau menghapus DTS dari daftar putih alamat IP, slot replikasi tidak akan dihapus secara otomatis. Hapus secara manual dari database sumber untuk mencegah akumulasi slot.
Jika tugas migrasi dilepas atau gagal, DTS secara otomatis membersihkan slot replikasi. Jika dilakukan alih bencana primary/secondary pada kluster sumber, login ke instans secondary untuk membersihkan slot replikasi.
Migrasi data penuh menggunakan operasi INSERT konkuren, yang menyebabkan fragmentasi pada tabel tujuan. Setelah migrasi selesai, ruang tabel database tujuan lebih besar daripada database sumber.
DTS menggunakan fungsi
ROUND(COLUMN,PRECISION)untuk mengambil nilai dari kolom FLOAT dan DOUBLE. Presisi default adalah 38 digit untuk FLOAT dan 308 digit untuk DOUBLE. Pastikan pengaturan presisi ini memenuhi kebutuhan Anda sebelum memulai migrasi.DTS mencoba melanjutkan tugas yang gagal hingga tujuh hari. Sebelum mengalihkan beban kerja ke database tujuan, hentikan atau lepaskan tugas yang gagal, atau jalankan pernyataan
REVOKEuntuk mencabut izin tulis akun DTS pada database tujuan. Jika tidak, tugas yang dilanjutkan dapat menimpa data di database tujuan.
Kasus khusus
Jika database Oracle yang dikelola sendiri diterapkan dalam arsitektur Real Application Cluster (RAC) dan terhubung ke DTS melalui virtual private cloud (VPC), hubungkan alamat IP Single Client Access Name (SCAN) dan alamat IP virtual (VIP) setiap node ke VPC serta konfigurasikan entri rute. Saat mengonfigurasi database Oracle di konsol DTS, tentukan alamat IP SCAN sebagai database endpoint atau alamat IP. Untuk informasi lebih lanjut, lihat Hubungkan database lokal ke Alibaba Cloud dan Hubungkan pusat data ke DTS menggunakan VPN Gateway.
Konfigurasi tugas migrasi
Langkah 1: Buka halaman Tugas Migrasi Data
Login ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik DTS.
Di panel navigasi kiri, pilih DTS (DTS) > Data Migration.
Operasi dapat berbeda tergantung mode dan tata letak konsol DMS. Untuk informasi lebih lanjut, lihat Simple mode dan Sesuaikan tata letak dan gaya konsol DMS. Anda juga dapat langsung membuka halaman Tugas Migrasi Data di konsol DTS baru.
Langkah 2: Pilih wilayah
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi data berada.
Di konsol DTS baru, pilih wilayah di pojok kiri atas.
Langkah 3: Konfigurasi database sumber dan tujuan
Klik Create Task. Di wizard Create Task, konfigurasikan database sumber dan tujuan menggunakan parameter berikut.
Baca batasan yang ditampilkan di bagian atas halaman sebelum melanjutkan. Melewatkan langkah ini dapat menyebabkan kegagalan tugas atau ketidakkonsistenan data.
Database sumber
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama tugas. DTS memberikan nama secara otomatis. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik. |
| Database Type | Pilih PolarDB (Compatible with Oracle). |
| Access Method | Pilih Public IP Address. |
| Instance Region | Wilayah tempat kluster sumber PolarDB for PostgreSQL (Kompatibel dengan Oracle) berada. |
| Data Sources | Pilih Single Data Source untuk hanya mengonfigurasi endpoint dan port node primer. Pilih Multiple Data Sources untuk menentukan alamat IP dan nomor port beberapa node (termasuk node primer) di bidang IP:Port of Data Sources. Dengan beberapa sumber data yang dikonfigurasi, DTS secara otomatis beralih ke node primer baru selama alih bencana primary/secondary, yang berguna dalam skenario pemulihan bencana. Contoh ini menggunakan Single Data Source. |
| Domain Name or IP Address | Endpoint node primer di kluster sumber. Jalankan perintah ping di komputer Anda untuk mendapatkan alamat IP. |
| Port Number | Port layanan database sumber. Nilai default: 1521. Port harus dapat diakses melalui Internet. |
| IP:Port of Data Sources | Alamat IP dan nomor port beberapa node termasuk node primer. Pisahkan beberapa entri dengan koma (,). Diperlukan saat Multiple Data Sources dipilih. |
| Oracle Type | Pilih Non-RAC Instance untuk mengonfigurasi parameter SID, atau pilih RAC or PDB Instance untuk mengonfigurasi parameter Service Name. Contoh ini menggunakan Non-RAC Instance. |
| Database Name | Nama database sumber di kluster. |
| Database Account | Akun database kluster sumber. Untuk izin yang diperlukan, lihat Izin yang diperlukan. |
| Database Password | Kata sandi akun database. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| Database Type | Pilih Oracle. |
| Access Method | Pilih Public IP Address. |
| Instance Region | Wilayah tempat database Oracle tujuan berada. |
| Hostname or IP Address | Endpoint database Oracle tujuan. |
| Port Number | Port layanan database tujuan. Nilai default: 1521. |
| Oracle Type | Pilih Non-RAC Instance untuk mengonfigurasi parameter SID, atau pilih RAC or PDB Instance untuk mengonfigurasi parameter Service Name. Contoh ini menggunakan Non-RAC Instance. |
| Database Account | Akun database Oracle tujuan. Untuk izin yang diperlukan, lihat Izin yang diperlukan. |
| Database Password | Kata sandi akun database. |
Langkah 4: Uji konektivitas dan tambahkan alamat IP DTS ke daftar putih
Jika database yang dikelola sendiri Anda memiliki daftar putih alamat IP yang dikonfigurasi, tambahkan blok CIDR server DTS ke daftar putih tersebut. Lalu klik Test Connectivity and Proceed.
Menambahkan blok CIDR server DTS ke daftar putih instans database atau aturan security group ECS dapat mengekspos lingkungan Anda terhadap risiko keamanan. Sebelum melanjutkan, ambil langkah perlindungan, termasuk memperkuat keamanan akun dan kata sandi, membatasi port yang terbuka, mengotentikasi panggilan API, dan meninjau aturan daftar putih secara berkala. Pertimbangkan untuk menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway untuk menghubungkan database ke DTS alih-alih mengeksposnya melalui Internet.
Langkah 5: Konfigurasi objek dan pengaturan migrasi
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih Full Data Migration hanya untuk data historis. Pilih kedua opsi Full Data Migration dan Incremental Data Migration agar layanan tetap berjalan selama migrasi. Jika Anda tidak memilih Incremental Data Migration, jangan menulis data ke database sumber selama migrasi. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: memeriksa apakah database tujuan berisi tabel dengan nama yang sama seperti di sumber. Jika nama identik ada, pemeriksaan awal gagal dan tugas tidak dapat dimulai. Gunakan fitur pemetaan nama objek untuk mengganti nama tabel yang bentrok. Untuk informasi lebih lanjut, lihat Map object names. Ignore Errors and Proceed: melewati pemeriksaan bentrok nama. Jika skema sumber dan tujuan cocok, DTS melewati catatan dengan nilai kunci primer duplikat. Jika skema berbeda, hanya kolom tertentu yang dimigrasikan atau tugas mungkin gagal. Gunakan dengan hati-hati. |
| Source Objects | Pilih objek dari Source Objects dan klik ikon panah untuk menambahkannya ke Selected Objects. Anda dapat memilih kolom, tabel, atau skema. Jika Anda memilih tabel atau kolom, DTS tidak memindahkan view, trigger, atau prosedur tersimpan. |
| Selected Objects | Untuk mengganti nama satu objek di instans tujuan, klik kanan objek di Selected Objects. Untuk informasi lebih lanjut, lihat Map the name of a single object. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas. Untuk informasi lebih lanjut, lihat Map multiple object names at a time. Untuk memfilter data dengan kondisi WHERE, klik kanan tabel di Selected Objects dan tentukan kondisinya. Untuk informasi lebih lanjut, lihat Use SQL conditions to filter data. Untuk memilih operasi SQL tertentu yang akan dimigrasikan untuk suatu objek, klik kanan objek di Selected Objects dan pilih operasinya. |
Mengganti nama objek menggunakan fitur pemetaan nama objek dapat menyebabkan objek lain yang bergantung padanya gagal dimigrasikan.
Langkah 6: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Set Alerts | Pilih No untuk melewati peringatan. Pilih Yes untuk mengonfigurasi peringatan. Saat tugas gagal atau latensi migrasi melebihi ambang batas, kontak peringatan yang ditentukan akan menerima notifikasi. Untuk informasi lebih lanjut, lihat Configure monitoring and alerting. |
| Retry Time for Failed Connections | Rentang waktu selama DTS mencoba koneksi ulang setelah tugas dimulai. Nilai valid: 10–1440 menit. Default: 720 menit. Atur nilai ini lebih dari 30 menit. Jika DTS terhubung kembali dalam periode ini, tugas dilanjutkan. Jika tidak, tugas gagal. Jika beberapa tugas berbagi database sumber atau tujuan yang sama, rentang waktu percobaan ulang terpendek yang berlaku. |
| The wait time before a retry when other issues occur in the source and destination databases | Rentang waktu percobaan ulang untuk kegagalan operasi DDL atau DML. Nilai valid: 1–1440 menit. Default: 10 menit. Atur nilai ini lebih dari 10 menit. Nilai ini harus kurang dari nilai Retry Time for Failed Connections. |
| Configure ETL | Pilih Yes untuk mengonfigurasi fitur ekstrak, transformasi, muat (ETL) dan masukkan pernyataan pemrosesan data di editor kode. Untuk informasi lebih lanjut, lihat Configure ETL in a data migration or data synchronization task dan What is ETL?. Pilih No untuk melewati. |
Saat DTS mencoba koneksi ulang, instans DTS tetap dikenai biaya. Atur rentang waktu percobaan ulang sesuai kebutuhan bisnis Anda dan lepaskan instans DTS segera setelah instans sumber dan tujuan tidak lagi digunakan.
Langkah 7: Simpan pengaturan dan jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat parameter API untuk tugas ini, arahkan pointer ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum tugas dapat dimulai. Jika pemeriksaan awal gagal, klik View Details di samping setiap item yang gagal, selesaikan masalahnya, lalu klik Precheck Again.
Jika muncul peringatan pemeriksaan awal:
Jika peringatan tidak dapat diabaikan, klik View Details, selesaikan masalahnya, lalu jalankan ulang pemeriksaan awal.
Jika peringatan dapat diabaikan, klik Confirm Alert Details. Di dialog View Details, klik Ignore, lalu klik OK, dan klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 8: Beli instans
Tunggu hingga tingkat keberhasilan pemeriksaan awal mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan parameter berikut.
| Bagian | Parameter | Deskripsi |
|---|---|---|
| New Instance Class | Resource Group | Kelompok sumber daya untuk instans migrasi data. Default: default resource group. Untuk informasi lebih lanjut, lihat What is Resource Management?. |
| Instance Class | Kelas instans menentukan kecepatan migrasi. Pilih kelas sesuai skenario Anda. Untuk informasi lebih lanjut, lihat Specifications of data migration instances. |
Langkah 9: Mulai tugas
Pilih kotak centang Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start. Pantau progres di daftar tugas.