Oracle DB エンジンのアップグレード - Amazon Relational Database Service

Oracle DB エンジンのアップグレード

Amazon RDS が新バージョンの Oracle をサポートすると、DB インスタンスをその新バージョンにアップグレードできます。Amazon RDS で使用できる Oracle のバージョンの詳細については、「Oracle データベースエンジンのリリースノート」を参照してください。

重要

RDS for Oracle Database 11g は非推奨です。Oracle Database 11g スナップショットを維持する場合は、それ以降のリリースにアップグレードできます。詳細については、「Oracle DB スナップショットのアップグレード」を参照してください。

Oracle DB エンジンのアップグレードの概要

Oracle DB インスタンスをアップグレードする前に、次の概念を理解しましょう。

メジャーバージョンとマイナーバージョンのアップグレード

Amazon RDS では、Oracle DB インスタンスへの次のアップグレードをサポートします。

  • メジャーバージョンのアップグレード

    一般に、データベースエンジンのメジャーバージョンアップグレードは、既存のアプリケーションと互換性のない変更をもたらすことがあります。DB インスタンスをメジャーバージョンにアップグレードするには、アクションを手動で実行する必要があります。

  • マイナーバージョンのアップグレード

    マイナーバージョンアップグレードには、既存のアプリケーションとの下位互換性がある変更のみが含まれます。DB インスタンスでマイナーバージョン自動アップグレードを有効にすると、マイナーバージョンアップグレードが自動的に行われます。その他の場合は、DB インスタンスを手動でアップグレードします。

DB エンジンをアップグレードすると、停止します。停止時間は、エンジンのバージョンとインスタンスのサイズによって異なります。

Oracle エンジンのバージョン管理

DB エンジンのバージョン管理により、データベースエンジンにパッチを適用してアップグレードするタイミングと方法を制御できます。データベースエンジンのパッチバージョンとの互換性を維持する柔軟性が得られます。また、新しいパッチバージョンを本稼働環境でデプロイする前にテストして、アプリケーションで動作することを確認できます。さらに、独自の条件やタイムラインでバージョンをアップグレードします。

注記

Amazon RDS では、Amazon RDS 固有の DB エンジンのバージョンを使用して、Oracle データベースの公式パッチを定期的に収集します。Amazon RDS Oracle 固有のエンジンのバージョンに含まれている Oracle のパッチに関するリストについては、「Oracle データベースエンジンのリリースノート」を参照してください。

エンジンのアップグレード中の自動スナップショット

Oracle DB インスタンスをアップグレードする際、スナップショットはアップグレードの問題に対する保護を提供します。DB インスタンスのバックアップ保持期間を 0 より大きく設定した場合、Amazon RDS はアップグレード中に以下の DB スナップショットを作成します。

  1. アップグレードの変更が行われる前の DB インスタンスのスナップショット。アップグレードが失敗した場合、このスナップショットを復元して、古いバージョンを実行する DB インスタンスを作成できます。

  2. アップグレード完了後の DB インスタンスのスナップショット。

注記

バックアップ保持期間を変更するには、「Amazon RDS DB インスタンスを変更する」を参照してください。

アップグレード後は、以前のエンジンバージョンに戻すことはできません。ただし、アップグレード前のスナップショットを復元することで、新しい Oracle DB インスタンスを作成できます。

マルチ AZ 配置での Oracle のアップグレード

DB インスタンスがマルチ AZ 配置にある場合、Amazon RDS はプライマリとスタンバイの両方のレプリカをアップグレードします。オペレーティングシステムの更新が不要な場合は、プライマリとスタンバイのアップグレードが同時に実行されます。インスタンスは、アップグレードが完了するまで使用できません。

