Oracle 18c以降でサポートされ、19c以降では推奨構成とされている「読み取り専用 ORACLE_HOME(Read-Only Oracle Home)」。
これは、運用効率・セキュリティ・可搬性を飛躍的に高める新しい構成です。
この記事では、読み取り専用 ORACLE_HOME の仕組み・構成例・有効化手順(DBCA使用含む)までを、初心者の方にもわかりやすく解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
🔰 ORACLE_HOMEとは?
Oracle Database をインストールすると、バイナリや構成ファイルなどが格納されるディレクトリが作成されます。
これが ORACLE_HOME です。
/u01/app/oracle/product/19.0.0/dbhome_1/
├── bin/
├── lib/
├── network/
└── rdbms/
従来はこの場所で構成ファイル編集やパッチ適用などをすべて行っていました。
💡 読み取り専用 ORACLE_HOMEとは?
読み取り専用 ORACLE_HOME とは、バイナリ配下の ORACLE_HOME を変更不可(読み取り専用)にし、変更ファイルやログを別ディレクトリへ分離する構成です。
📊 図で理解する構成の違い
◆ 従来構成
ORACLE_HOME
├── バイナリ
├── listener.ora などの設定ファイル
└── ログファイルなど(すべて同居)
◆ 読み取り専用構成
ORACLE_HOME(読み取り専用)
└── バイナリのみ
ORACLE_BASE_HOME(書き込み可能)
├── network/admin/ → listener.ora
├── dbs/ → spfile/init.ora
└── diagnostics/ → アラートログ、トレース
✅ メリットまとめ
| 項目 | 内容 |
|---|---|
| セキュリティ | ORACLE_HOMEの保護、誤操作防止 |
| 運用効率 | パッチの一元化が可能(1バイナリで複数DB) |
| 可搬性 | Docker等での展開が容易 |
| バックアップ性 | バイナリ部分はスナップショット可能 |
⚠️ 注意点・落とし穴
| 項目 | 内容 |
|---|---|
| 一度有効化すると戻せない | 無効化不可。戻すには再インストール |
| スクリプトの配置場所変更 | $ORACLE_BASE_HOME 配下に配置する必要あり |
| 一部ツールでの非対応 | 古いスクリプトなど要確認 |
🛠️ 読み取り専用 ORACLE_HOMEの有効化手順【公式フローに基づく】
以下は、Oracle公式の推奨手順に準拠した、読み取り専用 ORACLE_HOME の構成手順です。
① ソフトウェアのみの Oracle Database インストールを実行
インストールオプションで「ソフトウェアのみのインストール(Software Only)」を選択します。
$ ./runInstaller
→ 「ソフトウェアのみインストール」を選択
これにより、データベースはまだ作成されず、ORACLE_HOMEの準備だけが行われます。
② roohctl -enable で読み取り専用化
以下のコマンドで ORACLE_HOME を読み取り専用構成へ切り替えます。
$ORACLE_HOME/bin/roohctl -enable
✅ 成功すると、構成ファイル・ログディレクトリが $ORACLE_BASE_HOME 配下に分離されます。
③ Oracle DBCA でデータベース作成
構成が完了したら、Oracle Database Configuration Assistant(DBCA) を使ってデータベースを作成します。
$ dbca
→ 通常通りのGUIまたはコマンドラインで作成可能
このタイミングで、設定ファイル類はすべて $ORACLE_BASE_HOME に生成されます。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
📁 ディレクトリ構成の変化(具体例)
読み取り専用有効前:
/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/sqlnet.ora
読み取り専用有効後:
/u01/app/oracle/homes/OraDB19Home1/network/admin/sqlnet.ora
🔍 現在の構成確認方法
$ORACLE_HOME/bin/roohctl -status
出力例:
Read-Only Oracle Home is ENABLED
📌 Tips:構成パターン例
| 環境 | 読み取り専用の利点 |
|---|---|
| 本番環境 | 誤操作・改ざんを防止し安定運用を実現 |
| 複数DB運用 | 共通ORACLE_HOMEによる管理一元化 |
| Docker環境 | ベースイメージ最適化・差分保存が容易 |
✅ まとめ
| 項目 | 内容 |
|---|---|
| 有効化の流れ | ソフトウェアのみ → roohctl -enable → DBCAで作成 |
| メリット | セキュリティ・可搬性・パッチ一元化 |
| 対応バージョン | Oracle 18c以降(19c推奨) |
| 注意点 | 構成変更不可・ディレクトリ構成が従来と異なる |




コメント