本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以為 PostgreSQL 資料庫管理兩種類型的升級:
-
作業系統更新 - Amazon RDS 偶爾可能需要更新資料庫的基礎作業系統,才能套用安全修正或作業系統變更。您可以使用 RDS 主控台、 AWS Command Line Interface (AWS CLI) 或 RDS API 來決定 Amazon RDS 何時套用作業系統更新。如需作業系統更新的詳細資訊,請參閱將更新套用至資料庫執行個體。
-
資料庫引擎升級 - 當 Amazon RDS 支援新版本的資料庫引擎時,您可以將資料庫升級為新版本。
此環境中的資料庫是 RDS for PostgreSQL 資料庫執行個體或多可用區域資料庫叢集。
PostgreSQL 資料庫有兩種類型的引擎升級:主要版本升級和次要版本升級。
- 主要版本升級
-
主要版本升級 可能包含與現有應用程式回溯不相容的資料庫變更。因此,您必須手動執行資料庫的主要版本升級。您可以透過修改資料庫執行個體或多可用區域資料庫叢集來啟動主要版本升級。在您執行主要版本升級之前,建議您遵循中所述的步驟 選擇 RDS for PostgreSQL 升級的主要版本。
Amazon RDS 會以下列方式處理多可用區域主要版本升級:
-
多可用區域資料庫執行個體部署 – Amazon RDS 會同時升級主要執行個體和任何待命執行個體。升級完成時,您的資料庫可能無法使用幾分鐘。
-
多可用區域資料庫叢集部署 – Amazon RDS 會同時升級讀取器和寫入器執行個體。升級完成時,您的資料庫可能無法使用幾分鐘。
如果您升級具有區域內僅供讀取複本的資料庫執行個體,Amazon RDS 會與主要資料庫執行個體一起升級複本。
Amazon RDS 不會升級多可用區域資料庫叢集讀取複本。如果您執行多可用區域資料庫叢集的主要版本升級,則其僅供讀取複本的複寫狀態會變更為已終止。升級完成後,您必須手動刪除並重新建立僅供讀取複本。
提示
您可以使用藍/綠部署,將主要版本升級所需的停機時間降至最低。如需詳細資訊,請參閱使用 Amazon RDS 藍/綠部署進行資料庫更新。
-
- 次要版本升級
-
反之,次要版本升級 只包含與現有應用程式回溯相容的變更。您可以藉由修改資料庫來手動啟動次要版本升級。或者,您可以在建立或修改資料庫時啟用自動次要版本升級選項。這樣做意味著 Amazon RDS 會在測試和核准新版本後自動升級您的資料庫。
Amazon RDS 會以下列方式處理多可用區域次要版本升級:
-
多可用區域資料庫執行個體部署 – Amazon RDS 會同時升級主要執行個體和任何待命執行個體。升級完成時,您的資料庫可能無法使用幾分鐘。
-
多可用區域資料庫叢集部署 – Amazon RDS 一次升級一個讀取器資料庫執行個體。然後,其中一個讀取器資料庫執行個體會切換為新的寫入器資料庫執行個體。然後,Amazon RDS 會升級舊寫入器執行個體 (現在是讀取器執行個體)。多可用區域資料庫叢集通常會將次要版本升級的停機時間縮短到大約 35 秒。與 RDS Proxy 搭配使用時,他們可以進一步將停機時間縮短至一秒或更短。如需詳細資訊,請參閱Amazon RDS Proxy。或者,您可以使用開放原始碼資料庫代理,例如 ProxySQL
、PgBouncer 或AWS 進階 JDBC Wrapper Driver 。
如果您的資料庫有僅供讀取複本,您必須先升級所有僅供讀取複本,才能升級來源執行個體或叢集。
如需詳細資訊,請參閱適用於 Postgre RDS 的 自動次要版本升級SQL。如需有關手動執行次要版本升級的詳細資訊,請參閱手動升級引擎版本。
-
如需有關資料庫引擎版本和取代資料庫引擎版本政策的詳細資訊,請參閱《Amazon RDS FAQs》中的資料庫引擎版本
主題
PostgreSQL 升級的考量事項
為了安全地升級資料庫,Amazon RDS 會使用 PostgreSQL 文件pg_upgrade
公用程式
如果您的備份保留期大於 0,則 Amazon RDS 會在升級程序期間建立兩個資料庫快照。第一個資料庫快照是屬於完成任何升級變更之前的資料庫。如果資料庫升級失敗,您可以還原此快照,以建立執行舊版本的資料庫。升級完成後會建立第二個資料庫快照。
注意
您必須將資料庫的備份保留期設定為大於 0 的數字,Amazon RDS 才會在升級過程中拍攝資料庫快照。若要變更資料庫執行個體的備份保留期,請參閱 修改 Amazon RDS 資料庫執行個體。您無法為多可用區域資料庫叢集設定自訂備份保留期。
當您執行資料庫執行個體的主要版本升級時,任何區域內僅供讀取複本也都會自動升級。升級工作流程開始後,僅供讀取複本會等待主要資料庫執行個體上的 pg_upgrade
順利完成。然後,主要資料庫執行個體升級會等待僅供讀取複本升級完成。在升級完成之前,可能會遭遇停機。當您執行多可用區域資料庫叢集的主要版本升級時,其僅供讀取複本的複寫狀態會變更為已終止。
升級完成後,您就無法還原為舊版的資料庫引擎。若您想要恢復前一版本,請從升級前拍攝的資料庫快照進行還原,以建立新的資料庫。
尋找有效的升級目標
當您使用 AWS Management Console 來升級資料庫時,會顯示資料庫的有效升級目標。您也可以使用下列 AWS CLI 命令來識別資料庫的有效升級目標:
對於 Linux、 macOS或 Unix:
aws rds describe-db-engine-versions \ --engine postgres \ --engine-version
version-number
\ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
在 Windows 中:
aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version
version-number
^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
例如,若要識別 PostgreSQL 16.1 版資料庫的有效升級目標,請執行下列 AWS CLI 命令:
對於 Linux、 macOS或 Unix:
aws rds describe-db-engine-versions \ --engine postgres \ --engine-version 16.1 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
在 Windows 中:
aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version 16.1 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text