マルチ AZ 配置でオペレーティングシステムの更新が必要な場合は、DB のアップグレードをリクエストした時点で、Amazon RDS によって更新が適用されます。Amazon RDS は以下の手順を実行します。

  1. スタンバイ DB インスタンスのオペレーティングシステムを更新します。

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

  3. プライマリインスタンスをスタンバイ DB インスタンスにフェイルオーバーします。

  4. 新しいスタンバイ DB インスタンス (従来のプライマリインスタンス) のオペレーティングシステムをアップグレードします。

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

リードレプリカでの Oracle のアップグレード

ソース DB インスタンスとそのすべてのリードレプリカの Oracle DB エンジンバージョンは同じである必要があります。Amazon RDS は、以下の段階を踏んでアップグレードを実行します。

  1. ソース DB インスタンスをアップグレードします。リードレプリカはこの段階で使用できます。

  2. レプリカのメンテナンスウィンドウに関係なく、リードレプリカを並行してアップグレードします。ソース DB はこの段階で使用できます。

クロスリージョンリードレプリカのメジャーバージョンアップグレードの場合、Amazon RDS によって追加のアクションが実行されます。

  • ターゲットバージョンのオプショングループを自動的に生成します。

  • 元のオプショングループから新しいオプショングループにすべてのオプションとオプション設定をコピーします。

  • アップグレードされたクロスリージョンリードレプリカを新しいオプショングループに関連付けます。

マイクロ DB インスタンスでの Oracle のアップグレード

マイクロ DB インスタンスで実行されているデータベースアップグレードはお勧めしません。これらのインスタンスの CPU には制限があるため、アップグレードが完了するまでに数時間かかることがあります。

Data Pump を使用してデータをコピーすることで、少量のストレージ (10~20 GiB) を持つマイクロ DB インスタンスをアップグレードできます。本番稼働用 DB インスタンスを移行する前に、Data Pump を使用してデータをコピーしてテストすることをお勧めします。

メジャーバージョンのアップグレード

Amazon RDS では、以下のメジャーバージョンへのアップグレードがサポートされています。

メジャーバージョンアップグレードを実行するためには、DB インスタンスを手動で変更します。メジャーバージョンのアップグレードは自動的に実行されません。

メジャーアップグレードでサポートされているバージョン

Amazon RDS では、以下のメジャーバージョンへのアップグレードがサポートされています。

現在のバージョン サポートされているアップグレード

18.0.0.0

19.0.0.0

12.2.0.1

19.0.0.0

18.0.0.0

12.1.0.2

19.0.0.0

18.0.0.0

12.2.0.1

Oracle Database のメジャーバージョンアップグレードは、同じ月以降にリリースされた Release Update (RU) にアップグレードする必要があります。メジャーバージョンダウングレードは Oracle のいずれのバージョンでもサポートされていません。

メジャーアップグレードでサポートされているインスタンスクラス

現在の Oracle DB インスタンスは、アップグレードするバージョンではサポートされていない DB インスタンスクラスで実行される可能性があります。この場合、アップグレードする前に、サポートされている DB インスタンスクラスに DB インスタンスを移行します。Amazon RDS for Oracle の各バージョンおよびエディションでサポートされている DB インスタンスクラスの詳細については、「DB インスタンスクラス」を参照してください。

メジャーアップグレード前の統計の収集

メジャーバージョンアップグレードを実行する前に、アップグレードする DB インスタンスのオプティマイザ統計を収集することをお勧めします。これにより、アップグレード中の DB インスタンスのダウンタイムを短縮できます。

オプティマイザ統計を収集するには、DB インスタンスにマスターユーザーとして接続し、次の例のように DBMS_STATS.GATHER_DICTIONARY_STATS の手順を実行します。

EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;

詳細については、Oracle ドキュメントの「Gathering Optimizer Statistics to Decrease Oracle Database Downtime」を参照してください。

メジャーアップグレードの許可

エンジンのメジャーバージョンアップグレードは、アプリケーションと互換性がない場合があります。アップグレードは元に戻せません。EngineVersion パラメータに現在のメジャーバージョンとは異なるメジャーバージョンを指定する場合は、メジャーバージョンアップグレードを許可する必要があります。

