はじめに
Oracle Databaseのパッチ適用では、四半期ごとに提供されるRelease Update(RU)をベースに運用することが一般的です。
一方で、Oracle Database 19cでは、RUとRUの間に提供されるMonthly Recommended Patch(MRP)もあります。MRPは、特定のRUに対して提供される推奨パッチの集合で、重要な修正を次のRUを待たずに取り込める点が特徴です。
今回は、OCI Base Database Service、いわゆるBaseDBで、MRPを含めたカスタム・ソフトウェア・イメージを作成し、そのイメージを使ってDB Homeを更新する流れを検証しました。
なぜMRPを見てみたか
CSPUが月次で提供されるようになったことをきっかけに、RUだけでなくMRPも含めて、BaseDBでどう扱うのかを確認してみることにしました。
私が調べた範囲では、Oracle DatabaseではMRPにCSPUの修正が含まれる場合があり、適用可能なMRPがある場合はMRPも確認しておくのがよさそうでした。
BaseDBなどのOCI Database Services では、通常のパッチ適用はRU単位で扱うことが多いです。一方で、MRPを含めたOracle Homeを使いたい場合は、カスタム・ソフトウェア・イメージを使う方法を利用していきます。
前提
この記事では、Oracle Linux 8上で稼働するOracle Database 19cのBase Database Serviceを前提にしています。
MRPは、Oracle Database 19c RU 19.17以降で、Linux x86-64向けに提供される月次推奨パッチです。RUはサポートされる各プラットフォーム向けに提供されますが、MRPはLinux x86-64向けである点に注意が必要です。
また、MRPはRUのようにデータベースのリリース番号を変更しません。MRPに含まれるパッチはOracle Inventoryで確認できます。
RUとMRPの違い
ざっくり整理すると、RUとMRPは次のような位置づけです。
| 項目 | RU | MRP |
|---|---|---|
| 提供サイクル | 四半期ごと | RUとRUの間に月次で提供される場合がある |
| 主な目的 | 四半期ごとの標準的なメンテナンス・ベースライン | 特定RUに対する重要な推奨修正を早めに取り込む |
| 対象範囲 | セキュリティ修正、リグレッション修正、Optimizer/RDBMS関連修正などを含む広めのバンドル | 特定RU向けの推奨One-off Patchの集合 |
| バージョン番号 | RUレベルが変わる | MRPを適用してもRU番号は変わらない |
| 対象プラットフォーム | サポート対象プラットフォーム | Oracle Database 19c on Linux x86-64 |
| 確認方法 |
opatch lsinventory、DBA_REGISTRY_SQLPATCHなど |
主にopatch lsinventoryで確認 |
ざっくり言うと、四半期ごとのRUをベースにしつつ、RUとRUの間で必要に応じてMRPも見ていく、という位置づけかなと思います。
OCI Base Database ServiceでMRPを扱うときの考え方
OCI Base Database Serviceでは、コンソールから通常のパッチ適用を行う場合、基本的にはOracleが提供するRUを選択して更新します。
一方、特定の個別パッチやMRPを含めた状態でDB Homeを作成・更新したい場合は、カスタム・ソフトウェア・イメージを使う形になりそうです。
BaseDBのソフトウェア・イメージは、Oracle Grid InfrastructureまたはOracle Databaseソフトウェアをプロビジョニングまたは更新する前に作成するリソースです。ソフトウェア・イメージには、Oracle提供のソフトウェア・リリースだけでなく、特定のRUと追加の個別パッチを含めたカスタム・ソフトウェア・イメージを作成できます。
つまり、BaseDBでMRPを含めたDB Homeを作りたい場合は、次の流れになります。
- 対象RUを決める
- そのRUに対応するMRPのパッチ番号を確認する
3.カスタム・ソフトウェア・イメージを作成する - 作成したカスタム・ソフトウェア・イメージを使ってDB Homeを更新する
-
opatch lsinventoryなどで適用結果を確認する
MRPのパッチ番号を確認する
カスタム・ソフトウェア・イメージを作成するには、含めたいパッチ番号を指定する必要があります。
MRPのパッチ番号は、My Oracle Support(MOS)のNoteやパッチ検索から確認できます。
自分が確認したときは、主に以下のあたりを見ました。
- Monthly Recommended Patches(MRPs) and FAQ
- Primary Note for Database Quarterly Release Updates
- Important Recommended One-off Patches系のNote
- 対象RUのREADME
- パッチ検索画面
確認する観点は次のとおりです。
- 対象Database Releaseが一致しているか
- 対象RUが一致しているか
- PlatformがLinux x86-64であるか
- Database用MRPか、Grid Infrastructure用MRPか
- READMEに記載された前提OPatchバージョンを満たしているか
- 既存個別パッチとの競合がないか
例えば、19.24 RUに対するMRPを使いたい場合は、MOS上で「19.24」「MRP」「Linux x86-64」などを条件に確認し、対象のMRP Patch Numberを控えます。
カスタム・ソフトウェア・イメージ作成時には、このPatch Numberを指定します。
カスタム・ソフトウェア・イメージを作成する
OCIコンソールで、Base Database ServiceのSoftware Imageを作成します。
1. ソフトウェア・イメージ画面を開く
OCIコンソールで以下のように進みます。
Oracle AI Database → Oracle Base Database Service → ソフトウェア・イメージ

