Amazon RDS Custom for SQL Server の DB インスタンスのアップグレード
Amazon RDS Custom for SQL Server の DB インスタンスをアップグレードするには、新しい DB エンジンバージョンを使用するようにインスタンスを変更します。DB インスタンスのアップグレードに関する一般的な情報については、「DB インスタンスのエンジンバージョンのアップグレード」を参照してください。
RDS Custom for SQL Server のアップグレードの概要
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 を作成する準備」を参照してください。このターゲットバージョンは、現在のバージョンと同等かそれ以降である必要があります。新しい CEV を作成したら、この新しいバージョンを使用するようにデータベースインスタンスを変更します。詳細については、「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 は、ローリングアップグレードを実行するために以下のアクションを実行します。
-
スタンバイ DB インスタンスをアップグレードします。
-
アップグレードされたスタンバイ DB インスタンスにフェイルオーバーし、新しいプライマリ DB インスタンスにします。
-
新しいスタンバイ DB インスタンスをアップグレードします。
マルチ AZ 配置の DB インスタンスのダウンタイムは、フェイルオーバーにかかる時間です。
RDS Custom for SQL Server の DB インスタンスのアップグレードには、以下の制限が適用されます。
-
Custom DB オプショングループおよびパラメータグループはサポートされていません。
-
RDS Custom for SQL Server DB インスタンスにアタッチした追加のストレージボリュームは、アップグレード後はアタッチされません。
-
CEV では、SQL Server 累積更新のインプレース適用はサポートされておらず、インスタンスがサポートペリメーターから外れます。
メジャーエンジンバージョンとマイナーエンジンバージョンのアップグレード
メジャーエンジンバージョンとマイナーエンジンバージョンの両方のアップグレードは元に戻すことができないため、必ずより新しいバージョンにアップグレードする必要があります。使用可能なターゲットバージョンを特定するには、AWS Management Consoleを使用し、DB インスタンスを変更するときに使用可能なバージョンから選択します。または、CLI コマンド describe-db-engine-versions
を使用するか、RDS API コマンド DescribeDBEngineVersions を使用します。
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 Management Consoleを使用し、「RDS Custom for SQL Server DB インスタンスの変更」の手順に従います。または、CLI コマンド modify-db-instance
を使用するか、RDS API コマンド ModifyDBInstance を使用します。
Linux、macOS、Unix の場合:
aws rds modify-db-instance \ --db-instance-identifier
DB_INSTANCE_IDENTIFIER
\ --engine-versionENGINE_VERSION
\ --allow-major-version-upgrade \ --regionRegion
\ --no-apply-immediately
Windows の場合:
aws rds modify-db-instance ^ --db-instance-identifier
DB_INSTANCE_IDENTIFIER
^ --engine-versionENGINE_VERSION
^ --allow-major-version-upgrade ^ --regionRegion
^ --no-apply-immediately
注記
メジャーバージョンのアップグレードを実行するには、--allow-major-version-upgrade
パラメータを含める必要があります。
データベース互換性レベル
Microsoft SQL Server データベース互換性レベルを使用して、いくつかのデータベースの動作を調整し、以前のバージョンの SQL Server を模倣することができます。詳細については、Microsoft ドキュメントの「互換性レベル
DB インスタンスをアップグレードしても、既存のすべてのデータベースは元の互換性レベルのままとなります。例えば、SQL Server 2019 から SQL Server 2022 にアップグレードした場合、既存のすべてのデータベースの互換性レベルは 150 となります。アップグレード後に作成した新しいデータベースは互換性レベル 160 となります。
ALTER DATABASE コマンドを使用して、データベースの互換性レベルを変更できます。例えば、customeracct
という名前のデータベースが、SQL Server 2022 との互換性を持つように変更するには、次のコマンドを発行します。
ALTER DATABASE customeracct SET COMPATIBILITY_LEVEL = 160