CLI コマンド modify-db-instance を使用して、メジャーバージョンをアップグレードする場合、--allow-major-version-upgrade を指定します。この設定は永続的ではないため、メジャーアップグレードを実行するたびに --allow-major-version-upgrade を指定する必要があります。このパラメータは、エンジンのマイナーバージョンアップグレードには影響しません。詳細については、「DB インスタンスのエンジンバージョンのアップグレード」を参照してください。

コンソールを使用してメジャーバージョンをアップグレードする場合は、アップグレードを許可するオプションを選択する必要はありません。代わりに、メジャーアップグレードは元に戻せないという警告がコンソールに表示されます。

Oracle のマイナーバージョンのアップグレード

マイナーバージョンアップグレードでは、メジャーバージョンの Oracle データベースパッチセットアップデート (PSU) またはリリースアップデート (RU) を適用します。

Amazon RDS for Oracle DBインスタンスは、次の条件を満たす場合、次のメンテナンスウィンドウ中に自動的にアップグレードされるようにスケジュールされています。

  • DB インスタンスの [Auto minor version upgrade (マイナーバージョン自動アップグレード)] オプションは有効になっています。

  • DB インスタンスで最新のマイナー DB エンジンバージョンが実行されていません。

DB インスタンスは、Amazon RDS for Oracle によって利用可能になってから 4〜6 週間後に最新の四半期 PSU または RU にアップグレードされます。PSU および RU の詳細については、「Oracle データベースエンジンのリリースノート」を参照してください。

次のマイナーバージョンアップグレードはサポートされません。

現在のバージョン サポートされていないアップグレード

12.1.0.2.v6

12.1.0.2.v7

12.1.0.2.v5

12.1.0.2.v7

12.1.0.2.v5

12.1.0.2.v6

注記

マイナーバージョンのダウングレードはサポートされていません。

Oracle SE2 アップグレードパス

次の表に、サポートされているスタンダードエディション 2 (SE2) へのアップグレードパスを示します。ライセンス込みのモデルと自分のライセンス使用モデル (BYOL) の詳細については、「Oracle のライセンスオプション」を参照してください。

既存の設定 サポートされている SE2 設定

12.2.0.1 SE2、BYOL

12.2.0.1 SE2、BYOL またはライセンス込み

12.1.0.2 SE2、BYOL

12.2.0.1 SE2、BYOL またはライセンス込み

12.1.0.2 SE2、BYOL またはライセンス込み

既存の設定からサポートされる SE2 設定にアップグレードするには、サポートされているアップグレードパスを使用します。詳細については、「メジャーバージョンのアップグレード」を参照してください。

Oracle DB のアップグレードに関する考慮事項

アップグレードする前に、オプショングループ、パラメータグループ、およびタイムゾーンへの影響を確認してください。

オプショングループに関する考慮事項

DB インスタンスがカスタムオプショングループを使用している場合、Amazon RDS が新しいオプショングループを自動的に割り当てられないことがあります。例えば、この状況は、新しいメジャーバージョンにアップグレードするときに発生します。このような場合、アップグレード時に新しいオプショングループを指定します。新しいオプショングループを作成し、このオプショングループに既存のカスタムオプショングループと同じオプションを追加することをお勧めします。

詳細については、「オプショングループを作成する」または「オプショングループをコピーする」を参照してください。

DB インスタンスが APEX オプションを含むカスタムオプショングループを使用している場合、アップグレード時間を短縮できることがあります。そのためには、DB インスタンスと APEX のバージョンを同時にアップグレードします。詳細については、「APEX バージョンのアップグレード」を参照してください。

パラメータグループに関する考慮事項

