OracleDatabaseのアップグレード（バージョンアップ）やパッチ適用の手助けとなるツール、ORAdiffについて。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/6a9ab494-7767-cbcd-d020-5d563400a4fd.png)
※製品チームマネージャー マイクさんの2023/8/8ブログより
https://mikedietrichde.com/2023/08/08/oradiff-is-live-compare-two-oracle-database-and-patch-releases/

## ORAdiffとは何か

Oracle Databaseのリリース間（RUレベル）の変更差分（追加/削除/変更）を確認できるサイトです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/bc5c8b32-4bd5-2d9a-399c-248f605c0444.png)


## ORAdiff概要

#### 何の変更差分（追加/削除/変更）を確認できるのか

* パラメータ
* ユーザー、ロール
* 権限
* 修正内容
* Oracleホーム
* オブジェクト
など

#### 対応バージョン
* 11.2.0.4　～　23c Free Developer Release

今後、9iや10gに関しても対応予定とのことなので追って確認します

## 利用ケースの例

Oracle Databaseのリリース間（RUレベル）で
* 追加された初期化パラメータを確認する
* デフォルト値が変更された初期化パラメータがあるのかどうか確認する、変更された場合どういった値に変更されたのか確認する
* 削除されたシステム権限を確認する

__新バージョンのDB向けに作る詳細設計のインプット情報として利用したり、運用手順やバッチスクリプトの修正点の洗い出しに活用できます。__

以下のようなケースが考えられます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/9b11bc95-4d74-7cc8-6cbb-656dfae43e6e.png)


Oracle Databaseのアップグレードやパッチ適用検討時に、旧バージョンと新バージョンでマニュアルの読み込み&地道な比較作業が発生します。

そのような場合において、__マニュアルの調査時間を短縮して業務効率化に貢献するのがORAdiff__ です。


## ORAdiffの内部動作

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/950de13a-4af2-2a2e-488a-cc514ad65cc5.png)

内部的にはそれぞれのV$ビューやデータディクショナリ等の各列の項目の比較を行っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/c78ce5d5-028f-a8e8-6ded-6a971d4fde4c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/114fe3ed-c32f-aea6-51e3-1a7ebcd6000b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/179948f3-efdd-d4ef-0a65-89e81f870a50.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/296e796c-d1fa-58c8-e6e1-672d969e0ab6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/75b0ef47-fa5b-80e3-7b4b-ead745b2fe93.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/3b11a2a0-8a59-cf77-ab54-5c7601bf0c35.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/0671ec6f-7a35-6c52-aacb-bd69685520e4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/a477a684-6dfb-8826-fdb1-b53ba7965aa6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/980ff07a-7a9d-7ef7-c663-218492d653ba.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/970ea6f3-d6a4-cf21-e91d-0f7475bdcfa4.png)

## ORAdiffの注意点

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072159/01ba6482-e44d-4264-65b2-e0c1ec1baaa3.png)

前述したとおり、ORAdiffでは初期化パラメータ等の確認項目に関して、2つのOracle Databaseリリース間(RUレベル)で __追加・削除・変更__ を確認することが出来ます。

ただ、 __非推奨となった確認項目に関してはORAdiffでは検知できない__ ことに注意が必要です。

例えば、19cから"CLUSTER_DATABASE_INSTANCES"は非推奨の初期化パラメータになりましたが、このことはORAdiffでは検知できません。

非推奨について調査したい場合は、従来と同様に以下のようなマニュアルを読みます。

https://docs.oracle.com/cd/F19136_01/upgrd/behavior-changes-deprecated-desupport-oracle-database.html#GUID-3B4A4004-C1B6-4F35-A43F-DBBFA2F00EEA

## ORAdiffのアクセス情報

https://oradiff.oracle.com/

ログインする時はサポート契約を結んでいるOracle SSOアカウントでログインできます。

## その他関連リンク
* 製品担当Mikeのブログ

https://mikedietrichde.com/2023/08/08/oradiff-is-live-compare-two-oracle-database-and-patch-releases/

* 製品担当Jorgeのブログ

https://www.dbarj.com.br/en/2023/08/oradiff-find-the-differences-between-two-oracle-database-releases/