

# Babelfish を新しいメジャーバージョンにアップグレードする
<a name="babelfish-information-upgrading-major"></a>

メジャーバージョンアップグレードの場合、まず、Babelfish for Aurora PostgreSQL DB クラスターをメジャーバージョンアップグレードをサポートするバージョンにアップグレードする必要があります。これを実現するには、DB クラスターにパッチアップデートまたはマイナーバージョンアップグレードを適用します。詳細については、「[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 DB クラスターの 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 DB クラスターで実行されていて、Aurora PostgreSQL 15.2 にアップグレードする場合は、まず、すべてのマイナーリリースとパッチを適用して、クラスターを Aurora PostgreSQL 14.6 以降にアップグレードします。クラスターのバージョンが 14.6 以降になったら、メジャーバージョンアップグレードプロセスを続行します。

1. バックアップとして、現在の Babelfish DB クラスターの手動スナップショットを作成します。バックアップにより、クラスターを Aurora PostgreSQL バージョン、Babelfish バージョンに復元し、すべてのデータをアップグレード前の状態に復元できます。詳細については、「[DB クラスタースナップショットの作成](USER_CreateSnapshotCluster.md)」を参照してください。このクラスターをアップグレード前の状態に復元する場合は、既存のカスタム DB クラスターパラメータグループを再び使用できるように残しておいてください。詳細については、「[DB クラスタースナップショットからの復元](aurora-restore-snapshot.md)」および「[パラメータグループに関する考慮事項](aurora-restore-snapshot.md#aurora-restore-snapshot.Parameters)」を参照してください。

1. ターゲット Aurora PostgreSQL DB バージョン用にカスタム DB クラスターのパラメータグループを準備します。現在の Babelfish for Aurora PostgreSQL DB クラスターから Babelfish のパラメータの設定を複製します。Babelfish のすべてのパラメータのリストについては、「[Babelfish の DB クラスターパラメータグループ設定](babelfish-configuration.md)」を参照してください。メジャーバージョンアップグレードの場合、次のパラメータにはソース DB クラスターと同じ設定が必要です。アップグレードを成功させるには、すべての設定が同じである必要があります。
   + 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 バージョンのカスタム DB クラスターパラメータグループの Babelfish パラメータの設定が、アップグレードするクラスターのパラメータ値と一致しない場合、`ModifyDBCluster` 操作は失敗します。`InvalidParameterCombination` エラーメッセージが AWS マネジメントコンソール に、または `modify-db-cluster` AWS CLI コマンドの出力に表示されます。

1. AWS マネジメントコンソール または AWS CLI コマンドを使用して、カスタム DB クラスターパラメータグループを作成します。アップグレードする 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 DB クラスターを新しいメジャーバージョンにアップグレードします。詳細については、「[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) 場合があります。その結果、このようなテーブルに次の行が挿入されると、生成された ID 列の値が \$132 の数値にジャンプし、そこからシーケンスを開始します。この条件が Babelfish DB クラスターの機能に悪影響を及ぼすことはありません。ただし、必要に応じて、列の最大値に基づいてシーケンスオブジェクトをリセットできます。そのためには、`sqlcmd` または別の SQL Server クライアントを使用して、Babelfish ライターインスタンスの T-SQL ポートに接続します。詳細については、「[SQL Server クライアントを使用した DB クラスターへの接続](babelfish-connect-sqlserver.md)」を参照してください。

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

接続したら、次の SQL コマンドを使用して、関連するシーケンスオブジェクトのシードに使用できるステートメントを生成します。この SQL コマンドは、単一データベースと複数データベースの両方の Babelfish 構成で機能します。これら 2 つのデプロイモデルの詳細については、「[1 つのデータベースまたは複数のデータベースでの 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 の最大値をリセットし、ギャップを埋めることができます。以下は、Babelfish クラスターで実行されているサンプルの SQL Server データベース Northwind を使用した場合の出力を示しています。

```
--------------------------------------------------------
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)
```

ステートメントを 1 つずつ実行して、シーケンス値をリセットします。

## 例: Babelfish DB クラスターをメジャーリリースにアップグレードする
<a name="babelfish-information-upgrading-example"></a>

 この例では、Babelfish バージョン 1.2.2 を実行している Aurora PostgreSQL 13.6.4 DB クラスターを Aurora PostgreSQL 14.6 にアップグレードする方法を説明する一連の AWS CLI コマンドを見つけることができます。まず、Aurora PostgreSQL 14 用のカスタム DB クラスターパラメータグループを作成します。次に、Aurora PostgreSQL バージョン 13 のソースの値と一致するようにパラメータ値を変更します。最後に、ソースクラスターを変更して、アップグレードを実行します。詳細については、「[Babelfish の DB クラスターパラメータグループ設定](babelfish-configuration.md)」を参照してください。このトピックでは、AWS マネジメントコンソール を使用してアップグレードを実行する方法についても説明しています。

[create-db-cluster-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster-parameter-group.html) CLI コマンドを使用して、新しいバージョン用の DB クラスターパラメータグループを作成します。

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
```

このコマンドを発行すると、カスタム DB クラスターパラメータグループが 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 での DB クラスターパラメータグループの作成](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 コマンドを使用して、新しいバージョンと新しいカスタム DB クラスターパラメータグループを使用するようにクラスターを変更します。また、次のサンプルに示されているように、`--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
```