2. ソフトウェア・イメージを作成する
「ソフトウェア・イメージの作成」をクリックします。
Database Home用のMRPを含めたい場合は、イメージ・タイプとしてデータベース・ソフトウェア・イメージを選択します。
入力例は以下です。
| 項目 | 入力例 |
|---|---|
| イメージ・タイプ | データベース・ソフトウェア・イメージ |
| 表示名 | OCIコンソール上での表示名 |
| コンパートメント | 任意のコンパートメント |
| データベース・イメージ | 19c |
| データベース・バージョン(リリース更新) | 対象RU、例: 19.31.0.0 |
| 個別パッチ番号を入力します | MOSで確認したMRPのPatch Number |
Grid Infrastructure側のMRPや個別パッチを扱う場合は、Grid Infrastructure Software Imageも同様に作成します。

3. 作成完了を待つ
ソフトウェア・イメージの作成には時間がかかります。
作成が完了すると、ソフトウェア・イメージの詳細画面で以下のような情報を確認できます。
- リリース
- バージョン
- 含まれている個別パッチ情報
- ライフサイクルのステータス
作成したカスタム・ソフトウェア・イメージでDB Homeを更新する
作成したカスタム・ソフトウェア・イメージは、新規DBシステムの作成時だけでなく、既存DBの更新にも利用できます。
既存DBを更新する場合の流れは以下です。
- 対象BaseDBを開く
- 対象データベースを選択する
- データベースの詳細画面の「更新」タブを開く
- 「タイプ」からカスタム・イメージを選択 > 先ほど作成したカスタム・イメージが適用可能なパッチとして表示されます
- 事前チェックを実行する
- 事前チェックで問題がなければ適用します
適用後の確認
パッチ適用後は、コンソールとOS上で確認します。
コンソールでは、「データベース・ソフトウェア・イメージ」のセクションに、適用済みのカスタム・イメージの名前が表示されます。
OPatch Inventoryの確認をする場合
Oracle Homeに適用されたパッチは、opatch lsinventoryで確認できます。
$ORACLE_HOME/OPatch/opatch lsinventory
MRPを適用しても、RU番号自体は変わりません。
そのため、まずはopatch lsinventoryでOracle Homeに含まれるパッチを確認するのがよさそうです。
SQL変更を含むパッチの場合は、DB側ではDBA_REGISTRY_SQLPATCHも確認します。
SQL> select patch_id,patch_uid,action,status,action_time,description from dba_registry_sqlpatch order by action_time;
出力例はこちら。
PATCH_ID PATCH_UID ACTION STATUS ACTION_TIME DESCRIPTION
--------- ---------- ----------- ---------- ------------------------------ ------------------------------------------------------
xxxxxxxx xxxxxxxx APPLY SUCCESS 30-APR-26 07.38.47.043229 AM OJVM RELEASE UPDATE: 19.31.0.0.260421 (xxxxxxxx)
xxxxxxxx xxxxxxxx APPLY SUCCESS 30-APR-26 07.47.35.053327 AM Database Release Update : 19.31.0.0.260421 (xxxxxxxx)
MRPを適用しても、RU番号自体は変わらないことも確認できます。
MRPの確認は、v$versionだけで判断せず、まずはopatch lsinventoryでOracle Homeに含まれるパッチを確認するのがよさそうです。
注意点
MRPはRUにひもづく
MRPは特定のRUに対して提供されます。
例えば、19.24 RU向けのMRPは、19.24をベースにした環境で検討します。次の四半期で19.25 RUへ上げる場合は、19.25 RUを新しいベースラインとして扱い、19.25向けのMRPがあるかを改めて確認します。
MRPはLinux x86-64向け
MRPはOracle Database 19c on Linux x86-64向けに提供されます。OCIのデータベース・サービスはOracle Linuxでの提供です。
DatabaseとGrid Infrastructureで対象が異なる
BaseDBでは、Database HomeだけでなくGrid Infrastructure側の更新も可能です。
MRPや個別パッチがDatabase向けなのか、Grid Infrastructure向けなのかをREADMEで確認し、必要に応じてそれぞれのソフトウェア・イメージを作成します。
まとめ
今回は、BaseDBでMRPを含むカスタム・ソフトウェア・イメージを作成する流れを試してみました。
CSPUが月次で提供されるようになったので、今後はRUだけでなくMRPもあわせて見ていく場面が増えるかもしれません。
実際に適用する場合は、MOS NoteやREADMEを見ながら、まずは検証環境で試すのがよさそうです。
本記事は個人検証のメモなので、実際に試す場合は、My Oracle Supportの最新Note、対象パッチのREADME、OCI公式ドキュメントを確認しながら進めましょう。

