[Oracle] データベースバージョンを確認する方法

Oracle

「使っているOracle Databaseバージョンは?」という質問について、
メジャーバージョンは把握できていても、
パッチバージョンなどを答えることが難しいケースがあると思います。

本記事ではOracle Database 19cでのバージョンを確認する方法をまとめました。
具体的な4つの方法を記載しますので、参考にしていただければと思います。

PDBのバージョンを確認する方法も追記しました。

バージョン情報について

Oracle Databaseは、主に「19.10.0.0.0」 といった5桁の数値でバージョンが表記されますが、
19cでは前半の3つの数値が重要になります。

1桁目の「19」という数字は、
メジャーバージョンのリリース番号を示しています。
Oracle Database 19cであれば、「19」となります。

2桁目の「10」という数字は、
RU(リリース・アップデート)のバージョンを示しています。
RUは不具合だけでなく、セキュリティ関連の修正を含む累積パッチです。
RUは四半期ごと(1月、4月、7月、10月)にリリースされます。

Oracle Databaseパッチ・メンテナンス
DBAの職務の1つは、Oracle Databaseソフトウェアをメンテナンスすることです。2つのメンテナンス方針があります。

3桁目の「0」という数字は、
RUR(リリース・アップデート・リビジョン)のバージョンを示しています。
「0」の場合はRURが適用されていない状態を意味しています。
ただし、RURは19.17以降で廃止されており、
その代わりに月次推奨パッチ(MRP)が月に一度リリースされるようになりました。

Oracle Databaseパッチ・メンテナンス
DBAの職務の1つは、Oracle Databaseソフトウェアをメンテナンスすることです。2つのメンテナンス方針があります。

わかりづらいのは、RUやMRPのバージョンによって、5桁目以降にもバージョン情報が含まれるケースです。
RUの場合は19.14.0.0.220118 と表記されたり、MRPの場合は19.17.0.0.221115 と表記されたりします。
どちらの場合も、3桁目までの19.14.0や19.17.0が重要なバージョン情報となります。

りお
りお

ちなみに、220118 という数値は、
2022年1月18日にリリースされたパッチであることを示しています。
たまに例外もありますが、リリース時期と覚えておいてください。

バージョン確認方法

以下に4つの確認方法をまとめます。
「v$versionから確認」はデータベース・インスタンスが起動していないと確認できませんのでご注意ください。

SQL*Plus接続時のバナーから確認

SQL*Plusからデータベース・インスタンスに接続するとバージョンを含むバナーが表示されます。
バナーにバージョン情報が含まれています。

以下はバージョンが19.14.0の場合です。

$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 23 11:17:20 2024
Version 19.14.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0

SQL>

v$versionから確認

v$versionを検索することでバージョン情報を確認することができます。
データベース・インスタンスが起動していないと確認できません。

SQL> select banner_full from v$version;

BANNER_FULL
----------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0

opatchコマンドで確認

パッチの適用やロールバックに使用するopatchコマンドで、現在のDBバージョンを確認することができます。
適用されているパッチ一覧も把握できます。

以下の場合はRU 19.14.0.0.220118 が適用されているため、DBバージョンは19.14.0です。

$ $ORACLE_HOME/OPatch/opatch lspatches
33515361;Database Release Update : 19.14.0.0.220118 (33515361)
32876380;OJVM RELEASE UPDATE: 19.12.0.0.210720 (32876380)
32923641;OCW RELEASE UPDATE REVISION 19.10.3.0.0 (32923641)

OPatch succeeded.
$

アラートログから確認

データベースインスタンス起動時にアラートログからもDBバージョンを確認することができます。

$ cd /u01/app/oracle/diag/rdbms/<DB名>/<インスタンス名>/trace/

$ less alert_<インスタンス名>.log
  :
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0.
ORACLE_HOME:    /u01/app/oracle/product/19.0.0.0/dbhome1
System name:    Linux
Node name:      xxxxxxxx.com
Release:        4.1.12-124.26.12.el7uek.x86_64
Version:        #2 SMP Wed May 8 22:25:03 PDT 2019
Machine:        x86_64
  :

PDBのバージョン確認方法

マルチテナント構成の場合、通常であればCDBとPDBのバージョンは一致しています。
ただし、他のCDBからPDBをクローンしたり、Unplug/PlugによってPDBを移動したりした場合に、CDBとPDBのバージョンが異なる場合が起こり得ます。

v$versionから確認

CDBと同様にPDBに接続してからv$versionを検索することで、PDBのバージョン情報を確認することができます。
(ただし、CDBとPDBのバージョンが異なる場合、通常はPDBに接続できませんので、datapatchコマンドで確認するようにしてください)

SQL> alter session set container = pdb1;
SQL> select banner_full from v$version;

BANNER_FULL
----------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0

datapatchコマンドで確認

datapatchコマンドを実行することで、PDBに接続しなくてもPDBバージョンを確認することができます。
datapatchコマンドは、パッチ適用時に追加で実行するコマンドですが、-prereq オプションを指定することで、チェックのみを実施することができます。

$ cd $ORACLE_HOME/OPatch
$ ./datapatch -prereq
  :
Current state of release update SQL patches:
  Binary registry:
    19.26.0.0.0 Release_Update 250118124854: Installed
  PDB CDB$ROOT:
    Applied 19.26.0.0.0 Release_Update 250118124854 successfully on 25-02-19 22:53:00.411627
  PDB PDB$SEED:
    Applied 19.26.0.0.0 Release_Update 250118124854 successfully on 25-02-19 22:55:17.113448
  PDB PDB1:
    Applied 19.26.0.0.0 Release_Update 250118124854 successfully on 25-02-19 23:01:18.406498 ★
  :

こちらの結果から、PDB1は19.26であることが分かります。

まとめ

Databaseバージョンを把握しておくことは重要です。
バージョンが不明確ですと、クライアントからの接続要件を満たせるか判断できなかったり、
バージョンによっても使える機能に違いがあるため、実現できると思っていたことができない、
といった問題に発展するかもしれません。

こちらを参考にバージョン情報を確認してみてください。

プログラミングスクールをまとめました。ぜひ参考にしてみてください。

コメント

タイトルとURLをコピーしました