DB インスタンスでカスタムパラメータグループを使用している場合、Amazon RDS で DB インスタンスに新しいパラメータグループを自動的に割り当てられないことがあります。例えば、この状況は、新しいメジャーバージョンにアップグレードするときに発生します。このような場合、アップグレード時に必ず新しいパラメータグループを指定する必要があります。新しいパラメータグループを作成し、そのパラメータの設定を既存のカスタムパラメータグループと同じにすることをお勧めします。

詳細については、「DB パラメータグループを作成する」または「DB パラメータグループをコピーする」を参照してください。

タイムゾーンに関する考慮事項

タイムゾーンオプションを使用して、Oracle DB インスタンスで使用するシステムのタイムゾーンを変更することができます。例えば、オンプレミス環境またはレガシーアプリケーションとの互換性があるように、DB インスタンスのタイムゾーンで変更が必要になることがあります。タイムゾーンオプションでは、ホストレベルでタイムゾーンが変更されます。Amazon RDS for Oracle では、システムタイムゾーンは年間を通して自動的に更新されます。システムのタイムゾーンの詳細については、「Oracle のタイムゾーン」を参照してください。

Oracle DB インスタンスを作成すると、データベースによって データベースのタイムゾーンが自動的に設定されます。データベースのタイムゾーンは、夏時間 (DST) タイムゾーンとも呼ばれます。データベースのタイムゾーンは、システムのタイムゾーンとは異なります。

Oracle Database の各リリース間には、パッチセットまたは個々のパッチに、新しい DST バージョンが含まれる場合があります。これらのパッチは、さまざまなタイムゾーンリージョンの移行ルールの変更を反映しています。例えば、DST が有効になると、政府機関が変わる場合があります。DST ルールを変更すると、TIMESTAMP WITH TIME ZONE データ型の既存のデータに影響する場合があります。

RDS for Oracle インスタンスをアップグレードする場合、Amazon RDS はデータベースのタイムゾーンを自動的にアップグレードしません。データベースのタイムゾーンを手動でアップグレードするには、必要な DST パッチを持つ新しい Oracle DB インスタンスを作成します。次に、現在のインスタンスから新しいインスタンスにデータを移行します。データを移行するには、以下を含む複数の手法を使用できます。

  • Oracle GoldenGate

  • AWS Database Migration Service

  • Oracle Data Pump

  • 元のエクスポート/インポート (一般的な使用に対してはサポート終了)

注記

Oracle Data Pump を使用してデータを移行すると、ターゲットのタイムゾーンバージョンがソースのタイムゾーンバージョンよりも古い場合、エラー ORA-39405 が発生します。

詳細については、Oracle ドキュメントの「TIMESTAMP WITH TIMEZONE Restrictions」を参照してください。

Oracle Database 18c の自動アップグレードの準備

2021 年 7 月 1 日、Amazon RDS は、Oracle Database 18c インスタンスを Oracle Database 19c に自動的にアップグレードすることを計画しています。自動アップグレードは、メンテナンスウィンドウで行われることが保証されていません。リザーブドインスタンスを含むすべての Oracle Database 18c インスタンスは、最新の利用可能な Release Update (RU) に移動します。

自動アップグレードを開始する前に、既存の Oracle Database 18c DB インスタンスを Oracle Database 19c に手動でアップグレードすることを強くお勧めします。手動でアップグレードする場合、アプリケーションが正しく動作することを検証できます。自動アップグレードを回避するには、2021 年 7 月 1 日より前に次のいずれかの方法を使用します。

Oracle Database 18c DB インスタンスをアップグレードする

Oracle Database 18c インスタンスを Oracle Database 19c にアップグレードできます。アップグレードする前に、次の点を考慮してください。

  • アップグレード後、SQL ステートメントの動作が異なる場合があります。その場合、OPTIMIZER_FEATURES_ENABLE パラメータを使用して、Oracle Database 18c オプティマイザの動作を保持できます。詳細は、Oracle ドキュメントの「オプティマイザへの影響」を参照してください。

  • BYOL モデルで Oracle Database 18c の延長サポートがある場合は、その影響を考慮してください。この場合、Oracle サポートから Oracle Database 19c に対する延長サポート契約が必要です。BYOL のライセンスとサポートの要件の詳細については、Amazon RDS for Oracle のよくある質問 (FAQ) を参照してください。

