Oracle Databaseバージョンと管理モデルの選択における考察'23

本記事は[Oracle Cloud Infrastructure Advent Calendar 2023](https://qiita.com/advent-calendar/2023/oci)と、[JPOUG Advent Calendar 2023](https://adventar.org/calendars/8844)の二日目の記事となります。

Oracle Cloud Infrastructure Advent Calendar 一日目の記事は NICAREGI さんの記事「[WAFとFunctionsを使ったSorryPageの自動切り替えの実装手順](https://qiita.com/NICAREGI/items/d1ba42c2597c427a6776)」、JPOUG Advent Calender 一日目の記事は wrcsus4 さんの記事「[Oracle DatabaseのOracle ACE Proが選んだ2023年オラクル10大NEWS](https://cosol.jp/techdb/2023/12/2023_oracle_10_news/)」でした。

:::note info
インフォメーション
2024年版の情報は [Oracle Databaseバージョンと管理モデルの選択における考察'24](https://qiita.com/asahide/items/223f0d395c025426cfd7) を参照ください
:::

# はじめに

2023年9月に Oracle Database 23c がGAとなりました。とはいえ、Oracle Cloud上のBaseDBサービスのみでの利用となり、現時点では以下の機能が利用できないという制限があります（2023年12月2日 時点）。

- Oracle Database Standard Edition
- 複数ノードのRAC DB System
- ArmベースのAmpere VM.Standard.A1.Flex シェイプ
- 旧バージョンから23cへのアップグレード
- Oracle Database Zero Data Loss Autonomous Recovery Service (ZRCV)へのバックアップ
- データベース・ソフトウェア・イメージ
- OCI Vault統合
（出典：[Limitations of Database 23c on Base Database](https://docs.oracle.com/en/cloud/paas/base-database/about/index.html#GUID-80C0D1B2-1280-4D27-A60F-F85D7F86CD63)）

その一方で、Oracle Database 19cのエラーコレクションが含まれるサポート期限（※１）も 2027年4月30日 に迫ってきており（※２）、現時点から利用開始しても3.5年程度しかサポートされない状態となります。
（※１）基本的にはExtended Support相当のサポート期限
（※２）[Release Schedule of Current Database Releases (Doc ID 742060.1)](https://support.oracle.com/knowledge/Oracle%20Database%20Products/742060_1.html)

現時点でサポートされているOracle Databaseは 19c、21c、23c のみとなります。21cはInnovation ReleaseとなりExtended サポートが提供されず、2025年4月30日 にサポート期限を迎える[^5]ため、実質的には 19c か 23c が対象となります。(2023年12月の時点では、Oracle社と特別な契約 [^1] を結ぶことで11gや12cも継続してサポートを受けることは可能です)
また、前述のとおり 19cはExtended サポートの期限が2027年4月30日という制限があり、一方の23cは現時点で利用できる管理モデル・環境や機能が限られているという制限があるため、悩ましい状況です。

[^5]: [Release Schedule of Current Database Releases (Doc ID 742060.1)](https://support.oracle.com/knowledge/Oracle%20Database%20Products/742060_1.html) 2023年12月8日 に 21c のPremierサポートが 2024年4月30日から2025年4月30日への延長が発表されました

[^1]: [Release Schedule of Current Database Releases (Doc ID 742060.1)](https://support.oracle.com/knowledge/Oracle%20Database%20Products/742060_1.html) 中の 11.2.0.4, 12.1.0.2, 12.2.0.1 を参照下さい

Oracle ACEの大先輩でもある日本ヒューレット・パッカード合同会社の諸橋さんが過去何度か考察されております。また、当時に比べると様々な管理モデル（IaaS, PaaS）の利用も標準的になってきました。それに倣って **これからバージョンや管理モデルを選択するならどのような観点で選択を行うのが現実的か** を考えてみたいと思います。

- wmo6hash::blog [Oracle Databaseバージョン選択における考察'18](https://wmo6hash.hatenablog.jp/entry/20180922/p1)
- wmo6hash::blog [Oracle Databaseバージョン選択における考察’20](https://wmo6hash.hatenablog.jp/entry/2020/12/31/233000)

上記blogでは、今回触れていない Oracle Databaseのライフタイムサポートの考え方や、マイナーバージョンの考え方等も網羅されているので、そのあたりにも興味ある方はご参照ください。（今回は基本的には **メジャーバージョン** について記載しています）

# 前提事項

Oracle Database 23c が BaseDB としてリリースされた 2023年11月時点のサポート・タイムラインは以下になります。前述のとおり、現実的には Oracle Database 19c と Oracle Database 23c のみが対象になってくると想定されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313926/84930489-f03d-c544-57e7-e8f65a689a9e.png)

- 出典：[Oracle Database: リリース及びサポート・タイムライン](https://speakerdeck.com/oracle4engineer/database_cloud_support_date?slide=2)

#### データベース・クラウドの扱い
データベース・クラウドはここではOCI上のPaaSサービスを指します。
データベース・クラウドではSustaining サポートが提供されず、サポート終了後のSR受付は行われない、また、基本的にはサポート終了後は「継続利用は可能だが、Oracleは稼働を保証しない」となっています。

- 出典：[データベース・クラウドでのサポート期間︓FAQ](https://speakerdeck.com/oracle4engineer/database_cloud_support_date?slide=4)
- 出典：[Base Database Service よくあるお問い合わせ③](https://speakerdeck.com/oracle4engineer/basedb-tech-detail?slide=108)

なお、[データベース・クラウドでのサポート期間︓FAQ](https://speakerdeck.com/oracle4engineer/database_cloud_support_date?slide=4) に記載がありますように、データベース・クラウド上のPaaSではBYOLを含めExtended Support期間中の追加費用は不要となります。

# 現在の 19c と 23c の利用環境等の違い

| |Oracle Database 19c|Oracle Database 23c<br>Free Editionは除く|
|:-:|:-:|:-:|
|利用環境|19cがリリースされたすべての環境<br>（2023年12月2日 時点）|Oracle Cloud上のBaseDBのみ|
|Extended<br>サポート期限|～2027年4月30日|～2032年4月|
|制限|とくになし|Base-DB以外利用不可<br>Standard Edition利用不可<br>RAC利用不可<br>23cへのアップグレード不可 等々 |

# バージョンと管理モデルの選択

バージョン選択という意味では、OCI(Oracle Cloud Infrastructure) 上の BaseDB でしか Oracle Database 23c は利用できないため、それ以外の環境は 19c を利用するしかありません。一方で、管理モデルとしてはPaaSとIaaSがありますが、19c を**PaaS（データベース・クラウド）で利用する場合には稼働が保証されない**、という状況になってしまいます。そのため、OCI上でOracle Databaseを今、新規利用する場合について、どのような選択が可能なのか考えていきたいと思います。なお、同じくPaaSである Amazon RDS for Oracle の場合は、12cなどの実績では、Extended サポートが終了するタイミングで19cへの強制アップグレードが発生していました。

OCI上で新しくOracle Databaseを利用したい場合、環境として主に以下の三つが選択肢になると想定されます。（ExaDBは上位モデルになるため、選択肢からは除外します）
- Compute 上に Oracle Databaseを構築する
- BaseDBの利用
- Autonomous DBの利用

現時点で BaseDB 以外は23cを利用できないため、バージョンを含めると以下のようになります。
1. 19c on Compute
1. 19c on BaseDB
1. 23c on BaseDB
1. 19c on Autonomous DB

それぞれの環境のサポート期限や制限等を簡単にまとめると、以下のようになります。

| |19c on Compute|19c on BaseDB|23c on BaseDB|19c on Autonomous DB|
|:-:|:-:|:-:|:-:|:-:|
|バージョン|19c|19c|23c|19c|
|管理モデル|IaaS|DB PaaS Automated|DB PaaS Automated|DB PaaS Full-Managed|
|サポート|～2027年4月30日<br>Sustaining Supportが利用可能|～2027年4月30日|～2032年4月|～2027年4月30日|
|制限|RACは利用不可<br>ライセンス込みの従量制は利用不可|-|Standard Edition利用不可<br>RAC利用不可<br>23cへのアップグレード不可 等々|OS環境へのアクセス不可<br>DBパッチの自動適用|
|アップグレード|23cのツール等でのアップグレードになると想定|コンソール上での自動アップグレードも可能と想定|-|コンソール上での自動アップグレードも可能と想定|



# まとめ

改めて最初に記載しますが、現時点（2023年12月2日）では Oracle Database 23c はOCI上のBase-DBでのみリリースされているため、**OCI以外の環境でOracle Databaseを利用する場合には Oracle Database 19c を利用**しなければなりません。
OCI上の場合には、上記で整理したように19cか23cが選択可能であり、また、19cでもIaaSかPaaSを選択することが可能です。

OCI上でのOracle Databaseの利用について個人的に流れを整理すると、以下のようになります。(何に重きを置くかで変わってきますので、ご参考まで)

1. **フルマネージドを利用**する場合には、バージョン自体もマネージドな範囲、という位置づけにしています。Oracle Database 19cでも途中でバージョンアップ行えばよいじゃないか、ということで、フルマネージドが良い場合には、Autonomous DBを選択しています
1. **Oracle Database 23c の制限(RAC利用不可等)に該当しない場合**には、Oracle Database 23cのBaseDBを利用しましょう！
1. **システムリリース後にOracle Databaseのバージョンアップが可能**と判断できる場合には、BaseDBでOracle Database 19cを利用しましょう。ただ、（現時点では）2027年4月までのバージョンアップが必須となるため、その際にはコストが発生しますよ、という事をあらかじめステークホルダと認識合わせを行っておく必要があります
1. **システムリリース後のOracle Databaseのバージョンアップが難しい**場合には、IaaSでOracle Database 19cを利用しましょう。Sustaining Supportですが、稼働自体は保証されます。


![IMG_0528.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313926/1bb0ab6e-933d-8980-da08-17bc21752ba5.png)




#### おまけ

Oracle Database 23c の機能確認を先に行いたいけど、現時点で利用できる環境がない、という方は、ぜひ Oracle Database 23c Free を利用しましょう。新機能検証やノンデグ検証は十分に行えます。

- [Oracle Database Freeの使用を開始する](https://www.oracle.com/jp/database/free/get-started/)

また、Oracle Databaseのバージョンを選択するときは、クライアント側のバージョンとの相互接続性にも気を付けましょう。

- Client / Server の相互接続性について
    - [Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)](https://support.oracle.com/knowledge/Oracle%20Database%20Products/207303_1.html)
- JDBCバージョンとDatabase(Server)の相互接続性について
    - [Oracle JDBC FAQ](https://www.oracle.com/database/technologies/faq-jdbc.html)
    - [Starting With Oracle JDBC Drivers - Installation, Certification, and More! (Doc ID 401934.1)](https://support.oracle.com/knowledge/Middleware/401934_1.html)