Untuk mengupgrade antar-versi utama PostgreSQL, lihat Mengupgrade AlloyDB Omni di VM.
Petunjuk di halaman ini berlaku untuk deployment node tunggal mandiri dan untuk node database individual dalam topologi multi-node, seperti deployment dengan replika baca atau node standby ketersediaan tinggi. Tinjau pertimbangan berikut berdasarkan penyiapan Anda:
- Direktori data eksternal: Sebelum Anda menghentikan dan menghapus container, pastikan
data database Anda disimpan di direktori host persisten yang dipasang
ke dalam container (misalnya,
-v DATA_DIR:/var/lib/postgresql/data). Menghapus container yang menyimpan data hanya di dalam sistem file container akan menghapus data database Anda. Untuk mengetahui informasi selengkapnya, lihat Menginstal AlloyDB Omni menggunakan container. - Topologi multi-node: Selalu upgrade semua node replika dan standby sebelum Anda mengupgrade node utama. Dalam penyiapan ketersediaan tinggi, jeda failover otomatis atau deteksi kegagalan sebelum menghentikan container, dan lakukan peralihan ke node standby yang diupgrade sebelum Anda mengupgrade node utama sebelumnya.
- Image container kustom dengan ekstensi: Jika Anda membuat image container kustom dengan ekstensi pihak ketiga seperti PostGIS atau Orafce, bangun ulang image container kustom Anda menggunakan image dasar versi minor yang telah diupdate sebelum Anda membuat ulang container.
Sebelum memulai
Sebelum mengupgrade AlloyDB Omni, selesaikan langkah-langkah berikut:
- Rencanakan masa pemeliharaan atau periode nonaktif layanan singkat karena penggantian container memerlukan penghentian sementara layanan database.
- Lakukan pencadangan penuh database Anda sebelum memulai upgrade. Untuk mengetahui informasi selengkapnya, lihat Ringkasan pencadangan dan pemulihan.
- Jika Anda mengupgrade topologi multi-node, identifikasi node utama saat ini dan semua node standby atau replika, sehingga Anda dapat mengupgrade node standby dan replika terlebih dahulu.
Periksa container yang sedang berjalan untuk mencatat image saat ini, pemasangan direktori data host, pemetaan port, variabel lingkungan, dan flag runtime-nya, sehingga Anda dapat membuat ulang container dengan konfigurasi yang sama:
Docker
docker inspect CONTAINER_NAMEPodman
podman inspect CONTAINER_NAMEGanti
CONTAINER_NAMEdengan nama container AlloyDB Omni Anda, misalnya,my-omni.Periksa versi database AlloyDB Omni Anda saat ini sebelum melakukan upgrade:
Docker
docker exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"Podman
podman exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"
Mengambil image container yang telah diupdate
Ambil image container versi minor target ke mesin host Anda:
Docker
docker pull IMAGE_URIPodman
podman pull IMAGE_URIGanti IMAGE_URI dengan URI image container dan tag versi minor yang ingin Anda upgrade—misalnya, google/alloydbomni:18.4.0 untuk image Debian atau google/alloydbomni:18.4.0-ubi9 untuk Red Hat Universal Base Image (UBI).
Jika deployment Anda menggunakan image container kustom dengan ekstensi seperti
PostGIS atau
Orafce, perbarui petunjuk FROM atau
argumen build OMNI_VERSION di Dockerfile Anda untuk mereferensikan tag versi minor
yang diperbarui, lalu build image kustom yang diperbarui sebelum melanjutkan.
Mengupgrade AlloyDB Omni
Untuk mengupgrade penginstalan AlloyDB Omni ke versi minor yang lebih baru, selesaikan langkah-langkah berikut di setiap node. Dalam topologi multi-node, selesaikan langkah-langkah ini di setiap node standby atau replika sebelum Anda mengupgrade node utama:
Hentikan dan hapus container AlloyDB Omni yang ada:
Docker
docker container stop CONTAINER_NAME docker container rm CONTAINER_NAMEPodman
podman container stop CONTAINER_NAME podman container rm CONTAINER_NAMEMenghentikan dan menghapus container tidak akan memengaruhi file database Anda di direktori data host yang terpasang.
Buat ulang dan mulai container AlloyDB Omni menggunakan image versi minor yang telah diupdate dan pasang direktori data host yang ada:
Docker
docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ IMAGE_URIPodman
podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ IMAGE_URIGanti kode berikut:
CONTAINER_NAME: nama container AlloyDB Omni Anda—misalnya,my-omni.PASSWORD: sandi untuk penggunapostgrescontainer. Saat Anda memasang direktori data yang sudah diinisialisasi, penampung akan mempertahankan sandi yang sudah dikonfigurasi di database Anda.DATA_DIR: jalur direktori host tempat data database yang ada disimpan.HOST_PORT: port TCP pada mesin host yang memublikasikan port container5432—misalnya,5432.IMAGE_URI: URI image container versi minor yang diperbarui (atau URI image kustom yang di-build ulang)—misalnya,google/alloydbomni:18.4.0.
Gunakan varian OS image dasar yang sama (Debian atau UBI) seperti container sebelumnya sehingga kepemilikan file di direktori data host Anda cocok dengan pengguna
postgrescontainer. Jika container Anda sebelumnya menggunakan flag runtime tambahan, seperti--ulimit,--log-driver,--shm-size, atau-v /dev/shm:/dev/shm, sertakan flag tersebut saat Anda membuat ulang container. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan AlloyDB Omni untuk produksi.
Memverifikasi upgrade
Setelah Anda membuat ulang dan memulai container, pastikan layanan database menjalankan versi minor yang telah diupdate:
Periksa status container AlloyDB Omni dan pastikan statusnya adalah
Up:Docker
docker ps --filter "name=CONTAINER_NAME"Podman
podman ps --filter "name=CONTAINER_NAME"Hubungkan ke database dan pastikan versi yang diupgrade sudah aktif:
Docker
docker exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"Podman
podman exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"
Me-roll back upgrade
Jika Anda perlu mengembalikan penginstalan AlloyDB Omni ke versi minor sebelumnya, hentikan dan hapus container yang diupgrade, lalu mulai container yang menggunakan image versi minor sebelumnya:
Hentikan dan hapus container AlloyDB Omni yang diupgrade:
Docker
docker container stop CONTAINER_NAME docker container rm CONTAINER_NAMEPodman
podman container stop CONTAINER_NAME podman container rm CONTAINER_NAMEBuat ulang dan mulai container menggunakan image versi minor sebelumnya dan pasang direktori data host yang sama:
Docker
docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ ROLLBACK_IMAGE_URIPodman
podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -p HOST_PORT:5432 \ --restart=always \ ROLLBACK_IMAGE_URIGanti kode berikut:
CONTAINER_NAME: nama container AlloyDB Omni Anda—misalnya,my-omni.PASSWORD: sandi untuk penggunapostgrescontainer. Saat Anda memasang direktori data yang sudah diinisialisasi, penampung akan mempertahankan sandi yang sudah dikonfigurasi di database Anda.DATA_DIR: jalur direktori host tempat data database yang ada disimpan.HOST_PORT: port TCP pada mesin host yang memublikasikan port container5432—misalnya,5432.ROLLBACK_IMAGE_URI: URI image container dan tag versi minor dari penginstalan sebelumnya (atau URI image kustom sebelumnya)—misalnya,google/alloydbomni:18.1.0.
Pastikan container berjalan dan versi database sebelumnya aktif:
Docker
docker ps --filter "name=CONTAINER_NAME" docker exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"Podman
podman ps --filter "name=CONTAINER_NAME" podman exec -it CONTAINER_NAME psql -h localhost -U postgres -c "SELECT version();"
Langkah berikutnya
- Mengupgrade AlloyDB Omni di VM
- Menyiapkan AlloyDB Omni untuk produksi
- Menyesuaikan penginstalan AlloyDB Omni
- Mengelola dan memantau AlloyDB Omni
- Ringkasan pencadangan dan pemulihan