

# Amazon RDS Custom for SQL Server の DB インスタンスのアップグレード
<a name="custom-upgrading-sqlserver"></a>

Amazon RDS Custom for SQL Server の DB インスタンスをアップグレードするには、新しい DB エンジンバージョンを使用するようにインスタンスを変更します。DB インスタンスのアップグレードに関する一般的な情報については、「[DB インスタンスのエンジンバージョンのアップグレード](USER_UpgradeDBInstance.Upgrading.md)」を参照してください。

**Topics**
+ [RDS Custom for SQL Server のアップグレードの概要](#custom-upgrading-sqlserver.Overview)
+ [メジャーエンジンバージョンとマイナーエンジンバージョンのアップグレード](#custom-upgrading-sqlserver.Upgrade)
+ [データベース互換性レベル](#custom-upgrading-sqlserver.Major.Compatibility)

## RDS Custom for SQL Server のアップグレードの概要
<a name="custom-upgrading-sqlserver.Overview"></a>

Amazon RDS Custom for SQL Server は、メジャーおよびマイナーバージョンのアップグレードをサポートします。マイナーバージョンのアップグレードには、セキュリティパッチ、バグ修正、エンジンの改善が含まれます。Microsoft は、これらの更新を累積更新 (CU) としてリリースします。メジャーバージョンのアップグレードでは、SQL Server 2019 から 2022 へのアップグレードなど、バージョン間での新機能やエンジンの変更を導入します。両方のアップグレードは、すぐに適用することも、スケジュールされたメンテナンスウィンドウ中に適用することもできます。下位互換性の潜在的な問題を防ぐために、アップグレード前に非本番環境でアプリケーションをテストすることをお勧めします。

RDS Custom for SQL Server では、RDS が提供するエンジンバージョン (RPEV) またはカスタムエンジンバージョン (CEV) をアップグレードできます。
+ RDS が提供するエンジンバージョン (RPEV) には、オペレーティングシステム (OS) の最新のパッチと SQL Server の累積更新 (CU) が含まれています。
+ カスタムエンジンバージョン (CEV) の場合は、2 ステップのプロセスに従う必要があります。まず、ターゲットの SQL Server バージョンで新しい CEV を作成します。「[RDS Custom for SQL Server の CEV を作成する準備](custom-cev-sqlserver.preparing.md)」を参照してください。このターゲットバージョンは、現在のバージョンと同等かそれ以降である必要があります。新しい CEV を作成したら、この新しいバージョンを使用するようにデータベースインスタンスを変更します。詳細については、「[Performing a minor version upgrade for Amazon RDS Custom for SQL Server CEV with Multi-AZ](https://aws.amazon.com/blogs/database/performing-a-minor-version-upgrade-for-amazon-rds-custom-for-sql-server-cev-with-multi-az/)」を参照してください。

  実行中の RDS Custom インスタンスに SQL Server 累積更新をインプレースで適用しないでください。特定の SQL Server バージョン (SQL Server 2022 CU16 など) で CEV を作成し、インスタンスに直接新しい累積更新を適用すると、サポートペリメーターから外れ、エラー `SP-S3006` が報告されます。CEV を使用して既存の SQL Server インスタンスにパッチを適用するには、必要な累積更新を含む新しい CEV を作成してから、既存のインスタンスを変更して新しい CEV に切り替えます。

マルチ AZ 配置で RDS Custom for SQL Server の DB インスタンスをアップグレードすると、RDS Custom for SQL Server はインスタンスのローリングアップグレードを実行します。このアプローチでは、一度に 1 つのインスタンスをアップグレードすることでダウンタイムを最小限に抑えます。RDS は、ローリングアップグレードを実行するために以下のアクションを実行します。

1. スタンバイ DB インスタンスをアップグレードします。

1. アップグレードされたスタンバイ DB インスタンスにフェイルオーバーし、新しいプライマリ DB インスタンスにします。

1. 新しいスタンバイ DB インスタンスをアップグレードします。

マルチ AZ 配置の DB インスタンスのダウンタイムは、フェイルオーバーにかかる時間です。

RDS Custom for SQL Server の DB インスタンスのアップグレードには、以下の制限が適用されます。
+ Custom DB オプショングループおよびパラメータグループはサポートされていません。
+ RDS Custom for SQL Server DB インスタンスにアタッチした追加のストレージボリュームは、アップグレード後はアタッチされません。
+ CEV では、SQL Server 累積更新のインプレース適用はサポートされておらず、インスタンスがサポートペリメーターから外れます。

## メジャーエンジンバージョンとマイナーエンジンバージョンのアップグレード
<a name="custom-upgrading-sqlserver.Upgrade"></a>

メジャーエンジンバージョンとマイナーエンジンバージョンの両方のアップグレードは元に戻すことができないため、必ずより新しいバージョンにアップグレードする必要があります。使用可能なターゲットバージョンを特定するには、AWS マネジメントコンソールを使用し、DB インスタンスを変更するときに使用可能なバージョンから選択します。または、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) を使用するか、RDS API コマンド [DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html) を使用します。

Linux、macOS、Unix の場合:

```
aws rds describe-db-engine-versions \
    --engine custom-sqlserver-se \
    --engine-version 15.00.4322.2.v1 \
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" \
    --output table
```

Windows の場合:

```
aws rds describe-db-engine-versions ^
    --engine custom-sqlserver-se ^
    --engine-version 15.00.4322.2.v1 ^
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^
    --output table
```

出力には、使用可能なターゲットエンジンのバージョンが表示されます。

```
--------------------------
|DescribeDBEngineVersions|
+------------------------+
|      EngineVersion     |
+------------------------+
|  15.00.4410.1.v1       |
|  15.00.4415.2.v1       |
|  15.00.4430.1.v1       |
|  16.00.4165.4.v1       |
|  16.00.4175.1.v1       |
|  16.00.4185.3.v1       |
+------------------------+
```

ターゲットバージョンを特定したら、AWS マネジメントコンソールを使用し、「[RDS Custom for SQL Server DB インスタンスの変更](custom-managing.modify-sqlserver.md)」の手順に従います。または、CLI コマンド [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) を使用するか、RDS API コマンド [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) を使用します。

Linux、macOS、Unix の場合:

```
aws rds modify-db-instance \
    --db-instance-identifier DB_INSTANCE_IDENTIFIER \
    --engine-version ENGINE_VERSION \
    --allow-major-version-upgrade \
    --region Region \
    --no-apply-immediately
```

Windows の場合:

```
aws rds modify-db-instance ^
    --db-instance-identifier DB_INSTANCE_IDENTIFIER ^
    --engine-version ENGINE_VERSION ^
    --allow-major-version-upgrade ^
    --region Region ^
    --no-apply-immediately
```

**注記**  
メジャーバージョンのアップグレードを実行するには、`--allow-major-version-upgrade` パラメータを含める必要があります。

## データベース互換性レベル
<a name="custom-upgrading-sqlserver.Major.Compatibility"></a>

Microsoft SQL Server データベース互換性レベルを使用して、いくつかのデータベースの動作を調整し、以前のバージョンの SQL Server を模倣することができます。詳細については、Microsoft ドキュメントの「[互換性レベル](https://msdn.microsoft.com/en-us/library/bb510680.aspx)」を参照してください。

DB インスタンスをアップグレードしても、既存のすべてのデータベースは元の互換性レベルのままとなります。例えば、SQL Server 2019 から SQL Server 2022 にアップグレードした場合、既存のすべてのデータベースの互換性レベルは 150 となります。アップグレード後に作成した新しいデータベースは互換性レベル 160 となります。

ALTER DATABASE コマンドを使用して、データベースの互換性レベルを変更できます。例えば、`customeracct` という名前のデータベースが、SQL Server 2022 との互換性を持つように変更するには、次のコマンドを発行します。

```
1. ALTER DATABASE customeracct SET COMPATIBILITY_LEVEL = 160
```