Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari instans ApsaraDB RDS for PPAS ke kluster PolarDB untuk PostgreSQL (Kompatibel dengan Oracle) dengan downtime minimal. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental. Pilih ketiga jenis tersebut agar instans sumber tetap dapat melayani traffic selama migrasi berlangsung.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki kluster PolarDB untuk PostgreSQL (Kompatibel dengan Oracle) dengan ruang penyimpanan yang tersedia lebih besar daripada total ukuran data pada instans sumber ApsaraDB RDS for PPAS. Lihat Buat kluster PolarDB untuk PostgreSQL (Kompatibel dengan Oracle).
Memiliki akun database untuk instans sumber ApsaraDB RDS for PPAS dengan izin yang diperlukan (lihat Izin yang diperlukan).
Memiliki akun database untuk kluster tujuan PolarDB for Oracle dengan izin pemilik skema. Lihat Buat akun database.
Pertimbangan penamaan: Jika nama database, tabel, atau field apa pun pada instans sumber mengandung huruf kapital, sertakan nama tersebut dalam tanda kutip ganda (") saat membuat objek yang sesuai di kluster PolarDB for Oracle.
Jenis migrasi
DTS mendukung tiga jenis migrasi untuk skenario ini. Pilih ketiganya untuk melakukan migrasi langsung tanpa downtime.
| Jenis migrasi | Apa yang dimigrasikan | Catatan |
|---|---|---|
| Migrasi skema | Skema tabel, view, sinonim, trigger, prosedur tersimpan, fungsi tersimpan, paket, dan tipe yang ditentukan pengguna | DTS tidak mendukung trigger. Jika ada objek yang menyertakan trigger, ketidakkonsistenan data dapat terjadi. |
| Migrasi data penuh | Data historis dari database sumber | Jangan lakukan operasi DDL pada objek yang dimigrasikan selama migrasi skema atau migrasi data penuh. |
| Migrasi data inkremental | Perubahan berkelanjutan yang diambil dari file redo log: INSERT, UPDATE, DELETE | Operasi DDL tidak disinkronkan. Memungkinkan kelangsungan layanan selama migrasi. |
Rekomendasi: Pilih Schema Migration, Full Data Migration, dan Incremental Data Migration secara bersamaan. Jika hanya memilih dua yang pertama, jangan menulis ke instans sumber selama migrasi untuk menghindari ketidakkonsistenan data.
Penagihan
| Jenis migrasi | Biaya konfigurasi tugas | Biaya lalu lintas internet |
|---|---|---|
| Migrasi skema + migrasi data penuh | Gratis | Dikenakan biaya hanya jika data dimigrasikan dari Alibaba Cloud melalui Internet. Lihat Ikhtisar penagihan. |
| Migrasi data inkremental | Dikenakan biaya. Lihat Ikhtisar penagihan. | — |
Izin yang diperlukan
Berikan izin berikut kepada akun database yang digunakan untuk migrasi.
| Database | Migrasi skema | Migrasi data penuh | Migrasi data inkremental |
|---|---|---|---|
| ApsaraDB RDS for PPAS | Read | Read | Peran superuser |
| Kluster PolarDB for Oracle | Pemilik skema | Pemilik skema | Pemilik skema |
Sebelum memulai
Dampak performa
DTS membaca dari database sumber selama migrasi data penuh dan menulis ke tujuan selama migrasi inkremental. Hal ini meningkatkan beban pada kedua database.
Untuk mengurangi risiko query lambat, error out of memory (OOM), atau gangguan layanan:
Jalankan migrasi saat utilisasi CPU pada database sumber dan tujuan berada di bawah 30%.
Pastikan spesifikasi kluster PolarDB for Oracle memenuhi atau melebihi spesifikasi instans sumber ApsaraDB RDS for PPAS (lihat Pemetaan spesifikasi).
Faktor yang meningkatkan beban: query SQL lambat pada sumber, tabel tanpa primary key, deadlock pada tujuan.
Batasan pra-migrasi
Tinjau batasan berikut sebelum memulai tugas migrasi. Jika konfigurasi Anda tidak memenuhi persyaratan ini, migrasi tidak dapat dilanjutkan.
Setiap tugas migrasi data hanya memigrasikan data dari satu database. Untuk memigrasikan beberapa database, buat tugas terpisah untuk masing-masing.
Tabel sumber harus memiliki kendala PRIMARY KEY atau UNIQUE dengan semua field unik. Tanpa kendala ini, database tujuan mungkin berisi catatan duplikat.
DTS memigrasikan kunci asing selama migrasi skema. Selama migrasi data penuh dan inkremental, DTS sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session. Jika Anda melakukan operasi kaskade atau penghapusan pada sumber selama periode ini, ketidakkonsistenan data dapat terjadi.
Batasan operasional
Ikuti aturan berikut selama tugas migrasi berjalan.
Jangan lakukan operasi DDL pada objek yang sedang dimigrasikan. Aturan ini berlaku selama migrasi skema, migrasi data penuh, dan migrasi data inkremental.
Jika tugas migrasi gagal, DTS akan secara otomatis melanjutkannya. Hentikan atau release tugas sebelum mengalihkan workload Anda ke kluster tujuan — jika tidak, penulisan ulang oleh tugas yang dilanjutkan dapat menimpa data di tujuan.
Pemetaan spesifikasi
Pilih kluster PolarDB for Oracle dengan spesifikasi setara atau lebih tinggi dibandingkan instans ApsaraDB RDS for PPAS Anda. CPU atau memori yang tidak mencukupi setelah migrasi dapat menyebabkan query lambat atau error OOM.
Jika Anda memiliki kebutuhan khusus terkait jumlah koneksi atau IOPS, lihat Spesifikasi node komputasi.
| Instans ApsaraDB RDS for PPAS | Kluster PolarDB for Oracle yang direkomendasikan | ||
|---|---|---|---|
| Tipe instans | CPU dan memori | Tipe instans | CPU dan memori |
| rds.ppas.t1.small | 1 core, 1 GB | polar.o.x4.medium | 2 core, 8 GB |
| ppas.x4.small.2 | 1 core, 4 GB | polar.o.x4.medium | 2 core, 8 GB |
| ppas.x4.medium.2 | 2 core, 8 GB | polar.o.x4.medium | 2 core, 8 GB |
| ppas.x8.medium.2 | 2 core, 16 GB | polar.o.x4.large | 4 core, 16 GB |
| ppas.x4.large.2 | 4 core, 16 GB | polar.o.x4.large | 4 core, 16 GB |
| ppas.x8.large.2 | 4 core, 32 GB | polar.o.x4.xlarge | 8 core, 32 GB |
| ppas.x4.xlarge.2 | 8 core, 32 GB | polar.o.x4.xlarge | 8 core, 32 GB |
| ppas.x8.xlarge.2 | 8 core, 64 GB | polar.o.x8.xlarge | 8 core, 64 GB |
| ppas.x4.2xlarge.2 | 16 core, 64 GB | polar.o.x8.2xlarge | 16 core, 128 GB |
| ppas.x8.2xlarge.2 | 16 core, 128 GB | polar.o.x8.2xlarge | 16 core, 128 GB |
| ppas.x4.4xlarge.2 | 32 core, 128 GB | polar.o.x8.4xlarge | 32 core, 256 GB |
| ppas.x8.4xlarge.2 | 32 core, 256 GB | polar.o.x8.4xlarge | 32 core, 256 GB |
| rds.ppas.st.h43 | 60 core, 470 GB | polar.o.x8.8xlarge | 64 core, 512 GB |
Buat tugas migrasi
Langkah 1: Buka halaman Tugas Migrasi Data
Login ke Konsol Data Management (DMS).
Pada bilah navigasi atas, klik DTS.
Pada panel navigasi kiri, pilih DTS (DTS) > Data Migration.
Anda juga dapat langsung menuju halaman Tugas Migrasi Data di konsol DTS baru. Tata letak konsol mungkin berbeda — lihat Mode simple dan Konfigurasikan konsol DMS berdasarkan kebutuhan bisnis Anda.
Langkah 2: Pilih wilayah
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
Di konsol DTS baru, pilih wilayah di pojok kiri atas.
Langkah 3: Konfigurasi database sumber dan tujuan
Klik Create Task, lalu konfigurasikan parameter berikut.
Database sumber (ApsaraDB RDS for PPAS)
| Parameter | Nilai |
|---|---|
| Nama tugas | DTS menghasilkan nama secara otomatis. Tentukan nama yang bermakna untuk mengidentifikasi tugas. Nama tugas tidak perlu unik. |
| Tipe database | Pilih PostgreSQL. ApsaraDB RDS for PPAS tidak muncul sebagai opsi. |
| Metode akses | Pilih Express Connect, VPN Gateway, or Smart Access Gateway. |
| Wilayah instans | Wilayah tempat instans sumber ApsaraDB RDS for PPAS berada. |
| Replikasi data lintas akun Alibaba Cloud | Pilih No untuk migrasi dalam satu akun. |
| VPC yang terhubung | Virtual private cloud (VPC) yang terhubung ke instans sumber. |
| Alamat IP | Alamat IP pribadi instans ApsaraDB RDS for PPAS. |
| Nomor port | Port layanan instans sumber. Default: 3433. |
| Akun database | Akun untuk instans sumber. |
| Password database | Password untuk akun sumber. |
Database tujuan (PolarDB for Oracle)
| Parameter | Nilai |
|---|---|
| Tipe database | Pilih PolarDB (Compatible with Oracle). |
| Metode akses | Pilih Alibaba Cloud Instance. |
| Wilayah instans | Wilayah tempat kluster tujuan PolarDB for Oracle berada. |
| ID Instans | ID kluster tujuan PolarDB for Oracle. |
| Nama database | Nama database tujuan dalam kluster. |
| Akun database | Akun untuk kluster tujuan. Lihat Izin yang diperlukan. |
| Password database | Password untuk akun tujuan. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed.
DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih instans database Alibaba Cloud dan ke aturan grup keamanan instans Elastic Compute Service (ECS) yang meng-host database yang dikelola sendiri. Untuk database yang dikelola sendiri di pusat data atau cloud pihak ketiga, tambahkan blok CIDR DTS ke daftar putih database secara manual. Lihat Tambahkan blok CIDR server DTS ke pengaturan keamanan database on-premises. Menambahkan blok CIDR DTS ke daftar putih atau grup keamanan menimbulkan risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan seperti: gunakan password kuat, batasi port yang terbuka, autentikasi panggilan API, dan audit aturan daftar putih secara berkala. Setelah tugas selesai atau dilepas, hapus blok CIDR DTS dari daftar putih.
Langkah 5: Pilih objek dan konfigurasi pengaturan
Pengaturan dasar
| Parameter | Deskripsi |
|---|---|
| Tahapan tugas | Pilih Schema Migration, Full Data Migration, dan Incremental Data Migration untuk migrasi langsung. Pilih hanya dua yang pertama untuk migrasi offline (tidak ada penulisan ke sumber selama migrasi). |
| Mode pemrosesan tabel yang bentrok | Precheck and Report Errors: Pemeriksaan awal gagal jika tujuan sudah berisi tabel dengan nama yang sama seperti sumber. Gunakan pemetaan nama objek untuk mengganti nama objek tujuan jika diperlukan. Ignore Errors and Proceed: Melewati pemeriksaan. Jika skema berbeda, hanya beberapa kolom yang mungkin dimigrasikan atau tugas bisa gagal. Ketidakkonsistenan data kemungkinan besar terjadi — gunakan dengan hati-hati. |
| Huruf kapital pada nama objek di instans tujuan | Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default: Kebijakan default DTS. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
| Objek sumber | Pilih objek dari daftar Source Objects dan klik ikon panah kanan untuk memindahkannya ke Selected Objects. Catatan Field waktu mendukung tipe data TIMESTAMP. Jika nilai field waktu di sumber adalah |
| Objek yang dipilih | Untuk mengganti nama satu objek, klik kanan objek tersebut di bagian Selected Objects. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas. Lihat Pemetaan nama objek. Catatan Mengganti nama objek dapat menyebabkan migrasi objek dependen gagal. |
Pengaturan lanjutan
| Parameter | Deskripsi |
|---|---|
| Atur peringatan | No: Tidak ada peringatan. Yes: Tetapkan ambang batas peringatan dan kontak untuk menerima notifikasi ketika tugas gagal atau latensi migrasi melebihi ambang batas. Lihat Konfigurasikan pemantauan dan peringatan saat membuat tugas DTS. |
| Waktu percobaan ulang koneksi yang gagal | Rentang waktu bagi DTS untuk mencoba ulang koneksi yang gagal. Nilai valid: 10–1440 menit. Default: 120 menit. Atur minimal 30 menit. Jika DTS terhubung kembali dalam rentang waktu tersebut, tugas akan dilanjutkan secara otomatis. Catatan Jika beberapa tugas menggunakan sumber atau tujuan yang sama, rentang waktu percobaan ulang yang paling baru diatur akan berlaku. Biaya instans DTS tetap berlaku selama periode percobaan ulang. |
| Konfigurasi ETL | Yes: Masukkan pernyataan pemrosesan data di editor kode. Lihat Konfigurasikan ETL dalam tugas migrasi data atau sinkronisasi data. No: Lewati konfigurasi ETL. Lihat juga Apa itu ETL?. |
Langkah 6: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
DTS menjalankan pemeriksaan awal secara otomatis. Tugas tidak dapat dimulai hingga pemeriksaan awal berhasil.
Jika suatu item gagal: klik View Details di samping item yang gagal, selesaikan masalahnya, lalu jalankan ulang pemeriksaan awal.
Jika peringatan dipicu:
Jika peringatan tidak dapat diabaikan: selesaikan masalahnya dan jalankan ulang pemeriksaan awal.
Jika peringatan dapat diabaikan: klik Confirm Alert Details, lalu Ignore di dialog, lalu OK, lalu Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 7: Beli instans migrasi
Tunggu hingga tingkat keberhasilan pemeriksaan awal mencapai 100%, lalu klik Next: Purchase Instance.
Pada halaman Purchase Instance, atur parameter Instance Class. Kelas instans menentukan kecepatan migrasi. Lihat Spesifikasi instans migrasi data.
Langkah 8: Mulai tugas
Baca dan centang kotak Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start.
Tugas migrasi akan muncul di daftar tugas. Pantau progresnya di sana.
Beralih ke kluster tujuan
Setelah migrasi data inkremental mencapai kondisi stabil (latensi migrasi mendekati nol), Anda dapat beralih. Selesaikan langkah-langkah berikut sebelum mengalihkan workload Anda.
Tangani sequences. Setelah beralih, sequence yang baru ditulis di tujuan tidak secara otomatis melanjutkan dari nilai maksimum sequence sumber. Kueri nilai maksimum sequence di sumber sebelum beralih, lalu tetapkan sebagai nilai awal di tujuan. Jalankan perintah berikut pada instans sumber ApsaraDB RDS for PPAS untuk menghasilkan pernyataan
setval:do language plpgsql $$ declare nsp name; rel name; val int8; begin for nsp,rel in select nspname,relname from pg_class t2 , pg_namespace t3 where t2.relnamespace=t3.oid and t2.relkind='S' loop execute format($_$select last_value from %I.%I$_$, nsp, rel) into val; raise notice '%', format($_$select setval('%I.%I'::regclass, %s);$_$, nsp, rel, val+1); end loop; end; $$;Jalankan pernyataan
setvalyang dihasilkan pada kluster tujuan PolarDB for Oracle.Hentikan tugas migrasi. Sebelum mengarahkan aplikasi Anda ke tujuan, hentikan atau release tugas migrasi DTS. Jika tugas masih berjalan dan DTS secara otomatis melanjutkannya setelah kegagalan, penulisan ulang dari sumber akan menimpa data di tujuan.
Alihkan koneksi aplikasi Anda ke titik akhir kluster PolarDB for Oracle. Untuk mengaktifkan pemisahan baca/tulis dan mengurangi beban pada kluster, gunakan cluster endpoint. Lihat Lihat atau ajukan titik akhir.
Langkah selanjutnya
Spesifikasi node komputasi — sesuaikan ukuran kluster PolarDB for Oracle Anda sesuai kebutuhan jumlah koneksi dan IOPS
Pemetaan nama objek — ganti nama objek selama migrasi untuk menyelesaikan konflik penamaan
Ikhtisar penagihan — pahami harga DTS untuk tugas migrasi inkremental