Halaman ini menjelaskan proses AlloyDB untuk PostgreSQL guna mengupdate versi server database, dan menjelaskan cara memigrasikan data ke cluster yang kompatibel dengan PostgreSQL versi lebih baru.
Untuk mengetahui informasi selengkapnya tentang cara membuat cluster, lihat Membuat cluster dan instance utamanya.
Kompatibilitas cluster dan versi PostgreSQL
Saat membuat cluster AlloyDB, Anda memilih versi utama PostgreSQL yang kompatibel dengan instance dalam cluster. Secara default, nilai ini adalah 15.
AlloyDB melakukan upgrade versi database minor otomatis selama pemeliharaan berkala. Misalnya, jika Anda membuat cluster dengan kompatibilitas 15, AlloyDB akan terus mengupgrade server database ke versi minor terbaru 15.
Namun, upgrade versi utama versi PostgreSQL mengharuskan Anda merencanakan, menguji, dan melakukan upgrade sendiri.
Ada beberapa metode untuk melakukan upgrade versi utama cluster Anda:
- Upgrade versi utama di tempat yang sebaiknya digunakan.
- Memigrasikan data dengan ekspor data berbasis file.
- Menggunakan Database Migration Service.
Setiap solusi upgrade menawarkan kelebihan dan kekurangan yang berbeda. Lihat tabel berikut untuk perbandingan singkat guna membantu Anda memilih pendekatan yang tepat untuk skenario Anda.
Upgrade versi utama di tempat | Ekspor data berbasis file | Migrasi dengan Database Migration Service |
---|---|---|
Cluster Anda, termasuk instance baca, akan diupgrade ke versi utama yang lebih tinggi yang dipilih. | Ekspor berbasis file akan memindahkan snapshot satu kali dari database Anda. | Database Migration Service menawarkan kemampuan replikasi berkelanjutan selama proses migrasi, sehingga mengurangi kemungkinan data hilang di cluster baru Anda. |
Anda dapat terus bekerja di cluster selama tahap pra-upgrade. | Aplikasi Anda mengalami periode nonaktif yang lebih lama yang dimulai saat Anda mengekspor data. Anda tidak dapat menerima operasi tulis database di cluster asli hingga cluster baru beroperasi sepenuhnya. | Aplikasi Anda mengalami downtime yang lebih singkat yang dimulai saat Anda ingin mengalihkan aplikasi untuk menggunakan cluster baru. |
Anda dapat mengalami downtime sekitar 20 menit atau lebih selama proses upgrade, bergantung pada skema Anda. Setelah upgrade, Anda dapat mengakses cluster dengan alamat IP yang sama. | Anda memiliki kontrol terperinci yang lebih besar atas data yang akan disertakan dalam ekspor dan dapat memilih untuk tidak memigrasikan tabel tertentu atau entitas lainnya. | Database Migration Service otomatis memigrasikan semua database yang ada di instance Anda, dan semua instance di cluster Anda. Anda tidak dapat memilih untuk mengecualikan tabel atau tampilan tertentu dari data migrasi. |
Cluster Anda dapat mengaktifkan mode penerapan SSL. | Untuk tujuan migrasi, Database Migration Service mengharuskan Anda menonaktifkan mode penerapan SSL di cluster sumber. |
Bagian berikutnya menjelaskan proses melakukan upgrade versi utama,
termasuk memigrasikan data Anda.
Upgrade versi utama di tempat
Hal ini memberikan pengalaman upgrade yang lancar tanpa mengharuskan Anda menyiapkan cluster tambahan. Untuk informasi selengkapnya, lihat Mengupgrade versi utama database secara langsung.
Bermigrasi menggunakan ekspor data berbasis file
Untuk menggunakan server database yang kompatibel dengan versi utama PostgreSQL yang lebih tinggi, Anda perlu membuat cluster yang secara fungsional identik di region yang sama, lalu memigrasikan data ke dalamnya.
Ikuti langkah-langkah berikut:
Buat cluster yang dikonfigurasi dengan versi utama kompatibilitas PostgreSQL yang ingin Anda gunakan. Buat cluster di region yang sama dengan cluster Anda saat ini.
Siapkan cluster baru dengan versi utama baru agar cocok dengan konfigurasi cluster saat ini:
Buat instance kumpulan operasi baca tambahan sesuai kebutuhan.
Buat cluster sekunder sesuai kebutuhan.
Saat membuat cluster sekunder, Anda tidak perlu menentukan nomor versi utama PostgreSQL. AlloyDB menerapkan versi PostgreSQL cluster utama ke semua cluster sekundernya.
Perbarui flag database cluster baru agar cocok dengan setelan flag cluster saat ini.
Ekspor data Anda dari cluster lama ke dalam file menggunakan
psql
ataupg_dump
.
Aplikasi Anda kini dapat terhubung ke instance cluster baru di alamat IP barunya.
Melakukan migrasi menggunakan Database Migration Service
Anda dapat menggunakan Database Migration Service untuk memindahkan data dari database PostgreSQL ke cluster AlloyDB. Database Migration Service tidak menyediakan konfigurasi yang didedikasikan secara khusus untuk sumber data AlloyDB, tetapi AlloyDB kompatibel dengan PostgreSQL sehingga Anda dapat menggunakan konfigurasi yang ditujukan untuk sumber PostgreSQL generik.
Jalur migrasi ini bukan upgrade in-place dan menghasilkan pembuatan cluster baru dengan alamat IP yang berbeda. Sebaiknya clone cluster Anda terlebih dahulu dan lakukan migrasi pengujian untuk memverifikasi apakah aplikasi Anda kompatibel dengan pendekatan ini.
Pertimbangan penting
Sebelum Anda bersiap untuk bermigrasi dengan Database Migration Service, pertimbangkan dengan cermat batasan berikut untuk memastikan jalur migrasi ini cocok dengan skenario upgrade Anda.
- Batasan
-
- Koneksi SSL harus dinonaktifkan di cluster sumber Anda.
- Instance AlloyDB yang dikonfigurasi dengan Private Service Connect tidak didukung.
- Anda tidak dapat melakukan update instance atau permintaan failover pada cluster sumber selama migrasi. Operasi ini dapat menyebabkan tugas migrasi gagal.
- Semua batasan standar untuk migrasi PostgreSQL ke AlloyDB berlaku untuk skenario ini. Untuk mengetahui daftar lengkap batasan lainnya, lihat Batasan umum dalam dokumentasi Database Migration Service.
- Fidelitas migrasi
- Jenis data tertentu, seperti objek besar, tidak dimigrasikan. Untuk mengetahui daftar lengkap data yang didukung, lihat fidelitas migrasi dalam dokumentasi Database Migration Service.
- Penguncian dan periode nonaktif database sumber
-
Database Migration Service menggunakan migrasi berkelanjutan untuk memindahkan data ke cluster AlloyDB. Jenis migrasi ini menyebabkan penguncian singkat (di bawah 10 detik) pada tabel database sumber, satu per satu, saat dump data awal dibuat.
Setelah migrasi selesai, Anda harus menghentikan semua operasi tulis di database sumber sebelum dapat mengalihkan aplikasi ke cluster baru. Prosedur ini memerlukan periode nonaktif. Untuk ringkasan yang lebih mendetail, lihat Migrasi berkelanjutan dalam dokumentasi Database Migration Service.
- Batasan replikasi
-
Setelah tugas migrasi berpindah ke fase pengambilan data perubahan (CDC), Database Migration Service akan terus mereplikasi data baru yang ditulis ke database sumber Anda.
Untuk tabel yang tidak memiliki kunci utama, hanya pernyataan
INSERT
yang direplikasi selama fase CDC. Setiap tindakanCREATE
,UPDATE
, atauDELETE
yang dilakukan pada tabel yang tidak memiliki kunci utama selama fase CDC perlu dibuat ulang di database tujuan secara manual untuk menghindari kehilangan data.
Sebelum memulai
-
Enable the Database Migration Service API.
-
Make sure that you have the following role or roles on the project:
- One of the following:
- Cloud AlloyDB > Cloud AlloyDB admin
- Basic > Owner
- Basic > Editor
- You must also have the
compute.networks.list
permission in the Google Cloud project you are using. To gain this permission while following the principle of least privilege, ask your administrator to grant you the Compute Engine > Compute Network User role (roles/compute.networkUser
). - Database Migration admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Buka IAM - Pilih project.
- Klik Berikan akses.
-
Di kolom New principals, masukkan ID pengguna Anda. Ini biasanya adalah alamat email untuk Akun Google.
- Di daftar Pilih peran, pilih peran.
- Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
- Klik Simpan.
- Pastikan jaringan VPC di project Google Cloud yang Anda gunakan dikonfigurasi untuk akses layanan pribadi ke AlloyDB.
- Tentukan region tempat Anda ingin membuat cluster tujuan. Semua entity Database Migration Service (profil koneksi, tugas migrasi) harus dibuat di region yang sama dengan cluster tujuan Anda.
- Siapkan pengguna database yang ingin Anda hubungkan ke cluster dan jalankan pernyataan migrasi di database sumber. Pengguna database ini memerlukan kumpulan izin dan peran tertentu. Sebaiknya buat pengguna database baru dan tetapkan secara khusus untuk tujuan melakukan migrasi.
Mengonfigurasi instance sumber
Database Migration Service memerlukan konfigurasi tertentu agar dapat terhubung dan menyalin data dari cluster sumber ke cluster tujuan baru.
Untuk mengonfigurasi instance sumber AlloyDB, lakukan langkah-langkah berikut:
-
Konfigurasikan flag database di setiap instance di cluster sumber Anda.
Gunakan nilai berikut:
Flag Nilai alloydb.logical_decoding
Tetapkan ke on
.alloydb.enable_pglogical
Tetapkan ke on
.max_replication_slots
Flag ini menentukan jumlah maksimum slot replikasi yang dapat didukung oleh instance sumber. Nilai minimum untuk flag ini adalah 50
.Hitung nilai minimum menggunakan formula berikut:
(the number of databases in your instance) * (the number of simultaneous migration jobs you want to perform) + (slots reserved for table synchronization) + (the number of replication slots you currently use for your read replicas)
Perhatikan contoh berikut:
- Anda tidak memiliki replika baca di sumber.
- Anda memiliki 30 database di instance sumber utama.
- Anda ingin membuat 2 tugas migrasi untuk cluster sumber.
- Anda ingin menggunakan 10 slot untuk replikasi tabel.
max_replication_slots
harus minimal70
, yang dihitung sebagai30 * 2 + 10 + 0
.max_wal_senders
Tetapkan tanda ini ke setidaknya 10 lebih besar dari nilai max_replication_slots
ditambah jumlah pengirim yang sudah digunakan di instance Anda.Misalnya, jika Anda menetapkan
max_replication_slots flag
ke70
dan sudah menggunakan 2 pengirim,max_wal_senders
harus minimal82
(dihitung sebagai70 + 10 + 2 = 82
).max_worker_processes
Tetapkan flag ini setidaknya ke jumlah database di instance Anda ditambah jumlah max_worker_processes
yang sudah Anda gunakan.Misalnya, jika Anda memiliki 30 database di instance sumber dan tidak menggunakan proses pekerja apa pun, tetapkan tanda ini ke
30
. - Nonaktifkan mode penerapan SSL di setiap instance di cluster sumber Anda.
Mengonfigurasi database sumber
Anda harus menginstal ekstensi
pglogical
dan memberikan izin yang diperlukan kepada pengguna database yang Anda tetapkan sebagai pengguna migrasi di setiap database di instance Anda.Untuk mengonfigurasi database, lakukan langkah-langkah berikut:
- Hubungkan ke database
postgres
default menggunakan klienpsql
. Instal ekstensi
pglogical
dengan menjalankan perintah berikut:CREATE EXTENSION IF NOT EXISTS pglogical;
Berikan izin kepada pengguna database migrasi di semua skema kecuali skema
information
dan skema yang namanya dimulai dengan awalanpg_
. Jalankan pernyataan berikut:GRANT USAGE on SCHEMA SCHEMA_NAME to USER_NAME; GRANT SELECT on ALL TABLES in SCHEMA SCHEMA_NAME to USER_NAME; GRANT SELECT on ALL SEQUENCES in SCHEMA SCHEMA_NAME to USER_NAME;
Ganti kode berikut:
- SCHEMA_NAME: nama skema yang ada di database Anda
- USER_NAME: nama pengguna database yang Anda siapkan di bagian Sebelum memulai
Ulangi langkah ini untuk setiap skema di database Anda kecuali skema
information
, dan skema yang namanya dimulai dengan awalanpg_
. Anda dapat mencantumkan semua skema database dengan meta-perintah \dn.Berikan izin yang diperlukan lainnya. Jalankan pernyataan berikut:
GRANT USAGE on SCHEMA pglogical to PUBLIC; GRANT SELECT on ALL TABLES in SCHEMA pglogical to USER_NAME; ALTER USER USER_NAME with REPLICATION;
Ganti USER_NAME dengan nama pengguna database yang Anda siapkan di bagian Sebelum memulai.
Hubungkan ke setiap database lain di instance Anda dan ulangi langkah 2, 3, dan 4.
Anda dapat mencantumkan semua database di instance dengan meta-perintah
\list
.Anda dapat beralih ke database lain tanpa mereset koneksi klien
psql
menggunakan perintah\connect {database_name_here}
.
Ulangi prosedur ini untuk setiap instance di cluster AlloyDB sumber Anda.
Menjalankan migrasi di Database Migration Service
Ikuti langkah-langkah berikut:
Buat profil koneksi sumber untuk cluster AlloyDB Anda. Gunakan nilai berikut:
- Database engine: Pilih PostgreSQL.
- Hostname/IP: Gunakan alamat IP instance utama di cluster Anda.
- Nama pengguna/sandi: Masukkan kredensial untuk pengguna database yang Anda siapkan di bagian Sebelum memulai.
- Port: Masukkan
5432
. - Region: Pilih region tempat cluster tujuan Anda berada.
- Jenis enkripsi: Pilih Tidak ada.
Buat dan jalankan tugas migrasi.
Anda dapat membuat cluster AlloyDB baru terlebih dahulu, atau meminta Database Migration Service membuat cluster untuk Anda selama konfigurasi tugas migrasi. Untuk informasi selengkapnya, lihat Ringkasan tugas migrasi dalam dokumentasi Database Migration Service.
Jika Anda ingin Database Migration Service membuat cluster tujuan untuk Anda selama konfigurasi tugas migrasi, ikuti langkah-langkah dalam prosedur Membuat tugas migrasi ke instance tujuan baru.
Jika Anda ingin membuat cluster tujuan di luar Database Migration Service, ikuti langkah-langkah dalam prosedur Membuat tugas migrasi ke instance tujuan yang ada.
Saat status tugas migrasi Anda berubah menjadi CDC, promosikan tugas migrasi. Anda dapat memeriksa status tugas migrasi di halaman ringkasan migrasi. Lihat Meninjau tugas migrasi di dokumentasi Database Migration Service.
Tindakan ini menyebabkan cluster tujuan Anda keluar dari mode bootstrap (yaitu, cluster AlloyDB tujuan Anda tidak lagi dalam status hanya baca).
(Opsional) Periksa pernyataan yang tidak ada dalam tabel yang tidak memiliki kunci utama.
Jika database AlloyDB sumber Anda berisi tabel yang tidak memiliki kunci utama, Anda mungkin perlu memigrasikan pernyataan
UPDATE
atauDELETE
yang tidak ada secara manual. Lihat Memigrasikan operasi UPDATE dan DELETE untuk tabel non-kunci utama dalam dokumentasi Database Migration Service.Alihkan aplikasi Anda ke cluster baru. Aplikasi Anda kini dapat terhubung ke instance cluster baru di alamat IP barunya.
- One of the following: