Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari instans PolarDB-X 2.0 ke instans AnalyticDB for PostgreSQL. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental sehingga Anda dapat melakukan migrasi tanpa mengganggu layanan aplikasi.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki instans PolarDB-X 2.0. Untuk informasi selengkapnya, lihat Buat instans.
Memiliki instans AnalyticDB for PostgreSQL dengan ruang penyimpanan yang tersedia lebih besar daripada instans PolarDB-X 2.0 sumber. Untuk informasi selengkapnya, lihat Buat instans.
Jenis migrasi
DTS mendukung tiga jenis migrasi untuk skenario ini:
| Jenis migrasi | Deskripsi |
|---|---|
| Schema migration | Memigrasikan skema tabel dari database sumber ke tujuan, termasuk kunci asing jika dipilih. |
| Full data migration | Memigrasikan data historis dari database sumber ke tujuan. Hanya tabel yang dibuat dengan CREATE TABLE yang didukung. |
| Incremental data migration | Setelah migrasi data penuh selesai, mereplikasi perubahan baru secara berkelanjutan dari sumber ke tujuan, sehingga Anda dapat melakukan migrasi tanpa mengganggu layanan aplikasi Anda. |
Untuk migrasi tanpa downtime, pilih ketiga jenis tersebut.
Izin yang diperlukan
Berikan izin berikut kepada akun database yang digunakan oleh DTS:
| Database | Schema migration | Full data migration | Incremental data migration |
|---|---|---|---|
| PolarDB-X 2.0 | SELECT | SELECT | REPLICATION SLAVE, REPLICATION CLIENT, dan SELECT pada objek yang akan dimigrasikan |
| AnalyticDB for PostgreSQL | Baca dan tulis | Baca dan tulis | Baca dan tulis |
Untuk informasi selengkapnya tentang pemberian izin pada PolarDB-X 2.0, lihat Izin akun yang diperlukan untuk sinkronisasi data.
Penagihan
| Jenis migrasi | Biaya konfigurasi tugas | Biaya transfer data |
|---|---|---|
| Schema migration dan full data migration | Gratis | Gratis, kecuali Access Method database tujuan adalah Public IP Address. Untuk informasi selengkapnya, lihat Ikhtisar penagihan. |
| Incremental data migration | Dikenai biaya. Untuk informasi selengkapnya, lihat Ikhtisar penagihan. | — |
Operasi SQL yang didukung untuk migrasi inkremental
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ADD COLUMN |
Catatan perilaku: Saat data ditulis ke instans AnalyticDB for PostgreSQL tujuan:
Pernyataan UPDATE secara otomatis dikonversi menjadi pernyataan
REPLACE INTO.Jika kunci primer diperbarui, DTS mengonversi UPDATE menjadi DELETE diikuti oleh INSERT.
Batasan
Database sumber
Tabel yang akan dimigrasikan harus memiliki kendala PRIMARY KEY atau UNIQUE, dan semua bidang harus unik. Jika tidak, database tujuan mungkin berisi catatan duplikat.
Instans read-only Edisi Perusahaan PolarDB-X 2.0 tidak didukung sebagai sumber.
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, bagi migrasi ke beberapa tugas atau migrasikan seluruh database alih-alih tabel individual.
TABLEGROUPserta database atau skema dengan atribut Locality tidak didukung.Tabel yang namanya merupakan kata tercadang (misalnya,
select) tidak dapat dimigrasikan.
Migrasi inkremental
Jika Anda menyertakan migrasi data inkremental, database sumber harus memenuhi persyaratan berikut:
Pencatatan biner diaktifkan dan parameter
binlog_row_imagediatur kefull. Jika salah satu kondisi tidak terpenuhi, Pemeriksaan Awal akan mengembalikan error dan tugas tidak dapat dimulai.Untuk migrasi hanya inkremental: log biner disimpan selama lebih dari 24 jam.
Untuk migrasi penuh + inkremental: log biner disimpan setidaknya selama 7 hari. Setelah migrasi penuh selesai, Anda dapat mengurangi retensi menjadi lebih dari 24 jam.
Jika persyaratan retensi log biner tidak terpenuhi, DTS mungkin gagal membaca log biner, yang dapat menyebabkan kegagalan tugas atau, dalam kasus luar biasa, inkonsistensi atau kehilangan data. Perjanjian tingkat layanan (SLA) DTS tidak berlaku dalam situasi ini.
Operasi selama migrasi
Selama migrasi skema dan migrasi data penuh, jangan menjalankan operasi DDL yang mengubah skema database atau tabel. Tugas akan gagal.
DTS sementara menonaktifkan pemeriksaan kendala kunci asing dan operasi kaskade pada tingkat session. Jika Anda menjalankan operasi cascade update atau delete pada sumber selama migrasi, inkonsistensi data mungkin terjadi.
Jika Anda mengubah jenis jaringan instans PolarDB-X 2.0 selama migrasi, perbarui juga pengaturan koneksi jaringan di tugas DTS.
Untuk migrasi data penuh saja (tanpa inkremental): jangan menulis ke database sumber selama migrasi. Untuk memastikan konsistensi data, pilih bersamaan migrasi skema, migrasi data penuh, dan migrasi data inkremental.
Database tujuan
Hanya migrasi tingkat tabel yang didukung. Tabel Append-optimized (AO) tidak didukung sebagai tabel tujuan.
Jika Anda menggunakan pemetaan kolom untuk migrasi tabel parsial, atau jika skema tabel sumber dan tujuan berbeda, data di kolom yang ada di sumber tetapi tidak ada di tujuan akan hilang.
Jika tabel sumber memiliki kunci primer, kolom kunci primer di tujuan harus sesuai.
Jika tabel sumber tidak memiliki kunci primer, kolom kunci primer dan kunci distribusi di tujuan harus sama.
Kunci unik (yang mencakup kolom kunci primer) di tujuan harus berisi semua kolom dari kunci distribusinya.
Catatan operasional
Evaluasi kinerja database sumber dan tujuan sebelum migrasi. Selama migrasi data penuh, DTS membaca dari sumber dan menulis ke tujuan secara bersamaan, yang meningkatkan beban pada kedua database. Jalankan migrasi selama jam sepi untuk mengurangi dampaknya.
DTS menjaga tugas yang gagal tetap memenuhi syarat untuk dilanjutkan secara otomatis hingga 7 hari. Sebelum beralih workload ke tujuan, hentikan atau lepas tugas yang gagal tersebut. Atau, jalankan perintah
revokeuntuk mencabut izin tulis dari akun DTS pada tujuan guna mencegah data ditimpa jika tugas dilanjutkan secara otomatis.Jika instans DTS gagal, DTS akan mencoba memulihkannya dalam waktu 8 jam. Selama pemulihan, DTS mungkin me-restart instans atau menyesuaikan parameter instans. Parameter database tidak dimodifikasi. Parameter yang mungkin disesuaikan termasuk yang dijelaskan dalam Modifikasi parameter instans.
DTS secara berkala memperbarui tabel
dts_health_check.ha_health_checkdi database sumber untuk memajukan offset log biner.
Pemetaan tipe data
Untuk pemetaan tipe data antara PolarDB-X 2.0 dan AnalyticDB for PostgreSQL, lihat Pemetaan tipe data untuk sinkronisasi skema awal.
Buat tugas migrasi
Langkah 1: Buka halaman Data Migration
Gunakan salah satu metode berikut:
Konsol DTS
Masuk ke Konsol DTS.
Di panel navigasi kiri, klik Data Migration.
Di pojok kiri atas, pilih wilayah tempat instans migrasi berada.
Konsol Data Management (DMS)
Langkah aktual dapat berbeda tergantung pada mode dan tata letak Konsol DMS. Untuk informasi selengkapnya, lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS.
Masuk ke Konsol DMS.
Di bilah navigasi atas, pilih Data + AI > DTS (DTS) > Data Migration.
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
Langkah 2: Konfigurasikan tugas
Klik Create Task.
Baca petunjuk di bagian Limits di bagian atas halaman sebelum melanjutkan.
Konfigurasikan database sumber dan tujuan:
Bagian Parameter Deskripsi N/A Task Name DTS membuat nama tugas secara otomatis. Tentukan nama deskriptif agar lebih mudah diidentifikasi. Nama tidak perlu unik. Source Database Select Existing Connection Pilih instans database terdaftar dari daftar, atau konfigurasikan koneksi secara manual jika instans belum terdaftar. Untuk informasi selengkapnya, lihat Manage database connections. CatatanDi Konsol DMS, Anda dapat memilih instans database dari daftar drop-down Select a DMS database instance.
Database Type Pilih PolarDB-X 2.0. Access Method Pilih Alibaba Cloud Instance. Instance Region Pilih wilayah tempat instans PolarDB-X 2.0 sumber berada. Cross-Account Pilih No untuk memigrasikan data dalam Akun Alibaba Cloud yang sama. Instance ID Pilih ID instans PolarDB-X 2.0 sumber. Database Account Masukkan akun database. Untuk izin yang diperlukan, lihat Permissions required. Database Password Masukkan password untuk akun database. Destination Database Select Existing Connection Pilih instans database terdaftar dari daftar, atau konfigurasikan koneksi secara manual jika instans belum terdaftar. Untuk informasi selengkapnya, lihat Manage database connections. CatatanDi Konsol DMS, Anda dapat memilih instans database dari daftar drop-down Select a DMS database instance.
Database Type Pilih AnalyticDB For PostgreSQL. Access Method Pilih Alibaba Cloud Instance. Instance Region Pilih wilayah tempat instans AnalyticDB for PostgreSQL tujuan berada. Instance ID Pilih ID instans AnalyticDB for PostgreSQL tujuan. Database Name Masukkan nama database tujuan yang akan menerima objek yang dimigrasikan. Database Account Masukkan akun database untuk instans tujuan. Database Password Masukkan password untuk akun database. Klik Test Connectivity and Proceed.
Pastikan blok CIDR server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan. Untuk informasi selengkapnya, lihat Add DTS server IP addresses to a whitelist.
Langkah 3: Pilih objek dan konfigurasikan pengaturan migrasi
Di halaman Configure Objects, konfigurasikan pengaturan berikut:
Parameter Deskripsi Migration Types Pilih jenis migrasi sesuai kebutuhan Anda:<br>- Schema Migration dan Full Migration saja: untuk migrasi satu kali tanpa replikasi berkelanjutan. Hindari menulis ke sumber selama migrasi.<br>- Schema Migration, Full Migration, dan Incremental Migration: untuk memastikan kelangsungan layanan selama migrasi (direkomendasikan). Processing Mode of Conflicting Tables Precheck and Report Errors: memeriksa adanya tabel di tujuan dengan nama yang sama seperti tabel sumber. Pemeriksaan Awal gagal jika ditemukan konflik. Untuk menyelesaikan konflik penamaan tanpa menghapus tabel tujuan, gunakan pemetaan nama objek. Untuk informasi selengkapnya, lihat Map object names.<br><br>Ignore Errors and Proceed: melewati pemeriksaan konflik penamaan. Gunakan dengan hati-hati — ini dapat menyebabkan inkonsistensi data: selama migrasi penuh, catatan yang bertentangan di tujuan tetap dipertahankan; selama migrasi inkremental, catatan yang bertentangan ditimpa. Jika skema berbeda antara sumber dan tujuan, tugas mungkin gagal atau hanya kolom parsial yang dimigrasikan. Storage Engine Type Mesin penyimpanan untuk tabel tujuan. Default: Beam. Parameter ini tersedia hanya jika versi minor instans AnalyticDB for PostgreSQL tujuan adalah v7.0.6.6 atau lebih baru dan Schema Migration dipilih. Capitalization of object names in destination instance Mengonfigurasi kebijakan kapitalisasi untuk nama database, tabel, dan kolom di tujuan. Secara default, kebijakan DTS diterapkan. Untuk informasi selengkapnya, lihat Specify the capitalization of object names in the destination instance. Source Objects Pilih objek dari bagian Source Objects dan klik ikon panah untuk menambahkannya ke Selected Objects. Hanya tabel yang didukung. View, trigger, dan prosedur tersimpan tidak dimigrasikan. Selected Objects Untuk mengganti nama satu objek, klik kanan objek tersebut. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas. Untuk informasi selengkapnya, lihat Map object names. <br><br> CatatanMengganti nama objek dapat menyebabkan objek lain yang bergantung padanya gagal dimigrasikan. Untuk memfilter baris menggunakan kondisi SQL, klik kanan tabel di Selected Objects dan konfigurasikan filter tersebut. Untuk informasi selengkapnya, lihat Filter data menggunakan SQL conditions. Untuk memilih operasi DML mana yang akan dimigrasikan untuk tabel tertentu, klik kanan tabel tersebut dan konfigurasikan operasinya.
Klik Next: Advanced Settings dan konfigurasikan parameter opsional berikut:
Parameter Deskripsi Dedicated Cluster for Task Scheduling Secara default, DTS menjadwalkan tugas ke klaster bersama. Untuk meningkatkan stabilitas tugas, beli klaster khusus. Untuk informasi selengkapnya, lihat What is a DTS dedicated cluster. Retry Time for Failed Connections Jendela percobaan ulang untuk menyambung kembali ke sumber atau tujuan setelah kegagalan koneksi. Nilai valid: 10–1.440 menit. Default: 720. Atur minimal 30 menit. DTS melanjutkan tugas jika tersambung kembali dalam jendela ini; jika tidak, tugas gagal. CatatanSaat DTS mencoba ulang, Anda dikenai biaya untuk instans DTS.
Retry Time for Other Issues Jendela percobaan ulang untuk kegagalan operasi DDL atau DML. Nilai valid: 1–1.440 menit. Default: 10. Atur minimal 10 menit. Harus lebih kecil dari Retry Time for Failed Connections. Enable Throttling for Full Data Migration Membatasi throughput baca/tulis selama migrasi penuh untuk mengurangi beban database. Konfigurasikan Queries per second (QPS) to the source database, Data Migration, dan Data migration speed for full migration (MB/s). Tersedia hanya jika Data Migration dipilih. Enable Throttling for Incremental Data Migration Membatasi throughput selama migrasi inkremental. Konfigurasikan With incremental data migration dan Data migration speed for incremental migration (MB/s). Tersedia hanya jika With incremental data migration dipilih. Whether to delete SQL operations on heartbeat tables of forward and reverse tasks Mengontrol apakah DTS menulis operasi SQL heartbeat ke database sumber saat instans berjalan. Yes: tidak menulis operasi heartbeat; instans DTS mungkin menunjukkan latensi. No: menulis operasi heartbeat; dapat memengaruhi fitur seperti backup fisik dan kloning database sumber. Environment Tag Opsional. Pilih tag untuk mengidentifikasi instans berdasarkan lingkungan (misalnya, produksi atau uji coba). Configure ETL Mengaktifkan fitur ekstrak, transformasi, dan muat (ETL) untuk transformasi data dalam perjalanan. Untuk informasi selengkapnya, lihat What is ETL? dan Configure ETL in a data migration or data synchronization task. Monitoring and Alerting Mengonfigurasi peringatan untuk kegagalan tugas atau latensi migrasi yang melebihi ambang batas. Jika diaktifkan, konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Untuk informasi selengkapnya, lihat Configure monitoring and alerting when you create a DTS task. (Opsional) Klik Next: Configure Database and Table Fields untuk mengatur kolom kunci primer dan kunci distribusi untuk tabel tujuan.
Jika Anda memilih Schema Migration, definisikan Type, Primary Key Column, dan Distribution Key untuk setiap tabel tujuan. Untuk kunci primer komposit, pilih beberapa kolom. Setidaknya satu kolom dari daftar Primary Key Column juga harus menjadi Distribution Key. Untuk informasi selengkapnya, lihat CREATE TABLE.
Langkah 4: Jalankan Pemeriksaan Awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API untuk tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters sebelum melanjutkan.
Tinjau dan selesaikan hasil Pemeriksaan Awal:
Result Action Failed Task diblokir. Klik View Details di samping item yang gagal, atasi masalahnya, lalu klik Precheck Again. Alert (must resolve) Klik View Details, atasi masalahnya, lalu klik Precheck Again. Alert (can ignore) Klik Confirm Alert Details. Di kotak dialog, klik Ignore, lalu klik OK, kemudian klik Precheck Again. Mengabaikan alert dapat menyebabkan inkonsistensi data atau mengekspos workload Anda terhadap risiko.
Langkah 5: Beli instans dan mulai tugas
Tunggu hingga Success Rate 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. Default: default resource group. Untuk informasi selengkapnya, lihat What is Resource Management? Instance Class Pilih kelas instans berdasarkan kecepatan migrasi yang Anda butuhkan. Untuk informasi selengkapnya, lihat Instance classes of data migration instances. Baca dan centang kotak Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK di pesan konfirmasi.
Pantau tugas migrasi
Setelah tugas dimulai, pantau progresnya di halaman Data Migration:
Schema migration dan full data migration saja: tugas berhenti otomatis saat selesai. Status menunjukkan Completed.
With incremental data migration: tugas tidak berhenti otomatis. Status menunjukkan Running.