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

本記事は[JPOUG Advent Calendar 2024](https://adventar.org/calendars/10258)の三日目の記事となります。

JPOUG Advent Calender、二日目の記事は wmo6hash さんの記事「[「働き方の新しいスタイル」への仕事道具最適化'24](https://wmo6hash.hatenablog.jp/entry/2024/12/02/235903)」でした。

# はじめに

2023年9月に Oracle Database 23ai（発表当時は 23c）がGAとなってから1年以上経過しましたが、23aiのオンプレミス版のリリースは2025年に延期され、現時点(2024/12/3)では Oracle Database 23ai は BaseDB、ExaDB(ExaC@C、ODA含む)、AutonomousDB のみ利用が可能となっています。

また、現時点のBaseDBの23aiの利用では次の制限があります。

- 以前のバージョンから23aiへのデータベースのアップグレードはサポートされていません
- 以前のバージョンから23aiへのGrid Infrastructureのアップグレードはサポートされていません
- ArmベースのAmpere VM.Standard.A1。フレックス・シェイプはサポートされていません
(出典：[Oracle Database 23ai の制限について](https://docs.oracle.com/ja/cloud/paas/base-database/about/index.html#GUID-80C0D1B2-1280-4D27-A60F-F85D7F86CD63))

なお、Autonomous DBではフルクローンによる 19c → 23ai へのアップグレードを行うことが可能です。
- [Oracle Database 23aiへのAutonomous Databaseインスタンスのアップグレード](https://docs.oracle.com/ja-jp/iaas/autonomous-database-serverless/doc/autonomous-clone-upgrade.html)

23aiの新機能であるAIの機能の多くは OCI と統合して利用する機能となっているため、オンプレなどでの利用でこれらの新機能を活用するのは難しいと考えてますが、リリースされた暁にはなんらかの形で統合して利用できると良いですね。

# 前提事項

2024年の10月末までは Oracle Database 19c の Extended Support のサポート期限は 2027/4/30 となっていました。
オンプレミスで Oracle Database のシステム基盤更改を検討する際に、移行先のバージョンの選定候補が 19c しかなく、その場合には**サポート期限が移行完了時点で2-3年程度となってしまう**、という困った事態になっていたのは [昨年の考察](https://qiita.com/asahide/items/388018729eb1c5110418) でも述べたとおりです。

**●2023/11 時点の情報**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313926/a69202f2-21b5-bdac-7138-be9122cb7721.png)

一方で、Oracle社は 2024年に Google Cloud や AWS との連携を打ち出しており、以前から利用できた Azure を含めると既存の3大パブリッククラウドと連携して OCI 上の Oracle Database を利用できるようになりました。

19c を早く退役させて 2032年までのサポート期限が発表されていた OCI 上の Oracle Database 23ai の利用を進めていきたいのかな、と思ったりもしていました(元々、本考察自体もそのような流れで考えていました)。

ところが、2024年の11月に **Oracle Database 19c のサポート期限が 2032/12/31** になる、という大幅な期間延長が発表されました(併せて 21c も2027/7/31 まで延長されています)。

**●2024/11 時点の情報**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313926/d24f57e0-59f5-70a1-f1c6-31fe76e56158.png)



#### データベース・クラウドの扱い
昨年と同様ですが、同じ前提を記載します。

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

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

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

# 19c, 21c と 23ai の利用環境等の差(@2024/12/3)

2024/12/3 時点における利用環境の差を次表に示します。

|バージョン |19c| 21c |23ai(Free Editionは除く)|
|:-:|:-:|:-:|:-:|
|利用環境|19cがリリースされたすべての環境|21cがリリースされたすべての環境|BaseDB, ExaDB, ExaC@C, Autonomous DB|
|Premier<br>サポート期限|～2029/12/31|～2027/7/31|～2031/12/31|
|Extended<br>サポート期限|～2032/12/31|- |TBD|

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

昨年は 19c の(当時発表されていた)サポート期限が短いこともあり悩ましい状況でしたが、今年はだいぶシンプルになりました。
基本的にはシステム更改対応などで**既存の Oracle Database のマイグレーションを行う場合には Oracle Database 19c を選択する形**で問題ないと考えています。

一方で、次のような場合には **Oracle Database 23ai** を選択する形が良いでしょう。
- Oracle Database 23aiの新機能を利用したい
- Exadata Exascale(※)を利用したい

(※)Exadata ExascaleはExadataの機能をより小規模から利用できるモデル、OCI上の Oracle Database 23ai でのみ利用可能(出典：[Exadata Exascale](https://blogs.oracle.com/oracle4engineer/post/exadata-exascale-jp))


また、特殊な場合(HAクラスタ構成にしたい、など)を除けば、OCI 上での PaaS の サポート(Extended Support) が切れる状況は遠のいたため、Oracle Database on IaaS のような形での利用を検討する必要はなくなったと言えます。欲を言えば 2023年 の時点で延長してほしかったですね。。



#### おまけ

Oracle Database 23ai の機能確認をオンプレ環境で行いたいけど、現時点で利用できる環境がない、という方は、ぜひ Oracle Database 23ai Free を利用しましょう。新機能検証やノンデグ検証は十分に行えます。
以前の Express Edition では基本的にバージョンは初期のものしかリリースされませんでしたが、23ai の Free Edition は新しいバージョンをリリースしていますので、新たな使い方ができるかもしれません。

- [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)

###### バージョン・ナンバリング

Oracle Database の Full Version は xx.xx.xx.xx.xx のような形で表現されます。
23ai から次のように RU(Release Update) のリリース年・月が4セグメント目、5セグメント目に入るようになりました。Release Updateから逆算できますが、より直感的にいつのモデルかわかるようになりましたね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313926/3f89ced9-7975-2d4b-fbdf-57a6642e1b3c.png)


- リリース番号 21c
https://docs.oracle.com/cd/F39414_01/upgrd/oracle-database-release-numbers.html

- リリース番号 23ai
https://docs.oracle.com/cd/G11854_01/upgrd/oracle-database-release-numbers.html