

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

# 管理 Babelfish for Aurora PostgreSQL 版本更新
<a name="babelfish-information"></a>

Babelfish 是適用於 Aurora PostgreSQL 13.4 版及更高版本的選項。Babelfish 的更新適用於 Aurora PostgreSQL 資料庫引擎的某些新版本。如需詳細資訊，請參閱 [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html)。

**注意**  
在 Aurora PostgreSQL 13 的任何版本上執行的 Babelfish 資料庫叢集無法升級至 Aurora PostgreSQL 14.3、14.4 和 14.5。此外，Babelfish 不支援 13.x 到 15.x 的直接升級。您必須先將 13.x 資料庫叢集升級至 14.6 及更高版本，再升級至 15.x 版本。

如需不同 Babelfish 版本之間支援的功能清單，請參閱 [Babelfish 各版本支援的功能](babelfish-compatibility.supported-functionality-table.md)。

如需目前不支援的功能清單，請參閱 [Babelfish 中不支援的功能](babelfish-compatibility.tsql.limitations-unsupported.md)。

您可以如下所示，使用 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI 命令查詢 AWS 區域，以取得支援 Babelfish 的 Aurora PostgreSQL 版本清單。

對於 Linux、macOS 或 Unix：

```
$ aws rds describe-db-engine-versions --region us-east-1 \
    --engine aurora-postgresql \
    --query '*[]|[?SupportsBabelfish==`true`].[EngineVersion]' \
    --output text
```

如需詳細資訊，請參閱 *AWS CLI 命令參考*中的 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html)。

在下列主題中，您可以了解如何識別 Aurora PostgreSQL 資料庫叢集上執行的 Babelfish 版本，以及如何升級至新版本。

