Halaman ini menjelaskan cara melakukan upgrade versi utama database di tempat cluster AlloyDB untuk PostgreSQL. Untuk mempelajari kasus penggunaan, alur kerja, dan pencadangan otomatis upgrade versi utama database yang diterapkan, lihat Ringkasan upgrade versi utama database yang diterapkan.
Merencanakan upgrade versi utama database
Gunakan langkah-langkah berikut untuk merencanakan upgrade versi database utama:
Temukan versi utama database Anda saat ini.
Konsol
Di konsol Google Cloud, buka halaman Clusters.
Pilih cluster dari daftar. Halaman Ringkasan akan muncul.
Temukan versi utama database di kolom Version.
gcloud
Untuk mengetahui informasi tentang cara menginstal dan memulai gcloud CLI, lihat Menginstal gcloud CLI. Untuk mengetahui informasi tentang cara memulai Cloud Shell, lihat Menggunakan Cloud Shell.
Jalankan perintah berikut untuk mendapatkan detail cluster, termasuk versi utama saat ini:
gcloud alloydb clusters describe CLUSTER_ID --region=REGION
Lakukan penggantian berikut:
- CLUSTER_ID: ID cluster
- REGION: lokasi atau region cluster
REST v1beta
Jalankan permintaan berikut untuk mendapatkan detail cluster, termasuk versi utama saat ini:
GET https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID
Lakukan penggantian berikut:
- CLUSTER_ID: ID cluster
- PROJECT_ID: the project ID
- REGION: lokasi atau region cluster
Untuk mengirim permintaan Anda, gunakan salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID"
PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID| Select-Object -Expand Content
Identifikasi versi utama database target dari tabel berikut. Untuk mengetahui daftar lengkap versi database yang didukung AlloyDB, lihat Kebijakan versi dan versi database.
Versi utama sumber Versi utama target yang didukung POSTGRES_14 POSTGRES_15 Tinjau fitur yang ditawarkan di setiap versi utama database.
Identifikasi inkompatibilitas yang perlu Anda atasi. Versi utama baru dapat memperkenalkan perubahan yang tidak kompatibel yang mungkin mengharuskan Anda mengubah kode aplikasi, skema, atau setelan database.
Sebelum memulai upgrade versi utama di cluster produksi, sebaiknya Anda meng-clone cluster dan menguji upgrade versi utama di cluster yang di-clone.
Selain memverifikasi bahwa upgrade berhasil diselesaikan, jalankan pengujian untuk memastikan aplikasi berperilaku seperti yang diharapkan pada cluster yang diupgrade.
Menyiapkan cluster untuk upgrade versi utama
Untuk menyelesaikan langkah apa pun yang mengharuskan Anda terhubung ke database, gunakan AlloyDB Studio, psql, atau metode koneksi lainnya.
- Hapus atau promosikan replika lintas region Anda. Upgrade versi utama Database In-place tidak mendukung replika lintas region. Untuk informasi selengkapnya, lihat Replikasi lintas region.
Pastikan setelan encoding dan lokalitas untuk database
postgres
dantemplate1
sama dengan databasetemplate0
.Jalankan perintah berikut:
SELECT pg_encoding_to_char(encoding), datcollate, datctype FROM pg_database WHERE datname IN ('postgres', 'template1', 'template0');
Jika nilai untuk database
postgres
atautemplate1
berbeda dengan nilai untuk databasetemplate0
, upgrade akan gagal. Untuk menyelesaikan masalah ini, ikuti langkah berikut:Buat dump database lain (bukan template). Untuk mengetahui informasi selengkapnya, lihat Mengekspor data.
Hapus database dengan menjalankan
DROP DATABASE <database_name>;
Buat ulang database dengan setelan lokalitas dan encoding yang sama seperti database
template0
dengan menjalankan perintah berikut:CREATE DATABASE <database_name> ENCODING = '<template0_encoding>' LC_COLLATE = '<template0_datcollate>' LC_CTYPE = '<template0_datctype>';
Muat ulang data Anda. Untuk mengetahui informasi selengkapnya, lihat Mengimpor data.
Jika cluster AlloyDB Anda adalah sumber replikasi logis, nonaktifkan langganan downstream dan hapus semua slot replikasi logis. Anda dapat mengaktifkan kembali langganan dan membuat ulang slot replikasi logika setelah upgrade. Jika instance AlloyDB hanya merupakan target replikasi logis, langkah-langkah ini tidak diperlukan. Untuk menonaktifkan langganan dan menghapus slot replika logika, ikuti langkah-langkah berikut:
Nonaktifkan setiap langganan downstream di subscriber atau target replikasi downstream. Jangan nonaktifkan langganan downstream di instance AlloyDB yang diupgrade:
Jika Anda menggunakan
pglogical
, jalankan perintah berikut:SELECT * FROM pglogical.alter_subscription_disable(subscription_name, immediate);
Ganti
subscription_name
dalam kueri dengan nama langganan yang sudah ada. Jika langganan perlu segera dinonaktifkan, tetapkan nilai parameterimmediate
ketrue
. Secara default, nilainya adalahfalse
dan langganan dinonaktifkan hanya setelah transaksi saat ini berakhir.Contoh:
postgres=> SELECT * FROM pglogical.alter_subscription_disable('test_sub',true); alter_subscription_disable ---------------------------- t (1 row)
Jika Anda menggunakan ekstensi selain
pglogical
, jalankan perintah berikut:ALTER SUBSCRIPTION <subscription_name> DISABLE;
Hapus semua slot replikasi logis di instance utama AlloyDB dengan menjalankan perintah berikut:
SELECT pg_drop_replication_slot(slot_name) FROM pg_replication_slots WHERE slot_type = 'logical';
Mengelola ekstensi PostgreSQL Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi ekstensi database.
Pemeriksaan pra-upgrade mendeteksi inkompatibilitas ekstensi dan menampilkan pelanggaran tersebut dalam log, beserta tindakan yang disarankan. Untuk informasi selengkapnya, lihat Melihat kegagalan pemeriksaan pra-upgrade.
Anda mungkin perlu melakukan hal berikut:
- Hapus semua ekstensi yang tidak lagi didukung di versi target.
Upgrade PostGIS dan ekstensi terkait (
address_standardizer
,address_standardizer_data_us
,postgis_raster
,postgis_sfcgal
,postgis_tiger_geocoder
, danpostgis_topology
) ke versi yang didukung dalam versi PostgreSQL target. Untuk informasi selengkapnya, lihat Ekstensi PostGIS. Tabel berikut mencantumkan versi ekstensi PostGIS minimum yang didukung untuk setiap versi utama PostgreSQL:Versi PostgreSQL Versi minimum PostGIS yang didukung PG14 3.1 PG15 3.2 Misalnya, jika versi PostGIS Anda adalah 3.1.x dan Anda ingin mengupgrade dari POSTGRES 14 ke POSTGRES 15, gunakan perintah berikut untuk mengupgrade ekstensi PostGIS:
ALTER EXTENSION postgis UPDATE TO '3.2.3'; SELECT PostGIS_Version();
Pastikan koneksi diizinkan untuk setiap database, kecuali untuk
template0
, dengan menjalankan kueri berikut dan memeriksa kolomdatallowconn
untuk setiap database:SELECT datname,datallowconn from pg_database;
Nilai
t
di kolomdatallowconn
berarti koneksi diizinkan. Nilaif
menunjukkan bahwa koneksi tidak dapat dibuat. Databasetemplate0
tidak boleh mengizinkan koneksi.Untuk mengizinkan koneksi ke database, jalankan perintah berikut:
ALTER DATABASE <database> WITH ALLOW_CONNECTIONS = true;
Mengupgrade versi utama cluster secara langsung
Upgrade versi utama database yang diterapkan dapat memerlukan waktu antara 40 menit hingga 48 jam untuk diselesaikan, bergantung pada faktor seperti ukuran database, ukuran skema, dan jumlah instance kumpulan operasi baca di cluster. Waktu nonaktif instance utama biasanya 20 menit hingga satu jam, dan terutama bergantung pada skema database Anda.
Saat Anda mengajukan permintaan upgrade versi utama secara langsung, AlloyDB akan melakukan pemeriksaan pra-upgrade terlebih dahulu. Jika AlloyDB menentukan bahwa cluster Anda belum siap untuk upgrade versi utama, permintaan akan gagal. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah upgrade langsung versi utama.
Untuk mengupgrade versi utama database secara langsung, ikuti langkah-langkah berikut:
Konsol
Di konsol Google Cloud, buka halaman Clusters.
Pilih cluster dari daftar. Halaman Ringkasan akan muncul.
Klik Upgrade untuk memulai proses upgrade versi utama database.
Pada langkah Pilih versi database, pilih salah satu versi utama database yang tersedia sebagai versi utama target.
Klik Lanjutkan.
Pada langkah Upgrade cluster di kolom Cluster ID, masukkan nama cluster.
Klik Mulai upgrade. Anda akan diarahkan ke langkah Status Upgrade, tempat Anda dapat memeriksa status upgrade. Untuk mengetahui informasi selengkapnya, lihat Memantau upgrade versi database utama.
gcloud
Mulai upgrade versi utama secara langsung dengan menjalankan perintah berikut:
gcloud alloydb beta clusters upgrade CLUSTER_ID --region=REGION --version=DATABASE_VERSION --async
Berikut adalah contoh perintah:
gcloud alloydb beta clusters upgrade my-cluster --region=us-central1 --version=POSTGRES_15 --async
REST v1beta
Mulai upgrade versi utama secara langsung dengan menjalankan perintah berikut:
PATCH https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID:upgrade
Meminta isi JSON:
{
"version": "DATABASE_VERSION"
}
Ganti dengan enum untuk versi utama database target, yang harus lebih baru dari versi saat ini.
Contoh isi JSON permintaan:
{
"version": "POSTGRES_15"
}
Memantau upgrade versi utama cluster
Setelah upgrade versi database utama in-place dimulai, Anda dapat memantau status upgrade menggunakan konsol Google Cloud, gcloud CLI, atau REST API.
Konsol
Ikuti langkah-langkah berikut untuk memeriksa status upgrade di konsol Google Cloud:
Di konsol Google Cloud, buka halaman Clusters.
Pilih cluster yang sedang diupgrade. Halaman Ringkasan akan muncul.
Buka halaman Ringkasan.
Klik Status Upgrade. Halaman Status Upgrade akan muncul, tempat Anda dapat memeriksa status upgrade.
gcloud
Ikuti langkah-langkah berikut untuk memeriksa status upgrade di gcloud CLI:
Dapatkan ID operasi upgrade dengan menjalankan perintah berikut. Sebelum menjalankan perintah, ganti variabel
CLUSTER_ID
dengan nama cluster:gcloud alloydb operations list --cluster=CLUSTER_ID --region=REGION_ID --filter=metadata.verb:upgrade
Panggilan gcloud CLI yang digunakan untuk memicu upgrade versi utama.
alloydb beta clusters upgrade
, menampilkan ID operasi sebagai respons sinkron. Atau, gunakan perintahgcloud alloydb operations list
dengan flag--cluster
.Berikut adalah contoh perintah:
gcloud alloydb operations list --cluster=my-cluster --region=us-central1 --filter=metadata.verb:upgrade
Pantau status upgrade dengan menjalankan perintah berikut:
gcloud alloydb operations describe OPERATION_ID --region=REGION https://cloud.google.com/sdk/gcloud/reference/alloydb/operations/describe
REST v1beta
Ikuti langkah-langkah berikut untuk memeriksa status upgrade di REST API:
Mendapatkan ID operasi upgrade.
Gunakan permintaan
GET
berikut dengan metodeoperations.list
untuk mencantumkan semua operasi upgrade dan menemukan operasi yang sesuai dengan cluster target:GET https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/operations/filter=metadata.verb:upgrade
Panggilan REST API menampilkan ID operasi sebagai respons sinkron.
Pantau status upgrade.
Gunakan permintaan GET dengan metode
operations.get
:GET https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Lakukan penggantian berikut:
- PROJECT_ID: the project ID
- REGION: lokasi atau region cluster
- OPERATION_ID: ID operasi upgrade, yang diambil di langkah sebelumnya.
Berikut adalah contoh respons saat operasi sedang berlangsung:
{ "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.alloydb.v1.OperationMetadata", "createTime": "2024-09-16T23:17:39.727319438Z", "target": "projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID", "verb": "upgrade", "requestedCancellation": false, "apiVersion": "v1", "upgradeClusterStatus": { "state": "IN_PROGRESS", "cancellable": true, "stages": [ { "stage": "ALLOYDB_PRECHECK", "state": "IN_PROGRESS" }, { "stage": "PG_UPGRADE_CHECK", "state": "IN_PROGRESS" }, { "stage": "PREPARE_FOR_UPGRADE", "state": "NOT_STARTED" }, { "stage": "PRIMARY_INSTANCE_UPGRADE", "state": "NOT_STARTED" }, { "stage": "CLEANUP", "state": "NOT_STARTED" } ] } }, "done":false }
Berikut adalah contoh respons, saat operasi selesai:
{ "operations": [ { "metadata": { "@type": "type.googleapis.com/google.cloud.alloydb.v1betaalpha.OperationMetadata", "createTime": "2024-09-16T21:52:17.303861317Z", "endTime": "2024-09-16T22:29:13.947527949Z", "target": "projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID", "verb": "upgrade", "requestedCancellation": false, "apiVersion": "v1beta", "upgradeClusterStatus": { "state": "SUCCESS", "stages": [ { "stage": "ALLOYDB_PRECHECK", "state": "SUCCESS" }, { "stage": "PG_UPGRADE_CHECK", "state": "SUCCESS" }, { "stage": "PREPARE_FOR_UPGRADE", "state": "SUCCESS" }, { "stage": "PRIMARY_INSTANCE_UPGRADE", "state": "SUCCESS" }, { "stage": "CLEANUP", "state": SUCCESS" } ] } }, "response": { … }, "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID", "done": true } ] }
Untuk mengetahui informasi selengkapnya tentang struktur
response
, lihat Respons operasi upgrade.
Respons operasi upgrade
Respons operasi UpgradeCluster
mencakup hal berikut:
status
: status keseluruhan operasi upgrade. Nilai yang mungkin adalahSUCCESS
,FAILED
, danPARTIAL_SUCCESS.
message
: memberikan ringkasan singkat tentang hasil operasi upgrade.clusterUpgradeDetails
: detail upgrade untuk cluster yang sedang diupgrade. Kolom ini adalah array. AlloyDB hanya mengizinkan upgrade cluster tunggal, sehingga hanya boleh memiliki satu entri.name
: nama cluster yang sepenuhnya memenuhi syarat.upgradeStatus
: status upgrade cluster. Nilai yang mungkin adalahSUCCESS
,FAILED
,PARTIAL_SUCCESS
.PARTIAL_SUCCESS
berarti satu atau beberapa instance kumpulan baca tidak dapat diupgrade.clusterType
: jenis cluster. AlloyDB hanya memungkinkan Anda mengupgrade satu clusterPRIMARY
. Jenis ini harus selaluPRIMARY
.databaseVersion
: versi database cluster saat ini.stageInfo
: informasi tentang tahap upgrade inti.status
:SUCCESS
atauFAILED
logs_url
: link ke log yang dihasilkan oleh tahap. Kosong untuk tahap yang tidak menghasilkan log.
instanceUpgradeDetails
: informasi upgrade untuk semua instance dalam cluster.name
: nama instance yang sepenuhnya memenuhi syaratupgradeStatus
:SUCCESS
atauFAILED
instanceType
:PRIMARY
atauREAD_POOL
Berikut adalah contoh respons operasi upgrade:
"response": { "@type": "type.googleapis.com/google.cloud.alloydb.v1alpha.UpgradeClusterResponse", "status": "SUCCESS", "message": "Cluster upgraded successfully.", "clusterUpgradeDetails": [ { "name": "projects/1234/locations/us-central1/clusters/abc", "upgradeStatus": "SUCCESS", "clusterType": "PRIMARY", "databaseVersion": "POSTGRES_15", "stageInfo": [ { "stage": "ALLOYDB_PRECHECK", "status": "SUCCESS", "logsUrl": "https://console.cloud.google.com/logs/query..." }, { "stage": "PG_UPGRADE_CHECK", "status": "SUCCESS", "logsUrl": "https://console.cloud.google.com/logs/query..." }, { "stage": "PRIMARY_INSTANCE_UPGRADE", "status": "SUCCESS", "logsUrl": "https://console.cloud.google.com/logs/query..." }, { "stage": "READ_POOL_INSTANCES_UPGRADE", "status": "SUCCESS", } ], "instanceUpgradeDetails": [ { "name": "projects/1234/locations/us-central1/clusters/abc/instances/primary", "upgradeStatus": "SUCCESS", "instanceType": "PRIMARY", }, { "name": "projects/1234/locations/us-central1/clusters/abc/instances/read1", "upgradeStatus": "SUCCESS", "instanceType": "READ_POOL", }, { "name": "projects/1234/locations/us-central1/clusters/abc/instances/read2", "upgradeStatus": "SUCCESS", "instanceType": "READ_POOL", } ] } ] }
Lihat log upgrade
AlloyDB memublikasikan semua log upgrade ke nama log postgres_upgrade
.
Untuk melihat log terkait upgrade, ikuti langkah-langkah berikut:
-
Di konsol Google Cloud, buka halaman Logs Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Pilih
alloydb.googleapis.com/postgres_upgrade
sebagai nama log. Hal ini diterjemahkan ke kueri"logName="projects/PROJECT_ID/logs/alloydb.googleapis.com%2Fpostgres_upgrade"
.Gunakan label berikut untuk memfilter log:
Label Deskripsi LOG_TYPE
Tahap upgrade yang menghasilkan log. Nilai yang mungkin adalah ALLOYDB_PRECHECK
,PG_UPGRADE_CHECK
, danPG_UPGRADE
.OPERATION_NAME
Nama operasi lengkap untuk operasi upgrade. FILE_NAME
Hanya diisi untuk log pg_upgrade_check
danpg_upgrade
, dan sesuai dengan file log yang dihasilkan oleh utilitaspg_upgrade
.
Berikut adalah contoh kueri yang menampilkan log upgrade pra-pemeriksaan AlloyDB untuk operasi tertentu:
logName="projects/project1234/logs/alloydb.googleapis.com%2Fpostgres_upgrade"
labels.LOG_TYPE="ALLOYDB_PRECHECK"
labels.OPERATION_NAME="projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID"
Untuk informasi selengkapnya tentang pemeriksaan upgrade, lihat Ringkasan upgrade versi utama database yang diterapkan.
Melihat log upgrade untuk cluster
Untuk melihat log upgrade untuk cluster jika Anda tidak mengetahui ID operasi dan operasi telah berakhir masa berlakunya, ikuti langkah-langkah berikut:
Buat kueri untuk log pra-pemeriksaan AlloyDB untuk cluster Anda.
logName="projects/PROJECT_ID/logs/alloydb.googleapis.com%2Fpostgres_upgrade" labels.LOG_TYPE="ALLOYDB_PRECHECK" resource.labels.cluster_id=CLUSTER_ID
Temukan
Operation_ID
dari label logOPERATION_NAME
.Pada contoh berikut,
Operation_ID
dariOPERATION_NAME
adalahoperation-1728225968201-623cff6ed1e02-e34b7191-3cd92013
.labels.OPERATION_NAME="projects/myproject/locations/us-central1/operations/operation-1728225968201-623cff6ed1e02-e34b7191-3cd92013"
Buat kueri untuk semua log
postgres_upgrade
untuk operasi tertentu.logName="projects/production-1/logs/alloydb.googleapis.com%2Fpostgres_upgrade" labels.OPERATION_NAME="operation-1728225968201-623cff6ed1e02-e34b7191-3cd92013"
Membatalkan upgrade versi utama database yang diterapkan
Anda dapat membatalkan operasi upgrade versi utama yang sedang berlangsung dari konsol Google Cloud, gcloud CLI, atau REST API.
Menemukan ID operasi
Untuk membatalkan operasi upgrade versi utama menggunakan gcloud CLI atau REST API, Anda memerlukan ID operasi. Anda harus menentukan ID ini dalam perintah gcloud CLI atau REST API agar AlloyDB mengetahui operasi mana yang akan dibatalkan.
Anda tidak dapat membatalkan upgrade setelah upgrade instance utama mencapai titik tertentu.
Saat Anda memulai upgrade versi utama di tempat, ID operasi
akan ditampilkan di kolom name
respons. Lihat
Contoh respons.
Anda juga dapat menemukan ID operasi dengan melakukan panggilan
operations.list
di cluster AlloyDB.
Membatalkan upgrade
Untuk membatalkan upgrade versi utama di tempat, ikuti langkah-langkah berikut:
Konsol
Di konsol Google Cloud, buka halaman Clusters.
Pilih cluster dari daftar. Halaman Ringkasan akan muncul.
Klik Upgrade status.
Klik Cancel. Jika upgrade tidak dapat dibatalkan, tombol ini akan berwarna abu-abu.
gcloud
Gunakan perintah gcloud alloydb operations cancel
untuk membatalkan operasi:
gcloud alloydb operations cancel OPERATION_ID
Ganti variabel OPERATION_ID dengan ID operasi.
Jika cancellable
di UpgradeClusterStatus
adalah false
dalam output perintah
gcloud alloydb operations cancel
, AlloyDB akan mengabaikan permintaan pembatalan dan melanjutkan upgrade. Dalam hal ini, API tidak menampilkan error, dan menampilkan respons kosong. Untuk mengetahui informasi selengkapnya tentang status upgrade, lihat
Memantau upgrade versi utama cluster.
REST v1beta
Jalankan perintah berikut:
POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/operations/OPERATION_ID:cancel
Sebelum menggunakan data permintaan apa pun, buat penggantian berikut:
- PROJECT_ID: project ID.
- OPERATION_ID: ID operasi impor atau ekspor.
Jika cancellable
di UpgradeClusterStatus
adalah false
, Anda tidak dapat membatalkan
upgrade.
Untuk mengirim permintaan Anda, gunakan salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID/cancel"
PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/operations/OPERATION_ID/cancel"| Select-Object -Expand Content
Anda akan melihat respons JSON seperti berikut:
Respons
Panggilan REST API ini tidak menampilkan respons apa pun.
Menyelesaikan upgrade versi utama di tempat
Untuk menyelesaikan upgrade versi utama, hubungkan ke instance AlloyDB menggunakan AlloyDB Studio, psql, atau metode koneksi lainnya.
Jika Anda menggunakan sistem non-AlloyDB, lihat dokumentasi sistem Anda untuk mengetahui petunjuk koneksi.
Setelah mengupgrade cluster, ikuti langkah-langkah berikut untuk menyelesaikan upgrade:
Jika sebelumnya Anda menonaktifkan
pglogical
, aktifkan kembali replikasipglogical
. Mengaktifkan replikasipglogical
akan otomatis membuat slot replikasi yang diperlukan.Lepaskan langganan
pglogical
pada replika tujuan dengan menggunakan perintah berikut:select pglogical.drop_subscription(subscription_name name);
Ganti
name
dengan nama langganan yang sudah ada. Contoh:postgres=> select pglogical.drop_subscription(subscription_name:= 'test_sub'); -[ RECORD 1 ]-----+-- drop_subscription |1
Buat ulang langganan
pglogical
di tujuan atau replika dengan memberikan informasi koneksi berikut ke instance utama AlloyDB:SELECT pglogical.create_subscription( subscription_name :='test_sub',<br> provider_dsn := 'host=primary-ip port=5432 dbname=postgres user=replication_user password=replicapassword' );
Periksa status langganan menggunakan perintah berikut:
SELECT * FROM pglogical.show_subscription_status('test_sub');
Uji replikasi dengan melakukan transaksi tulis dan memverifikasi bahwa perubahan tersebut terlihat di tujuan.
Muat ulang statistik database.
Setelah upgrade selesai, jalankan
ANALYZE
di cluster utama untuk memperbarui statistik sistem. Statistik yang akurat memastikan bahwa perencana kueri PostgreSQL memproses kueri secara optimal. Statistik yang tidak ada dapat menyebabkan rencana kueri yang tidak akurat, yang dapat menurunkan performa dan menggunakan memori secara berlebihan.Jalankan pengujian penerimaan untuk memastikan sistem yang diupgrade berjalan seperti yang diharapkan.
Pastikan versi utama database in-place yang diupgrade muncul di halaman Ringkasan cluster di konsol Google Cloud.
Pulihkan ke versi utama sebelumnya
Jika sistem database yang telah diupgrade tidak berfungsi seperti yang diharapkan, Anda mungkin perlu kembali ke status pra-upgrade. Anda dapat melakukannya dengan memulihkan dari cadangan pra-upgrade –baik yang dibuat otomatis oleh AlloyDB selama proses upgrade atau cadangan pra-upgrade yang ada– untuk membuat cluster baru dengan status pra-upgrade.
Untuk memulihkan ke status sebelum upgrade, ikuti langkah-langkah berikut:
Identifikasi cadangan pra-upgrade yang akan digunakan untuk pemulihan. Selama proses upgrade, AlloyDB secara otomatis membuat cadangan pra-upgrade dengan awalan
pre-upgrade-bkp
. Untuk mengetahui informasi selengkapnya, lihat Melihat daftar cadangan.Mulai pemulihan dari pencadangan pra-upgrade, yang akan membuat cluster baru dengan versi PostgreSQL sebelumnya. Untuk informasi selengkapnya, lihat Memulihkan cluster dari cadangan yang disimpan.
Hubungkan aplikasi Anda. Perbarui aplikasi Anda dengan detail tentang cluster yang dipulihkan dan replika bacanya. Anda dapat melanjutkan penayangan traffic di cluster yang dipulihkan.
Anda juga dapat melakukan pemulihan point-in-time ke titik waktu pra-upgrade. Untuk informasi selengkapnya, lihat Menggunakan pemulihan point-in-time (PITR).
Batasan
Batasan berikut memengaruhi upgrade versi utama secara langsung untuk AlloyDB:
- Anda tidak dapat melakukan upgrade versi utama di tempat pada cluster sekunder.
- Mengupgrade instance yang memiliki lebih dari 1.000 database dari satu versi ke versi lainnya mungkin memerlukan waktu yang lama, dan upgrade mungkin mencapai batas waktu.
- AlloyDB tidak mendukung upgrade cluster yang menggunakan
pg_largeobject_metadata
. Jikaselect count(*) from pg_largeobject_metadata;
bukan nol, upgrade akan gagal. - Operasi upgrade versi utama yang diterapkan mungkin selesai sebelum pencadangan per upgrade atau pencadangan pasca-upgrade selesai, terutama saat Anda memiliki database besar dengan lebih sedikit objek.
- Mungkin ada penundaan singkat antara waktu penulisan dimulai lagi di instance yang diupgrade dan saat pencadangan pasca-upgrade dibuat. Artinya, konten cadangan pasca-upgrade mungkin tidak cocok dengan konten database dari sebelum upgrade versi utama.
- Cadangan pra-upgrade mungkin masih dibuat saat upgrade versi utama in-place gagal.
- Karena cadangan upgrade otomatis bersifat berkelanjutan, Anda tidak dapat menghapusnya hingga cadangan berkelanjutan dan retensi maksimum pemulihan tercapai. Saat retensi maksimum tercapai, cadangan akan dihapus oleh garbage collector; sebagai alternatif, Anda dapat menggunakan gcloud CLI untuk menghapus cadangan secara manual. Untuk mengetahui informasi selengkapnya, lihat Pembatasan penghapusan cadangan.
Langkah selanjutnya
- Pelajari lebih lanjut upgrade versi utama database yang diterapkan.
- Memecahkan masalah upgrade versi utama di tempat.
- Pelajari error upgrade versi utama database yang diterapkan.