Oracle Database 18c DB スナップショットをアップグレードする

既存のスナップショットを Oracle Database 19c にアップグレードし、復元できます。詳細については、「Oracle DB スナップショットのアップグレード」を参照してください。

スナップショットを使用してアップグレードする場合、自動アップグレードを回避するための予定期限は 2021 年 6 月 30 日です。

Oracle Database 18c DB インスタンスをダウングレードする

DB インスタンスを Oracle Database 19c にアップグレードしないことにする場合もあるでしょう。この場合、インスタンスを Oracle Database Release 1 (12.1.0.2) または Release 2 (12.2.0.1) にダウングレードできます。次のいずれかの方法を使用します。

  • Oracle Data Pump

  • AWS Database Migration Service (DMS)

  • サポートされている論理レプリケーションツール

インポートオプションの詳細については、「Amazon RDS の Oracle にデータをインポートする」を参照してください。

Oracle DB アップグレードのテスト

DB インスタンスをメジャーバージョンにアップグレードする前に、データベースとデータベースにアクセスするすべてのアプリケーションについて、新しいバージョンとの互換性を綿密にテストする必要があります。以下の手順を実行することをお勧めします。

メジャーバージョンのアップグレードをテストするには

  1. データベースエンジンの新しいバージョンについて Oracle アップグレードドキュメントを参照して、データベースやアプリケーションに影響を与える可能性のある互換性の問題があるかどうかを確認します。詳細については、Oracle ドキュメントの「Database Upgrade Guide」を参照してください

  2. DB インスタンスでカスタムオプショングループを使用している場合は、アップグレード先の新しいバージョンと互換性がある新しいオプショングループを作成します。詳細については、「オプショングループに関する考慮事項」を参照してください。

  3. DB インスタンスでカスタムパラメータグループを使用している場合は、アップグレード先の新しいバージョンと互換性がある新しいパラメータグループを作成します。詳細については、「パラメータグループに関する考慮事項」を参照してください。

  4. アップグレードする DB インスタンスの DB スナップショットを作成します。詳細については、「DB スナップショットの作成」を参照してください。

  5. DB スナップショットを復元して、新しいテスト DB インスタンスを作成します。詳細については、「DB スナップショットからの復元」を参照してください。

  6. この新しいテスト DB インスタンスを変更して新しいバージョンにアップグレードするには、次に説明するいずれかの方法を使用します。

  7. テストを実行します。

    • データベースとアプリケーションが新しいバージョンで正常に動作することが確認されるまで、アップグレードした DB インスタンスに対する品質保証テストを必要な回数だけ実行します。

    • 手順 1 で特定した互換性の問題の影響を評価するための新しいテストを実行します。

    • すべてのストアドプロシージャ、関数、トリガーをテストします。

    • アプリケーションのテストバージョンを、アップグレードした DB インスタンスに割り振ります。アプリケーションが新しいバージョンで正しく動作することを確認します。

    • アップグレードしたインスタンスによって使用されるストレージを評価して、アップグレードに追加のストレージが必要かどうかを判断します。本稼働で新しいバージョンをサポートするために、より大きなインスタンスのクラスを選択する必要がある場合もあります。詳細については、「DB インスタンスクラス」を参照してください。

  8. すべてのテストに合格したら、本番稼働用 DB インスタンスをアップグレードします。DB インスタンスへの書き込みオペレーションを許可する前に、DB インスタンスが正しく機能していることを確認することをお勧めします。

Oracle DB インスタンスのアップグレード

Oracle DB インスタンスの手動または自動アップグレードについては、「DB インスタンスのエンジンバージョンのアップグレード」を参照してください。