RDS 適用於 PostgreSQL 資料庫引擎的 升級 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

RDS 適用於 PostgreSQL 資料庫引擎的 升級

您可以為 PostgreSQL 資料庫管理兩種類型的升級:

  • 作業系統更新 – 有時,Amazon RDS可能需要更新資料庫的基礎作業系統,才能套用安全修正或作業系統變更。您可以使用RDS主控台 AWS Command Line Interface (AWS CLI) 或 RDS 來決定 Amazon 何時RDS套用作業系統更新API。如需作業系統更新的詳細資訊,請參閱套用資料庫執行個體的更新

  • 資料庫引擎升級 – 當 Amazon RDS支援新版本的資料庫引擎時,您可以將資料庫升級至新版本。

此內容中的資料庫是RDS適用於 PostgreSQL 資料庫執行個體或多可用區域資料庫叢集的 資料庫。

PostgreSQL 資料庫有兩種引擎升級:主要版本升級和次要版本升級。

主要版本升級

主要版本升級 可能包含與現有應用程式回溯不相容的資料庫變更。因此,您必須手動執行資料庫的主要版本升級。您可以透過修改資料庫執行個體或多可用區域資料庫叢集來啟動主要版本升級。在您執行主要版本升級之前,建議您遵循中所述的步驟 為 RDS PostgreSQL 升級選擇主要版本

如果您要升級具有區域內僅供讀取複本的資料庫執行個體,Amazon 會與主要資料庫執行個體一起RDS升級複本。

Amazon RDS不會升級多可用區域資料庫叢集僅供讀取複本。如果您執行多可用區域資料庫叢集的主要版本升級,則其僅供讀取複本的複寫狀態會變更為已終止的 。升級完成後,您必須手動刪除並重新建立僅供讀取複本。

提示

您可以使用藍/綠部署,將主要版本升級所需的停機時間降到最低。如需詳細資訊,請參閱使用 Amazon RDS 藍/綠部署進行資料庫更新

次要版本升級

反之,次要版本升級 只包含與現有應用程式回溯相容的變更。您可以藉由修改資料庫來手動啟動次要版本升級。或者,您可以在建立或修改資料庫時啟用 Auto minor 版本升級選項。這樣做意味著 Amazon 會在測試和核准新版本後RDS自動升級您的資料庫。如果您的 PostgreSQL 資料庫使用僅供讀取複本,您必須先升級所有僅供讀取複本,才能升級來源執行個體或叢集。

如果您的資料庫是多可用區域資料庫執行個體部署,Amazon 會RDS同時升級主要執行個體和任何待命執行個體。因此,在升級完成之前,您的資料庫可能無法使用。如果您的資料庫是多可用區域資料庫叢集部署,Amazon 會一次RDS升級一個讀取器資料庫執行個體。然後,其中一個讀取器資料庫執行個體會切換為新的寫入器資料庫執行個體。RDS 然後,Amazon 會升級舊寫入器執行個體 (現在是讀取器執行個體)。

注意

多可用區域資料庫執行個體部署的次要版本升級停機時間可能持續幾分鐘。多可用區域資料庫叢集通常會將次要版本升級的停機時間縮短至約 35 秒。與 RDS Proxy 搭配使用時,您可以進一步將停機時間減少一秒或更短。如需詳細資訊,請參閱使用 Amazon RDS Proxy。或者,您可以使用開放原始碼資料庫代理,例如 Proxy SQLPgBouncerAWS JDBC Driver for My SQL

如需詳細資訊,請參閱適用於 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 12.13 版資料庫的有效升級目標,請執行下列 AWS CLI 命令:

用於 Linux, macOS、 或 Unix:

aws rds describe-db-engine-versions \ --engine postgres \ --engine-version 12.13 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

用於 Windows:

aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version 12.13 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text