Batasan yang diketahui untuk menggunakan database PostgreSQL sebagai sumber meliputi:
Ekstensi
pglogicaltidak mendukung replikasi kolom yang dibuat untuk PostgreSQL 12+.Perubahan pada struktur tabel (DDL) tidak direplikasi melalui perintah DDL standar, tetapi hanya dengan perintah yang dijalankan menggunakan ekstensi
pglogicalyang digunakan untuk replikasi. Hal ini mencakup perubahan padaenumjenis.Misalnya,
pglogicalmenyediakan fungsipglogical.replicate_ddl_commandyang 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_tableuntuk menambahkan tabel baru ke set replikasi yang ada.Untuk mempelajari replikasi DDL lebih lanjut saat migrasi sedang ber langsung, lihat bagian tentang fidelitas migrasi.
Untuk tabel yang tidak memiliki kunci utama, Database Migration Service mendukung migrasi snapshot awal dan
INSERTpernyataan selama fase pengambilan data perubahan (CDC). Anda harus memigrasikan pernyataanUPDATEdanDELETEsecara manual.Database Migration Service tidak memigrasikan data dari tampilan materialisasi, 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 dengan statusSEQUENCEsumber.Tabel
UNLOGGEDdanTEMPORARYtidak dan tidak dapat direplikasi.Jenis data Objek Besar tidak didukung. Detail selengkapnya di bagian tentang fidelitas migrasi.
Hanya ekstensi dan bahasa prosedural 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 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, tugas migrasi akan gagal saat Anda mengujinya atau memulainya.
Database yang ditambahkan setelah tugas migrasi dimulai tidak dimigrasikan.
Anda dapat memilih database tertentu saat melakukan migrasi menggunakan Database Migration Service. Namun, Anda tidak dapat memilih tabel atau skema tertentu dalam database tersebut. Database Migration Service memigrasikan semua tabel dan skema dari database yang dipilih, kecuali yang berikut:
- Skema informasi (
information_schema). - Skema apa pun yang dimulai dengan
pg_(misalnya,pg_catalog,pg_toast,pgtemp*). Untuk mengetahui daftar lengkap katalog PostgreSQL yang dimulai denganpg_, lihat katalog sistem PostgreSQL dalam dokumentasi PostgreSQL. - Informasi tentang pengguna dan peran pengguna tidak dimigrasikan.
- 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 untuk PostgreSQL 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 untuk PostgreSQL tujuan dapat ditulis selama migrasi untuk memungkinkan perubahan DDL diterapkan jika diperlukan. Berhati-hatilah agar tidak membuat perubahan apa pun pada konfigurasi database atau struktur tabel yang dapat menghentikan proses migrasi atau memengaruhi integritas data.
Perilaku pemicu bergantung pada cara pemicu dikonfigurasi. Perilaku defaultnya adalah pemicu tidak akan dipicu, tetapi jika dikonfigurasi menggunakan pernyataan
ALTER EVENT TRIGGERatauALTER TABLEdan status pemicu ditetapkan ke replika atau selalu, pemicu akan dipicu pada replika selama replikasi.Fungsi dengan definer keamanan akan dibuat oleh
alloydbexternalsyncdi AlloyDB utama. Saat dijalankan oleh pengguna mana pun, fungsi tersebut akan dijalankan dengan hak istimewaalloydbexternalsyncyang memiliki peranalloydbsuperuserdanalloydbreplica. Sebaiknya batasi penggunaan fungsi definer keamanan hanya untuk beberapa pengguna. Untuk melakukannya, pengguna harus mencabut hak istimewa PUBLIK default, lalu memberikan hak istimewa eksekusi secara selektif.Metode konektivitas antarmuka Private Service Connect hanya didukung untuk migrasi ke instance tujuan yang ada. Jika Anda ingin menggunakan konektivitas IP pribadi dan bermigrasi ke instance tujuan baru, gunakan peering VPC.
Batasan untuk migrasi ke cluster tujuan yang ada
- Anda hanya dapat mengonfigurasi satu tugas migrasi aktif per cluster tujuan.
- 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.
- Migrasi ke cluster dengan instance kumpulan baca didukung.
Untuk mengetahui informasi selengkapnya tentang cluster dan instance AlloyDB untuk PostgreSQL, lihat Ringkasan AlloyDB untuk PostgreSQL.
Kuota
- Maksimal 2.000 profil koneksi dan 1.000 tugas migrasi dapat ada kapan saja. Untuk membuat ruang bagi lebih banyak tugas migrasi, tugas migrasi (termasuk tugas yang selesai) dan profil koneksi dapat dihapus.