**Contents**
+ [識別您的 Babelfish 版本](babelfish-information-identify-version.md)
+ [將 Babelfish 叢集升級至新版本](babelfish-information-upgrading.md)
  + [將 Babelfish 升級至新的次要版本](babelfish-information-upgrading-minor.md)
  + [將 Babelfish 升級至新的主要版本](babelfish-information-upgrading-major.md)
    + [將 Babelfish 升級至新的主要版本之前](babelfish-information-upgrading-major.md#babelfish-information-upgrading-preliminary)
    + [執行主要版本升級](babelfish-information-upgrading-major.md#babelfish-performing-major-version-upgrade)
    + [升級至新的主要版本之後](babelfish-information-upgrading-major.md#babelfish-information-upgrading-post-upgrade)
    + [範例：將 Babelfish 資料庫叢集升級至主要版本](babelfish-information-upgrading-major.md#babelfish-information-upgrading-example)
+ [使用 Babelfish 產品版本參數](babelfish-guc-version.md)
  + [設定 Babelfish 產品版本參數](babelfish-guc-version.md#babelfish-guc-version-setvalues)
  + [受影響的查詢和參數](babelfish-guc-version.md#babelfish-guc-version-affects)
  + [包含 babelfishpg\$1tsql.version 參數的界面](babelfish-guc-version.md#babelfish-guc-version-tsql)

# 識別您的 Babelfish 版本
<a name="babelfish-information-identify-version"></a>

您可以查詢 Babelfish 來尋找 Babelfish 版本、Aurora PostgreSQL 版本，以及相容的 Microsoft SQL Server 版本的詳細資訊。您可以使用 TDS 連接埠或 PostgreSQL 連接埠。
+ [To use the TDS port to query for version information](#apg-version-info-tds)
+ [To use the PostgreSQL port to query for version information](#apg-version-info-psql)

**使用 TDS 連接埠查詢版本資訊**

1. 使用 `sqlcmd` 或 `ssms` 以連線至 Babelfish 資料庫叢集的端點。

   ```
   sqlcmd -S bfish_db.cluster-123456789012.aws-region.rds.amazonaws.com,1433 -U
       login-id -P password -d db_name
   ```

1. 若要識別 Babelfish 版本，請執行下列查詢：

   ```
   1> SELECT CAST(serverproperty('babelfishversion') AS VARCHAR)
   2> GO
   ```

   此查詢傳回類似以下的結果。

   ```
   serverproperty
   ------------------------------
   3.4.0
   
   (1 rows affected)
   ```

1. 若要識別 Aurora PostgreSQL 資料庫叢集的版本，請執行下列查詢：

   ```
   1> SELECT aurora_version() AS aurora_version
   2> GO
   ```

   此查詢傳回類似以下的結果。

   ```
   aurora_version                                                                                                                                                                                                                                  
   -------------------------------------------------
   15.5.0
   
   (1 rows affected)
   ```

1. 若要識別相容的 Microsoft SQL Server 版本，請執行下列查詢：

   ```
   1> SELECT @@VERSION AS version
   2> GO
   ```

   此查詢傳回類似以下的結果。

   ```
   Babelfish for Aurora PostgreSQL with SQL Server Compatibility - 12.0.2000.8
   Dec 7 2023 09:43:06
   Copyright (c) Amazon Web Services
   PostgreSQL 15.5 on x86_64-pc-linux-gnu (Babelfish 3.4.0)
   
   (1 rows affected)
   ```

以顯示 Babelfish 和 Microsoft SQL Server 之間的一個小差異為例，您可以執行以下查詢。在 Babelfish 上，查詢會傳回 `1`，而在 Microsoft SQL Server 上，查詢會傳回 `NULL`。

```
SELECT CAST(serverproperty('babelfish') AS VARCHAR) AS runs_on_babelfish
```

您也可以使用 PostgreSQL 連接埠來取得版本資訊，如以下程序所示。

**使用 PostgreSQL 連接埠查詢版本資訊**

1. 使用 `psql` 或 `pgAdmin` 連線至 Babelfish 資料庫叢集的端點。

   ```
   psql host=bfish_db.cluster-123456789012.aws-region.rds.amazonaws.com
        port=5432 dbname=babelfish_db user=sa
   ```

1. 開啟 `psql` 的擴充功能 (`\x`)，增加輸出的可讀性。

   ```
   babelfish_db=> \x
   babelfish_db=> SELECT
   babelfish_db=> aurora_version() AS aurora_version,
   babelfish_db=> version() AS postgresql_version,
   babelfish_db=> sys.version() AS Babelfish_compatibility,
   babelfish_db=> sys.SERVERPROPERTY('BabelfishVersion') AS Babelfish_Version;
   ```

   此查詢會傳回類似以下的輸出：

   ```
   -[ RECORD 1 ]-----------+-----------------------------------------------------------------------------------------------
   aurora_version          | 15.5.0
   postgresql_version      | PostgreSQL 15.5 on x86_64-pc-linux-gnu, compiled by x86_64-pc-linux-gnu-gcc (GCC) 9.5.0, 64-bit
   babelfish_compatibility | Babelfish for Aurora Postgres with SQL Server Compatibility - 12.0.2000.8                     +
                           | Dec 7 2023 09:43:06                                                                          +
                           | Copyright (c) Amazon Web Services                                                             +
                           | PostgreSQL 15.5 on x86_64-pc-linux-gnu (Babelfish 3.4.0)
   babelfish_version       | 3.4.0
   ```

# 將 Babelfish 叢集升級至新版本
<a name="babelfish-information-upgrading"></a>

新版的 Babelfish 可與 13.4 版後的部份新 Aurora PostgreSQL 資料庫引擎版本搭配使用。Babelfish 的每個新版本都有自己的版本編號。與 Aurora PostgreSQL 一樣，Babelfish 會針對版本使用 *major*.*minor*.*patch* 命名方式。例如，第一個 Babelfish 版本 (Babelfish 1.0.0 版) 可用作 Aurora PostgreSQL 13.4.0 的一部分。

Babelfish 不需要個別的安裝程序。如[建立 Babelfish for Aurora PostgreSQL DB 叢集](babelfish-create.md)中所述，**Turn on Babelfish** (開啟 Babelfish) 是您在建立 Aurora PostgreSQL 資料庫叢集時選擇的一個選項。

同樣地，您無法獨立於支援的 Aurora 資料庫叢集升級 Babelfish。若要將現有的 Babelfish for Aurora PostgreSQL 資料庫叢集升級至新的 Babelfish 版本，請將 Aurora PostgreSQL 資料庫叢集升級至支援您要使用之 Babelfish 版本的新版本。升級所遵循的程序取決於支援 Babelfish 部署的 Aurora PostgreSQL 版本，如下所示。

**主要版本升級**  
您必須將下列 Aurora PostgreSQL 版本升級至 Aurora PostgreSQL 14.6 和更高版本，才能升級至 Aurora PostgreSQL 15.2 版。  
+ Aurora PostgreSQL 13.8 和所有更新的版本
+ Aurora PostgreSQL 13.7.1 和所有更新的次要版本
+ Aurora PostgreSQL 13.6.4 和所有更新的次要版本
您可以將 Aurora PostgreSQL 14.6 和更高版本升級至 Aurora PostgreSQL 15.2 和更高版本。  
將 Aurora PostgreSQL 資料庫叢集升級至新的主要版本，涉及數個初步任務。如需更多詳細資訊，請參閱 [執行主要版本升級](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md)。若要成功升級 Babelfish for Aurora PostgreSQL 資料庫叢集，您需要為新的 Aurora PostgreSQL 版本建立自訂資料庫叢集參數群組。這個新參數群組必須包含與您要升級之叢集相同的 Babelfish 參數設定。如需主要版本升級來源和目標的詳細資訊和資料表，請參閱 [將 Babelfish 升級至新的主要版本](babelfish-information-upgrading-major.md)。

**次要版本升級和修補程式**  
次要版本和修補程式不需要建立新的資料庫叢集參數群組，即可進行升級。次要版本和修補程式可以使用次要版本升級程序，無論是自動套用還是手動套用。如需版本來源和目標的詳細資訊和資料表，請參閱 [將 Babelfish 升級至新的次要版本](babelfish-information-upgrading-minor.md)。

**注意**  
在執行主要或次要升級之前，請將所有擱置中維護任務套用至 Babelfish for Aurora PostgreSQL 叢集。

**Topics**
+ [將 Babelfish 升級至新的次要版本](babelfish-information-upgrading-minor.md)
+ [將 Babelfish 升級至新的主要版本](babelfish-information-upgrading-major.md)

# 將 Babelfish 升級至新的次要版本
<a name="babelfish-information-upgrading-minor"></a>

次要版本更新旨在維持回溯相容性。不過，在某些情況下，重要的安全修正或重要的錯誤修正可能不具備完全回溯相容性。*修補程式*版本中包含其發行後次要版本的重要修正。例如，第一個發行的 Aurora PostgreSQL 13.4 的版本標籤為 Aurora PostgreSQL 13.4.0。至今已發行該次要版本的數個修補程式，包括 Aurora PostgreSQL 13.4.1、13.4.2 和 13.4.4。您可以在該版本的 Aurora PostgreSQL 版本備註頂端的 **Patch releases** (修補程式版本清單) 中找到適用於每個 Aurora PostgreSQL 版本的修補程式。如需範例，請參閱《Aurora PostgreSQL 版本備註》**中的 [PostgreSQL 14.3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#AuroraPostgreSQL.Updates.20180305.143X)。

如果您的 Aurora PostgreSQL 資料庫叢集設定為搭配 **Auto minor version upgrade** (自動次要版本升級) 選項，則您的 Babelfish for Aurora PostgreSQL 資料庫叢集會在叢集的維護時段期間自動升級。若要進一步了解自動次要版本升級 (AmVU) 以及如何使用它，請參閱 [Aurora 資料庫叢集的自動次要版本升級](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU)。如果您的叢集不是 AmVU，則您可以透過回應維護任務，或修改叢集以使用新版本，手動將 Babelfish for Aurora PostgreSQL 資料庫叢集升級至新的次要版本。

當您選擇要安裝的 Aurora PostgreSQL 版本，以及當您在 中檢視現有的 Aurora PostgreSQL 資料庫叢集時 AWS 管理主控台，版本只會顯示 *major*.*minor* 數字。例如，來自主控台針對具有 Aurora PostgreSQL 13.4 的現有 Babelfish for Aurora PostgreSQL 資料庫叢集的下圖建議將叢集升級至 13.7 版，這是 Aurora PostgreSQL 的新次要版本。

![\[次要版本升級適用於具有 Babelfish 的 Aurora PostgreSQL 資料庫叢集。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/apg-minor-upgrade-available-bfish-cluster.png)


若要取得完整的版本詳細資訊 (包括*修補程式*等級)，您可以使用 `aurora_version` Aurora PostgreSQL 函數查詢 Aurora PostgreSQL 資料庫叢集。如需詳細資訊，請參閱 [Aurora PostgreSQL 函數參考](Appendix.AuroraPostgreSQL.Functions.md) 中的 [aurora\$1version](aurora_version.md)。您可以在[To use the PostgreSQL port to query for version information](babelfish-information-identify-version.md#apg-version-info-psql)的[識別您的 Babelfish 版本](babelfish-information-identify-version.md)程序中尋找使用函數的範例。

下表顯示 Aurora PostgreSQL 和 Babelfish 版本，以及可支援次要版本升級程序的可用目標版本。


| 目前來源版本 | 最新升級目標 | 
| --- | --- | 
| Aurora PostgreSQL (Babelfish)  | Aurora PostgreSQL (Babelfish)  | 
|  17.4 (5.1)  |  17.5 (5.2)  | 
|  16.8 (4.5)  |  16.9 (4.6)  | 
|  16.6 (4.4.0)  |  16.9 (4.6)、16.8 (4.5.0)  | 
|  16.4 (4.3.0)  |  16.9 (4.6)、16.8 (4.5.0)、16.6 (4.4.0)  | 
|  16.3 (4.2.0)  |  16.9 (4.6)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)  | 
|  16.2 (4.1.0)  |  16.9 (4.6)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)  | 
|  16.1 (4.0.0)  |  16.9 (4.6)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0)  | 
|  15.12 (3.9.0)  |  15.13 (3.10)  | 
|  15.10 (3.8.0)  |  15.13 (3.10)、15.12 (3.9.0)  | 
|  15.8 (3.7.0)  |  15.13 (3.10)、15.12 (3.9.0)、15.10 (3.8.0)  | 
|  15.7 (3.6.0)  |  15.13 (3.10)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)  | 
|  15.6 (3.5.0)  |  15.13 (3.10)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)  | 
|  15.5 (3.4.0)  |  15.13 (3.10)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)、15.6 (3.5.0)  | 
|  15.4 (3.3.0)  |  15.13 (3.10)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)、15.6 (3.5.0)、15.5 (3.4.0)  | 
|  15.12 (3.9.0)、15.3 (3.2.0)  |  15.13 (3.10)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)、15.6 (3.5.0)、15.5 (3.4.0)、15.4 (3.3.0)  | 
|  15.2 (3.1.0)  |  15.13 (3.10)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)、15.6 (3.5.0)、15.5 (3.4.0)、15.4 (3.3.0)、15.3 (3.2.0)  | 
|  14.17 (2.12.0)  |  14.18 (2.13.0)  | 
|  14.15 (2.11.0)  |  14.18 (2.13.0)、14.17 (2.12.0)  | 
|  14.13 (2.10.0)  |  14.18 (2.13.0)、14.17 (2.12.0)、14.15 (2.11.0)  | 
|  14.12 (2.9.0)  |  14.18 (2.13.0)、14.17 (2.12.0)、14.15 (2.11.0)、14.13 (2.10.0)  | 
|  14.11 (2.8.0)  |  14.18 (2.13.0)、14.17 (2.12.0)、14.15 (2.11.0)、14.13 (2.10.0)、14.12 (2.9.0)  | 
|  14.10 (2.7.0)  | 14.18 (2.13.0)、14.17 (2.12.0)、14.15 (2.11.0)、14.13 (2.10.0)、14.12 (2.9.0)、14.11 (2.8.0) | 
|  14.9 (2.6.0)  |  14.18 (2.13.0)、14.17 (2.12.0)、14.15 (2.11.0)、14.13 (2.10.0)、14.12 (2.9.0)、14.11 (2.8.0)、14.10 (2.7.0)  | 
|  14.8 (2.5.0)  |  14.18 (2.13.0)、14.17 (2.12.0)、14.15 (2.11.0)、14.13 (2.10.0)、14.12 (2.9.0)、14.11 (2.8.0)、14.10 (2.7.0)、14.9 (2.6.0)  | 
|  14.7 (2.4.0)  |  14.18 (2.13.0)、14.17 (2.12.0)、14.15 (2.11.0)、14.13 (2.10.0)、14.12 (2.9.0)、14.11 (2.8.0)、14.10 (2.7.0)、14.9 (2.6.0)、14.8 (2.5.0)  | 
|  14.6 (2.3.0)  |  14.18 (2.13.0)、14.17 (2.12.0)、14.15 (2.11.0)、14.13 (2.10.0)、14.12 (2.9.0)、14.11 (2.8.0)、14.10 (2.7.0)、14.9 (2.6.0)、14.8 (2.5.0)、14.7 (2.4.0)  | 
|  14.5 (2.2.0)  |  14.18 (2.13.0)、14.17 (2.12.0)、14.15 (2.11.0)、14.13 (2.10.0)、14.12 (2.9.0)、14.11 (2.8.0)、14.10 (2.7.0)、14.9 (2.6.0)、14.8 (2.5.0)、14.7 (2.4.0)、14.6 (2.3.0)  | 
|  14.3 (2.1.0)  |  14.18 (2.13.0)、14.6 (2.3.0)  | 
|  13.8 (1.4.0)  |  13.9 (1.5.0)  | 
|  13.7 (1.3.0)  |  13.9 (1.5.0)、13.8 (1.4.0)  | 

# 將 Babelfish 升級至新的主要版本
<a name="babelfish-information-upgrading-major"></a>

對於主要版本升級，您必須先將 Babelfish for Aurora PostgreSQL 資料庫叢集升級至支援主要版本升級的版本。若要達成此目的，請將修補程式更新或次要版本升級套用至資料庫叢集。如需詳細資訊，請參閱 [將 Babelfish 升級至新的次要版本](babelfish-information-upgrading-minor.md)。

下表顯示可支援主要版本升級的 Aurora PostgreSQL 版本和 Babelfish 版本。


| 目前來源版本 | 最新升級目標 | 
| --- | --- | 
| Aurora PostgreSQL (Babelfish)  | Aurora PostgreSQL (Babelfish)  | 
|  16.9 (4.6.0)  |  17.5 (5.2.0)  | 
|  16.8 (4.5.0)  |  17.5 (5.2.0)、17.4 (5.1.0)  | 
|  16.6 (4.4.0)  |  17.5 (5.2.0)、17.4 (5.1.0)  | 
|  16.4 (4.3.0)  |  17.5 (5.2.0)、17.4 (5.1.0)  | 
|  16.3 (4.2.0)  |  17.5 (5.2.0)、17.4 (5.1.0)  | 
|  16.2 (4.1.0)  |  17.5 (5.2.0)、17.4 (5.1.0)  | 
|  16.1 (4.0.0)  |  17.5 (5.2.0)、17.4 (5.1.0)  | 
|  15.13 (3.10)  |  17.5 (5.2.0) 16.9 (4.6.0)  | 
|  15.12 (3.9.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)  | 
|  15.10 (3.8.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)  | 
|  15.8 (3.7.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)  | 
|  15.7 (3.6.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)  | 
|  15.6 (3.5.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0)  | 
|  15.5 (3.4.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0)、16.1 (4.0.0)  | 
|  15.4 (3.3.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0)、16.1 (4.0.0)  | 
|  15.3 (3.2.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0)、16.1 (4.0.0)  | 
|  15.2 (3.1.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0)、16.1 (4.0.0)  | 
|  14.18 (2.13.0)  |  17.5 (5.2.0) 16.9 (4.6.0) 15.13 (3.10.0)  | 
|  14.17 (2.12.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0) 15.13 (3.10.0)、15.12 (3.9.0)  | 
|  14.15 (2.11.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0) 15.13 (3.10.0)、15.12 (3.9.0)、15.10 (3.8.0)  | 
|  14.13 (2.10.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0) 15.13 (3.10.0)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)  | 
|  14.12 (2.9.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0) 15.13 (3.10.0)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)  | 
|  14.11 (2.8.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0) 15.13 (3.10.0)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)、15.6 (3.5.0)  | 
|  14.10 (2.7.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0)、16.1 (4.0.0) 15.13 (3.10.0)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)、15.6 (3.5.0)、15.5 (3.4.0)  | 
|  14.9 (2.6.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0)、16.1 (4.0.0) 15.13 (3.10.0)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)、15.6 (3.5.0)、15.5 (3.4.0)、15.4 (3.3.0)  | 
|  14.8 (2.5.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0)、16.1 (4.0.0) 15.13 (3.10.0)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)、15.6 (3.5.0)、15.5 (3.4.0)、15.4 (3.3.0)、15.3 (3.2.0)  | 
|  14.7 (2.4.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0)、16.1 (4.0.0) 15.13 (3.10.0)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)、15.6 (3.5.0)、15.5 (3.4.0)、15.4 (3.3.0)、15.3 (3.2.0)、15.2 (3.1.0)  | 
|  14.6 (2.3.0)  |  17.5 (5.2.0)、17.4 (5.1.0) 16.9 (4.6.0)、16.8 (4.5.0)、16.6 (4.4.0)、16.4 (4.3.0)、16.3 (4.2.0)、16.2 (4.1.0)、16.1 (4.0.0) 15.13 (3.10.0)、15.12 (3.9.0)、15.10 (3.8.0)、15.8 (3.7.0)、15.7 (3.6.0)、15.6 (3.5.0)、15.5 (3.4.0)、15.4 (3.3.0)、15.3 (3.2.0)、15.2 (3.1.0)  | 
|  13.9 (1.5.0)  |  14.6 (2.3.0)  | 
|  13.8 (1.4.0)  | 14.6 (2.3.0) | 
|  13.7 (1.3.0)  |  14.6 (2.3.0)  | 

