Batasan yang diketahui untuk menggunakan database PostgreSQL sebagai sumber meliputi:
Ekstensi
pglogical
tidak mendukung replikasi kolom yang dihasilkan untuk PostgreSQL 12+.Perubahan pada struktur tabel (DDL) tidak direplikasi melalui perintah DDL standar, tetapi hanya dengan perintah yang dijalankan menggunakan ekstensi
pglogical
yang digunakan untuk replikasi.Misalnya,
pglogical
menyediakan fungsipglogical.replicate_ddl_command
yang memungkinkan DDL dijalankan di database sumber dan replika pada titik yang konsisten. Pengguna yang menjalankan perintah ini di sumber harus sudah ada di replika.Untuk mereplikasi data untuk tabel baru, Anda harus menggunakan perintah
pglogical.replication_set_add_table
untuk menambahkan tabel baru ke set replikasi yang ada.Untuk mempelajari replikasi DDL lebih lanjut saat migrasi sedang berlangsung, lihat bagian tentang fidelitas migrasi.
Untuk tabel yang tidak memiliki kunci utama, Database Migration Service mendukung migrasi snapshot awal dan pernyataan
INSERT
selama fase pengambilan data perubahan (CDC). Anda harus memigrasikan pernyataanUPDATE
danDELETE
secara manual.Database Migration Service tidak memigrasikan data dari tampilan yang diwujudkan, hanya skema tampilan. Untuk mengisi tampilan, jalankan perintah berikut:
REFRESH MATERIALIZED VIEW view_name
.Status
SEQUENCE
(misalnya,last_value
) di tujuan AlloyDB baru mungkin berbeda dari statusSEQUENCE
sumber.Tabel
UNLOGGED
danTEMPORARY
tidak dan tidak dapat direplikasi.Jenis data Large Object tidak didukung. Detail selengkapnya di bagian fidelitas migrasi.
- Hanya ekstensi dan bahasa prosedur yang didukung AlloyDB untuk PostgreSQL yang dapat dimigrasikan.
Database Migration Service tidak mendukung migrasi dari replika baca yang berada dalam mode pemulihan.
Database Migration Service tidak mendukung sumber Amazon RDS tempat paket ekstensi AWS SCT diterapkan.
- Fungsi yang ditentukan pengguna yang ditulis dalam C tidak dapat dimigrasikan, kecuali untuk fungsi yang diinstal di database PostgreSQL saat Anda menginstal ekstensi yang didukung oleh AlloyDB.
Jika ekstensi dan bahasa prosedural lain ada di database sumber, atau jika versinya tidak didukung, saat Anda menguji atau memulai tugas migrasi, tugas tersebut akan gagal.
Database yang ditambahkan setelah tugas migrasi dimulai tidak akan dimigrasikan.
Anda tidak dapat memilih objek database tertentu (seperti database, tabel, atau skema) saat bermigrasi menggunakan Database Migration Service. Semua tabel dari semua database dan skema dimigrasikan sebagai bagian dari migrasi database, kecuali untuk skema berikut:
- Skema informasi (
information_schema
) - Semua skema yang diawali dengan
pg
(misalnya,pg_catalog
, yang berisi tabel sistem dan semua jenis data, fungsi, dan operator bawaan, serta ada di semua database secara otomatis). Akibatnya, informasi tentang pengguna dan peran pengguna tidak dimigrasikan. Lihat daftar lengkap skema yang diawali denganpg
.
- Skema informasi (
Jika database terenkripsi memerlukan kunci enkripsi yang dikelola pelanggan untuk mendekripsi database, dan jika Database Migration Service tidak memiliki akses ke kunci tersebut, database tidak dapat dimigrasikan.
Namun, jika data pelanggan dienkripsi oleh ekstensi
pgcrypto
, data tersebut dapat dimigrasikan dengan Database Migration Service (karena AlloyDB mendukung ekstensi tersebut).Database Migration Service juga mendukung migrasi data dari database Amazon Aurora atau Amazon RDS terenkripsi karena database ini menangani dekripsi secara transparan dalam layanannya. Untuk mengetahui informasi selengkapnya, lihat Mengenkripsi resource Amazon Aurora dan Mengenkripsi resource Amazon RDS.
Database AlloyDB tujuan dapat ditulis selama migrasi agar perubahan DDL dapat diterapkan jika diperlukan. Berhati-hatilah agar tidak membuat perubahan pada konfigurasi database atau struktur tabel yang dapat merusak proses migrasi atau memengaruhi integritas data.
Perilaku pemicu bergantung pada cara pemicu dikonfigurasi. Perilaku defaultnya adalah tidak akan memicu, tetapi jika dikonfigurasi menggunakan pernyataan
ALTER EVENT TRIGGER
atauALTER TABLE
dan status pemicu ditetapkan ke replika atau selalu, pemicu akan dipicu pada replika selama replikasi.Fungsi dengan penentu keamanan akan dibuat oleh
alloydbexternalsync
di primary AlloyDB. Saat dijalankan oleh pengguna mana pun, skrip akan dijalankan dengan hak istimewaalloydbexternalsync
yang memiliki peranalloydbsuperuser
danalloydbreplica
. Sebaiknya batasi penggunaan fungsi penentu keamanan hanya untuk beberapa pengguna. Untuk melakukannya, pengguna harus mencabut hak istimewa PUBLIC default, lalu memberikan hak istimewa eksekusi secara selektif.
Batasan untuk migrasi ke cluster tujuan yang ada
- Cluster tujuan yang ada harus kosong atau hanya berisi data konfigurasi sistem. Migrasi ke cluster tujuan yang ada yang berisi data pengguna (seperti tabel) tidak didukung.
- Anda hanya dapat mengonfigurasi satu tugas migrasi per cluster tujuan.
- Memigrasikan ke cluster dengan cluster sekunder tidak didukung.
- Migrasi ke cluster dengan instance kumpulan baca didukung.
Untuk informasi selengkapnya tentang cluster dan instance AlloyDB untuk PostgreSQL, lihat Ringkasan AlloyDB untuk PostgreSQL.
Kuota
- Hingga 2.000 profil koneksi dan 1.000 tugas migrasi dapat ada pada waktu tertentu. Untuk membuat ruang bagi tugas migrasi lainnya (termasuk yang telah selesai) dan profil koneksi dapat dihapus.