Microsoft SQL Server DB エンジンのアップグレード
新しいバージョンのデータベースエンジンが Amazon RDS でサポートされている場合は、DB インスタンスをその新しいバージョンにアップグレードできます。SQL Server DB インスタンスのアップグレードには、メジャーバージョンのアップグレードとマイナーバージョンのアップグレードの 2 種類あります。
メジャーバージョンのアップグレードには、既存のアプリケーションとの下位互換性のないデータベースの変更が含まれる場合があります。そのため、DB インスタンスのメジャーバージョンアップグレードは手動で実行する必要があります。メジャーバージョンアップグレードを開始するには、DB インスタンスを変更します。ただし、メジャーバージョンアップグレードを実行する前に、「アップグレードをテストする」に記載されているステップに従ってアップグレードをテストすることをお勧めします。
それに対して、マイナーバージョンのアップグレードに含まれるのは、既存のアプリケーションとの下位互換性がある変更のみです。マイナーバージョンのアップグレードを手動でスタートするには、DB インスタンスを変更します。
次の例では、CLI コマンドが AutoUpgrade
が true の応答を返します。これはアップグレードが自動であることを示しています。
... "ValidUpgradeTarget": [ { "Engine": "sqlserver-se", "EngineVersion": "14.00.3281.6.v1", "Description": "SQL Server 2017 14.00.3281.6.v1", "AutoUpgrade": true, "IsMajorVersionUpgrade": false } ...
アップグレード実行の詳細については、「SQL Server DB インスタンスをアップグレードする」を参照してください。Amazon RDS で使用できる SQL Server のバージョンについての詳細は、「Amazon RDS for Microsoft SQL Server」を参照してください。
トピック
アップグレードの概要
Amazon RDS によってアップグレードプロセス中に 2 つの DB スナップショットが作成されます。初期の DB スナップショットは、アップグレードの変更が行われる前の DB インスタンスから作成されます。アップグレード完了後に、2 番目の DB スナップショットが取得されます。
注記
DB インスタンスのバックアップ保持期間を 0 より大きく設定した場合にのみ、Amazon RDS は DB スナップショットを作成します。バックアップ保持期間を変更するには、「Amazon RDS DB インスタンスを変更する」を参照してください。
アップグレード完了後は、データベースエンジンを前のバージョンに戻すことはできません。前のバージョンに戻す必要がある場合は、アップグレード前に取得された DB スナップショットを復元して、新しい DB インスタンスを作成します。
SQL Server のマイナーバージョンアップグレードまたはメジャーバージョンアップグレード中、[Free Storage Space] と [Disk Queue Depth] のメトリクスに [-1
] が表示されます。アップグレード完了後は、両方のメトリクスが [normal (ノーマル)] に戻ります。
メジャーバージョンのアップグレード
Amazon RDS は、現在次のメジャーバージョンの Microsoft SQL Server DB インスタンスへのアップグレードをサポートしています。
SQL Server 2008 を除く任意のバージョンから既存の DB インスタンスを SQL Server 2017 または 2019 にアップグレードできます。SQL Server 2008 からアップグレードするには、他のいずれかのバージョンにアップグレードしてください。
現在のバージョン | サポートされているアップグレードバージョン |
---|---|
SQL Server 2019 |
SQL Server 2022 |
SQL Server 2017 |
SQL Server 2022 SQL Server 2019 |
SQL Server 2016 |
SQL Server 2022 SQL Server 2019 SQL Server 2017 |
次の例に示すような AWS CLI クエリを使用して、データベースエンジンのバージョン別に利用できるアップグレードを見つけることができます。
Linux、macOS、Unix の場合:
aws rds describe-db-engine-versions \ --engine sqlserver-se \ --engine-version 14.00.3281.6.v1 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" \ --output table
Windows の場合:
aws rds describe-db-engine-versions ^ --engine sqlserver-se ^ --engine-version 14.00.3281.6.v1 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^ --output table
出力は、バージョン 14.00.3281.6 を利用可能な最新の SQL Server 2017 または 2019 バージョンにアップグレードできることを示しています。
-------------------------- |DescribeDBEngineVersions| +------------------------+ | EngineVersion | +------------------------+ | 14.00.3294.2.v1 | | 14.00.3356.20.v1 | | 14.00.3381.3.v1 | | 14.00.3401.7.v1 | | 14.00.3421.10.v1 | | 14.00.3451.2.v1 | | 15.00.4043.16.v1 | | 15.00.4073.23.v1 | | 15.00.4153.1.v1 | | 15.00.4198.2.v1 | | 15.00.4236.7.v1 | +------------------------+
データベース互換性レベル
Microsoft SQL Server データベース互換性レベルを使用して、いくつかのデータベースの動作を調整し、以前のバージョンの SQL Server を模倣することができます。詳細については、Microsoft ドキュメントの「互換性レベル
ALTER DATABASE コマンドを使用して、データベースの互換性レベルを変更できます。例えば、customeracct
という名前のデータベースが、SQL Server 2016 との互換性を持つように変更するには、次のコマンドを発行します。
ALTER DATABASE customeracct SET COMPATIBILITY_LEVEL = 130
マルチ AZ およびインメモリ最適化に関する考慮事項
Amazon RDS は、Microsoft SQL Server を実行する DB インスタンスで SQL Server データベースミラーリング (DBM) または Always On 可用性グループ (AG) によるマルチ AZ 配置をサポートしています。詳細については、「Amazon RDS for Microsoft SQL Server のマルチ AZ 配置」を参照してください。
DB インスタンスがマルチ AZ 配置にある場合は、プライマリとスタンバイの両方のインスタンスがアップグレードされます。Amazon RDS で、ローリングアップグレードが行われます。フェイルオーバー中にのみ、停止が発生します。
SQL Server 2016 から 2019 までの Enterprise Edition は、インメモリ最適化をサポートしています。
リードレプリカの考慮事項
データベースバージョンのアップグレード中に、Amazon RDS はプライマリ DB インスタンスと共にすべてのリードレプリカをアップグレードします。Amazon RDS では、リードレプリカのデータベースバージョンのアップグレードを個別にサポートしていません。リードレプリカの詳細については、「Amazon RDS での Microsoft SQL Server 用のリードレプリカの使用」を参照してください。
プライマリ DB インスタンスのデータベースバージョンのアップグレードを実行すると、そのすべてのリードレプリカも自動的にアップグレードされます。Amazon RDS は、プライマリ DB インスタンスをアップグレードする前に、すべてのリードレプリカを同時にアップグレードします。リードレプリカは、プライマリ DB インスタンスのデータベースバージョンのアップグレードが完了するまで使用できない場合があります。
オプショングループに関する考慮事項
DB インスタンスでカスタム DB オプショングループを使用している場合、Amazon RDS で DB インスタンスに新しいオプショングループを自動的に割り当てられないことがあります。例えば、新しいメジャーバージョンにアップグレードする場合、新しいオプショングループを指定する必要があります。新しいオプショングループを作成し、このオプショングループに既存のカスタムオプショングループと同じオプションを追加することをお勧めします。
詳細については、「オプショングループを作成する」または「オプショングループをコピーする」を参照してください。
パラメータグループに関する考慮事項
DB インスタンスがカスタム DB パラメータグループを使用している場合:
-
Amazon RDS は、アップグレード後に DB インスタンスを自動的に再起動します。
-
場合によっては、RDS が新しいパラメータグループを DB インスタンスに自動的に割り当てられないことがあります。
例えば、新しいメジャーバージョンにアップグレードする場合、新しいパラメータグループを指定する必要があります。新しいパラメータグループを作成し、そのパラメータの設定を既存のカスタムパラメータグループと同じにすることをお勧めします。
詳細については、「Amazon RDS での DB パラメータグループの作成」または「Amazon RDS での DB パラメータグループのコピー」を参照してください。
アップグレードをテストする
DB インスタンスのメジャーバージョンのアップグレードを実行する前に、データベースとそのデータベースにアクセスするすべてのアプリケーションについて、新しいバージョンとの互換性を綿密にテストする必要があります。以下の手順を実行することをお勧めします。
メジャーバージョンのアップグレードをテストするには
-
Microsoft ドキュメントで、新しいバージョンのデータベースエンジンに関する「SQL Server をアップグレードする
」を参照し、データベースやアプリケーションに影響する可能性がある互換性の問題があるかどうかを確認します。 -
DB インスタンスでカスタムオプショングループを使用している場合は、アップグレード先の新しいバージョンと互換性がある新しいオプショングループを作成します。詳細については、「オプショングループに関する考慮事項」を参照してください。
-
DB インスタンスでカスタムパラメータグループを使用している場合は、アップグレード先の新しいバージョンと互換性がある新しいパラメータグループを作成します。詳細については、「パラメータグループに関する考慮事項」を参照してください。
-
アップグレードする DB インスタンスの DB スナップショットを作成します。詳細については、「シングル AZ DB インスタンスの DB スナップショットの作成」を参照してください。
-
DB スナップショットを復元して、新しいテスト DB インスタンスを作成します。詳細については、「DB インスタンスへの復元」を参照してください。
-
この新しいテスト DB インスタンスを変更して新しいバージョンにアップグレードするには、次に説明するいずれかの方法を使用します。
-
アップグレードしたインスタンスによって使用されるストレージを評価して、アップグレードに追加のストレージが必要かどうかを判断します。
-
データベースとアプリケーションが新しいバージョンで正常に動作することが確認されるまで、アップグレードした DB インスタンスに対する品質保証テストを必要な回数だけ実行します。手順 1 で特定した互換性の問題の影響を評価するための新しいテストを実行します。すべてのストアドプロシージャと関数をテストします。アプリケーションのテストバージョンを、アップグレードした DB インスタンスに割り振ります。
-
すべてのテストに合格したら、本稼働 DB インスタンスのアップグレードを実行します。すべてが正常に動作していることを確認するまでは、DB インスタンスへの書き込みオペレーションは許可しないことをお勧めします。
SQL Server DB インスタンスをアップグレードする
SQL Server DB インスタンスの手動または自動アップグレードについては、以下を参照してください。
重要
AWS KMS を使用して暗号化されたスナップショットがある場合は、サポートが終了する前にアップグレードを開始することをお勧めします。
サポート終了前に非推奨の DB インスタンスをアップグレードする
メジャーバージョンの廃止後は、新しい DB インスタンスにインストールすることはできません。RDS では、既存のすべての DB インスタンスが自動的にアップグレードされます。
廃止予定の DB インスタンスを復元する必要がある場合、ポイントインタイムリカバリ (PITR) を実行するか、スナップショットを復元することができます。こうすることで、廃止予定のバージョンを使用する DB インスタンスに一時的にアクセスできます。ただし、メジャーバージョンが完全に廃止されると、これらの DB インスタンスも自動的にサポートされているバージョンにアップグレードされます。