## 將 Babelfish 升級至新的主要版本之前
<a name="babelfish-information-upgrading-preliminary"></a>

升級可能涉及短暫的中斷。因此，建議您在維護時段或其他低用量期間執行或安排升級。

**執行主要版本升級之前**

 

1. 使用[識別您的 Babelfish 版本](babelfish-information-identify-version.md)中概述的命令，識別現有 Aurora PostgreSQL 資料庫叢集的 Babelfish 版本。Aurora PostgreSQL 版本和 Babelfish 版本資訊是由 PostgreSQL 處理，因此請遵循[To use the PostgreSQL port to query for version information](babelfish-information-identify-version.md#apg-version-info-psql)程序中的詳細步驟來取得詳細資訊。

1. 驗證您的版本是否支援主要版本升級。如需支援主要版本升級功能的版本清單，請參閱 [將 Babelfish 升級至新的次要版本](babelfish-information-upgrading-minor.md) 並執行必要的升級前任務。

    例如，如果您的 Babelfish 版本是在 Aurora PostgreSQL 13.5 資料庫叢集上執行，而您想要升級至 Aurora PostgreSQL 15.2，請先套用所有次要版本和修補程式，將您的叢集升級至 Aurora PostgreSQL 14.6 或更高版本。當您的叢集為 14.6 或更高版本時，請繼續進行主要版本升級程序。

1. 建立目前 Babelfish 資料庫叢集的手動快照做為備份。備份可讓您將叢集還原至其 Aurora PostgreSQL 版本 (Babelfish 版本)，並將所有資料還原至升級前的狀態。如需詳細資訊，請參閱[建立資料庫叢集快照](USER_CreateSnapshotCluster.md)。如果您決定將此叢集還原至升級前的狀態，請務必讓現有的自訂資料庫叢集參數群組可再次使用。如需詳細資訊，請參閱[從資料庫叢集快照還原](aurora-restore-snapshot.md)及[參數群組考量](aurora-restore-snapshot.md#aurora-restore-snapshot.Parameters)。

1. 針對目標 PostgreSQL 資料庫版本準備自訂資料庫叢集參數群組。從目前 Babelfish for Aurora PostgreSQL 資料庫叢集複製 Babelfish 參數的設定。若要尋找所有 Babelfish 參數的清單，請參閱 [Babelfish 的資料庫叢集參數群組設定](babelfish-configuration.md)。對於主要版本升級，下列參數需要與來源資料庫叢集相同的設定。若要成功升級，所有設定都必須相同。
   + rds.babelfish\$1status
   + babelfishpg\$1tds.tds\$1default\$1numeric\$1precision
   + babelfishpg\$1tds.tds\$1default\$1numeric\$1scale
   + babelfishpg\$1tsql.database\$1name
   + babelfishpg\$1tsql.default\$1locale
   + babelfishpg\$1tsql.migration\$1mode
   + babelfishpg\$1tsql.server\$1collation\$1name
**警告**  
如果新 Aurora PostgreSQL 版本的自訂資料庫叢集參數群組中的 Babelfish 參數設定與您要升級之叢集的參數值不符，則 `ModifyDBCluster` 操作會失敗。`InvalidParameterCombination` 錯誤訊息會顯示在 或來自 `modify-db-cluster` AWS CLI 命令的輸出 AWS 管理主控台 中。

1. 使用 AWS 管理主控台 或 AWS CLI 建立自訂資料庫叢集參數群組。針對您要用於升級的 Aurora PostgreSQL 版本選擇適用的 Aurora PostgreSQL 系列。
**提示**  
參數群組是在 AWS 區域 層級管理。使用 時 AWS CLI，您可以使用預設區域來設定 ，而不是在 命令`--region`中指定 。若要進一步了解如何使用 AWS CLI，請參閱*AWS Command Line Interface 《 使用者指南*》中的[快速設定](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html)。

## 執行主要版本升級
<a name="babelfish-performing-major-version-upgrade"></a>

1. 將 Aurora PostgreSQL 資料庫叢集升級至新的主要版本。如需詳細資訊，請參閱[將 Aurora PostgreSQL 引擎升級為新的主要版本](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.Upgrading.Manual)。

1. 重新啟動叢集的寫入器執行個體，以便參數設定可以生效。

## 升級至新的主要版本之後
<a name="babelfish-information-upgrading-post-upgrade"></a>

將主要版本升級至新的 Aurora PostgreSQL 版本之後，具有 `IDENTITY` 資料欄的資料表中的 `IDENTITY` 值可能會比升級前的值大 (\$132)。結果是，當下一資料列插入到這樣的資料表時，產生的身分資料欄值會跳至 \$132 數字，並從那裡開始序列。這種情況不會對 Babelfish 資料庫叢集的函數產生負面影響。不過，如果需要，您可以根據資料欄的最大值重設序列物件。若要這樣做，請使用 `sqlcmd` 或另一個 SQL Server 用戶端連線至 Babelfish 寫入器執行個體上的 T-SQL 連接埠。如需詳細資訊，請參閱[使用 SQL Server 用戶端來連線至資料庫叢集](babelfish-connect-sqlserver.md)。

```
sqlcmd -S bfish-db.cluster-123456789012.aws-region.rds.amazonaws.com,1433 -U
     sa -P ******** -d dbname
```

連線後，請使用下列 SQL 命令來產生陳述式，您可以將其用來植入相關聯的序列物件。這個 SQL 命令同時適用於單一資料庫和多資料庫 Babelfish 組態。如需這兩個部署模型的詳細資訊，請參閱 [搭配單一資料庫或多個資料庫來使用 Babelfish](babelfish-architecture.md#babelfish-single_vs_multi_db)。

```
DECLARE @schema_prefix NVARCHAR(200) = ''
IF current_setting('babelfishpg_tsql.migration_mode') = 'multi-db'
    SET @schema_prefix = db_name() + '_'
SELECT 'SELECT setval(pg_get_serial_sequence(''' + @schema_prefix + schema_name(tables.schema_id)
    + '.' + tables.name + ''', ''' + columns.name + '''),(select max(' + columns.name + ')
    FROM ' + schema_name(tables.schema_id) + '.' + tables.name + '));
    'FROM sys.tables tables JOIN sys.columns
    columns ON tables.object_id = columns.object_id
    WHERE columns.is_identity = 1
GO
```

查詢會產生一系列 SELECT 陳述式，然後您可以執行這些陳述式來重設最大 IDENTITY 值並關閉任何間隙。以下顯示使用範例 SQL Server 資料庫 (Northwind)，在 Babelfish 叢集上執行時的輸出。

```
--------------------------------------------------------
SELECT setval(pg_get_serial_sequence('northwind_dbo.categories', 'categoryid'),(select max(categoryid)
    FROM dbo.categories));

SELECT setval(pg_get_serial_sequence('northwind_dbo.orders', 'orderid'),(select max(orderid)
    FROM dbo.orders));
                                                                                                                        
SELECT setval(pg_get_serial_sequence('northwind_dbo.products', 'productid'),(select max(productid)
    FROM dbo.products));
                                                                                                                        
SELECT setval(pg_get_serial_sequence('northwind_dbo.shippers', 'shipperid'),(select max(shipperid)
    FROM dbo.shippers));
                                                                                                                        
SELECT setval(pg_get_serial_sequence('northwind_dbo.suppliers', 'supplierid'),(select max(supplierid)
    FROM dbo.suppliers));
                                                                                                                        
(5 rows affected)
```

逐個執行陳述式以重設序列值。

## 範例：將 Babelfish 資料庫叢集升級至主要版本
<a name="babelfish-information-upgrading-example"></a>

 在此範例中，您可以找到一系列 AWS CLI 命令，說明如何將執行 Babelfish 1.2.2 版的 Aurora PostgreSQL 13.6.4 資料庫叢集升級至 Aurora PostgreSQL 14.6。首先，針對 Aurora PostgreSQL 14 建立自訂資料庫叢集參數群組。接著，修改參數值以符合 Aurora PostgreSQL 第 13 版來源的參數值。最後，修改來源叢集來執行升級。如需詳細資訊，請參閱[Babelfish 的資料庫叢集參數群組設定](babelfish-configuration.md)。在該主題中，您也可以找到使用 AWS 管理主控台 執行升級的相關資訊。

使用 [create-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster-parameter-group.html) CLI 命令，針對新版本建立資料庫叢集參數群組。

針對 Linux、macOS 或 Unix：

```
aws rds create-db-cluster-parameter-group \
    --db-cluster-parameter-group-name docs-lab-babelfish-apg-14 \
    --db-parameter-group-family aurora-postgresql14 \
    --description 'New custom parameter group for upgrade to new major version' \
    --region us-west-1
```

當您發出此命令時，系統會在 AWS 區域中建立自訂資料庫叢集參數群組。您會看到類似下列的輸出。

```
{
    "DBClusterParameterGroup": {
        "DBClusterParameterGroupName": "docs-lab-babelfish-apg-14",
        "DBParameterGroupFamily": "aurora-postgresql14",
        "Description": "New custom parameter group for upgrade to new major version",
        "DBClusterParameterGroupArn": "arn:aws:rds:us-west-1:111122223333:cluster-pg:docs-lab-babelfish-apg-14"
    }
}
```

如需詳細資訊，請參閱[在 Amazon Aurora 中建立資料庫叢集參數群組](USER_WorkingWithParamGroups.CreatingCluster.md)。

使用 [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html) CLI 命令來修改設定，使其與來源叢集相符。

在 Windows 中：

```
aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name docs-lab-babelfish-apg-14 ^
  --parameters "ParameterName=rds.babelfish_status,ParameterValue=on,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tds.tds_default_numeric_precision,ParameterValue=38,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tds.tds_default_numeric_scale,ParameterValue=8,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tsql.database_name,ParameterValue=babelfish_db,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tsql.default_locale,ParameterValue=en-US,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tsql.migration_mode,ParameterValue=single-db,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tsql.server_collation_name,ParameterValue=sql_latin1_general_cp1_ci_as,ApplyMethod=pending-reboot"
```

回應看起來類似以下的內容。

```
{
    "DBClusterParameterGroupName": "docs-lab-babelfish-apg-14"
}
```

使用 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) CLI 命令來修改叢集，以使用新版本和新的自訂資料庫叢集參數群組。您也會指定 `--allow-major-version-upgrade` 引數，如下列範例所示。

```
aws rds modify-db-cluster \
--db-cluster-identifier docs-lab-bfish-apg-14 \
--engine-version 14.6 \
--db-cluster-parameter-group-name docs-lab-babelfish-apg-14 \
--allow-major-version-upgrade \
--region us-west-1 \
--apply-immediately
```

使用 [reboot-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/reboot-db-instance.html) CLI 命令，重新啟動叢集的寫入器執行個體，以便參數設定可以生效。

```
aws rds reboot-db-instance \
--db-instance-identifier docs-lab-bfish-apg-14-instance-1\
--region us-west-1
```

# 使用 Babelfish 產品版本參數
<a name="babelfish-guc-version"></a>

 Babelfish 2.4.0 和 3.1.0 版有新的 Grand Unified Configuration (GUC) 參數，稱為 `babelfishpg_tds.product_version`。此參數可讓您將 SQL Server 產品版本號碼設定為 Babelfish 的輸出。

該參數是具有 4 個部分的版本 ID 字串，每個部分都應該用「.」分隔。

語法  

```
Major.Minor.Build.Revision
```
+ 主要版本：介於 11 到 16 之間的數字。
+ 次要版本：介於 0 到 255 之間的數字。
+ 建置版本：介於 0 到 65535 之間的數字。
+ 修訂版本：0 和任何正數。

## 設定 Babelfish 產品版本參數
<a name="babelfish-guc-version-setvalues"></a>

您必須使用叢集參數群組來設定主控台的 babelfishpg\$1tds.product\$1version 參數。如需如何修改資料庫叢集參數的詳細資訊，請參閱[在 Amazon Aurora 中修改資料庫叢集參數群組中的參數](USER_WorkingWithParamGroups.ModifyingCluster.md)。

若將產品版本參數設為無效值，變更就不會生效。雖然主控台可能會顯示新值，但參數會保留先前的值。請檢查引擎日誌檔案，取得錯誤訊息的詳細資訊。

對於 Linux、macOS 或 Unix：

```
aws rds modify-db-cluster-parameter-group \
--db-cluster-parameter-group-name mydbparametergroup \
--parameters "ParameterName=babelfishpg_tds.product_version,ParameterValue=15.2.4000.1,ApplyMethod=immediate"
```

在 Windows 中：

```
aws rds modify-db-cluster-parameter-group ^
--db-cluster-parameter-group-name mydbparametergroup ^
--parameters "ParameterName=babelfishpg_tds.product_version,ParameterValue=15.2.4000.1,ApplyMethod=immediate"
```

## 受影響的查詢和參數
<a name="babelfish-guc-version-affects"></a>


|  查詢/參數  |  結果  |  生效時間  | 
| --- | --- | --- | 
|   選取 @@版本   |   回傳使用者定義的 SQL Server 版本 (babelfishpg\$1tsql.version 值 = 預設)   |   立即   | 
|   選取 SERVERPROPERTY (「ProductVersion」)   |   回傳使用者定義的 SQL Server 版本   |   立即   | 
|   選取 SERVERPROPERTY (「ProductMajorVersion」)   |   回傳使用者定義的 SQL Server 版本的主要版本   |   立即   | 
|   PRELOGIN 回應訊息中的 VERSION 字符   |   伺服器以使用者定義的 SQL Server 版本回傳 PRELOGIN 訊息   |   當使用者建立新的工作階段時生效   | 
|   使用 JDBC 時，LoginAck 中的 SQLServerVersion   |   DatabaseMetaData.getDatabaseProductVersion() 回傳使用者定義的 SQL Server 版本   |   當使用者建立新的工作階段時生效   | 

## 包含 babelfishpg\$1tsql.version 參數的界面
<a name="babelfish-guc-version-tsql"></a>

您可以使用參數 babelfishpg\$1tsql.version 和 babelfishpg\$1tds.product\$1version，來設定 @@版本的輸出。下列範例顯示這兩個參數的界面。
+ 當 babelfishpg\$1tsql.version 參數為「預設」，而 babelfishpg\$1tds.product\$1version 為 15.0.2000.8。
  +  @@版本的輸出 – 15.0.2000.8。
+ 當 babelfishpg\$1tsql.version 參數設為 13.0.2000.8，且 babelfishpg\$1tds.product\$1version 參數為 15.0.2000.8。
  + @@版本的輸出 – 13.0.2000.8。