Ringkasan
Sebelum memilih untuk memigrasikan database ke Cloud SQL, pastikan Anda mempertimbangkan batasan yang diketahui untuk skenario migrasi ini.
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 replika 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 Cloud SQL 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 Cloud SQL untuk PostgreSQL yang dapat dimigrasikan. Database Migration Service tidak memigrasikan ekstensi yang tidak didukung oleh Cloud SQL. Kehadiran ekstensi ini tidak memblokir migrasi, tetapi untuk memastikan proses migrasi berjalan lancar, pastikan objek atau aplikasi Anda tidak mereferensikan ekstensi yang tidak didukung. Sebaiknya hapus ekstensi dan referensi ini dari database sumber sebelum melanjutkan.
Ekstensi
pg_cron
(atau setelancron
apa pun yang terkait dengan ekstensi) tidak dimigrasikan oleh Database Migration Service, tetapi didukung di tujuan Cloud SQL untuk PostgreSQL. Jika menggunakan ekstensipg_cron
di database sumber, Anda dapat menginstalnya kembali di instance tujuan setelah migrasi selesai.
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 Cloud SQL.
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.
Database Migration Service memigrasikan semua tabel dan skema, kecuali untuk skema berikut:
- Skema informasi (
information_schema
) - Semua skema yang dimulai 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 Cloud SQL 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 Cloud SQL tujuan dapat ditulis selama migrasi untuk memungkinkan perubahan DDL 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 disetel ke replika atau selalu, pemicu akan dipicu pada replika selama replikasi.Fungsi dengan penentu keamanan akan dibuat oleh
cloudsqlexternalsync
di replika Cloud SQL. Saat dijalankan oleh pengguna mana pun, skrip akan dijalankan dengan hak istimewacloudsqlexternalsync
yang memiliki perancloudsqlsuperuser
dancloudsqlreplica
. 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.Cloud SQL tidak mendukung tablespace yang disesuaikan. Semua data di dalam tablespace yang disesuaikan dimigrasikan ke tablespace
pg_default
di instance tujuan Cloud SQL.
Batasan untuk migrasi ke instance tujuan yang ada
- Instance tujuan yang ada harus kosong atau hanya berisi
data konfigurasi sistem. Migrasi ke instance tujuan yang ada
yang berisi data pengguna (seperti tabel) tidak didukung.
Jika Anda mengalami masalah karena data tambahan di instance tujuan yang ada, hapus database di instance tujuan dan coba lagi tugas migrasi. Lihat Menghapus data tambahan dari instance tujuan yang ada.
- Anda hanya dapat mengonfigurasi satu tugas migrasi per instance tujuan.
- Anda hanya dapat bermigrasi ke instance Cloud SQL mandiri. Migrasi ke replika server eksternal tidak didukung.
- Memigrasikan data ke instance Cloud SQL yang telah mengaktifkan Private Service Connect tidak didukung.
- Setelah mempromosikan instance, Anda harus mengaktifkan pemulihan point-in-time.
- Jika instance Anda memiliki setelan pencadangan yang disesuaikan (misalnya, lokasi pencadangan kustom), setelah mempromosikan instance, Anda harus menyesuaikan setelan pencadangan lagi. Selama proses promosi, Cloud SQL akan mereset setelan pencadangan Anda ke nilai defaultnya.
- Untuk pengguna Terraform: Database Migration Service mengubah setelan pencadangan dan pemulihan instance tujuan Anda. Hal ini dapat menyebabkan setelan instance tujuan Anda berbeda dengan konfigurasi Terraform yang Anda gunakan untuk penyediaan. Jika Anda mengalami masalah ini, ikuti panduan di Mendiagnosis masalah.
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.