2026年1月20日火曜日

【RHEL環境】日本企業で主流のRed HatにOracle Database Express Editionを導入する:モダナイズへの第一歩

 日本のエンタープライズ領域において、サーバーOSとして圧倒的なシェアを誇るのが Red Hat Enterprise Linux (RHEL) です。

将来、データベースの専門家として現場で活躍するためには、RHEL環境でのOracle構築スキルは避けて通れません。今回は、あえて旧バージョンである「Oracle Database 11g Express Edition (XE)」をRHELに導入した記録をまとめます。


1. なぜ今、あえてOracle 11gをRHELで学習するのか?

現在、多くの日本企業では、長年稼働し続けて保守期限が切れた Oracle 11g が、システムの「塩漬け」状態で残っています。

これらのレガシーシステムを最新環境へ移行(モダナイズ)するためには、まず現状の11gがどのような仕様で動いているのかを正確に把握しなければなりません。本番環境を想定した再現と、将来のPostgreSQL等への移行シミュレーションを見据え、今回は Oracle 11gの学習のために この環境を構築します。

※注意点 今回使用する「Express Edition (XE)」は、あくまで学習・開発用のエディションです。本番環境での利用は想定されておらず、商用ライセンス版とは制限事項が異なる点に十分注意してください。


2. 事前チェック:Swap領域の確保

Oracle Databaseは、物理メモリが十分であっても、一定の**Swap領域(仮想メモリ)**が割り当てられていることをインストールの前提条件としています。RHELでの環境構築において、ここで躓くケースが非常に多いため、必ず最初に確認しましょう。

(1) 現在のSwap領域を確認する方法

まず、現在のシステムでSwapがどの程度割り当てられているかを確認します。

Bash
# メモリとSwapの使用状況を表示
free -m

ここで Swaptotal が 2048MB(2GB)以上あれば、Oracle XEの導入には十分です。もし「0」であったり、数百MBしかない場合は、以下の手順で増設が必要です。

(2) Swap領域が不足する場合の増加方法

パーティションを切り直すのはリスクがありますが、RHELでは「スワップファイル」を作成することで、動的に領域を増やすことが可能です。

手順1:スワップファイルの作成(2GB分)

Bash
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

手順2:権限の設定とスワップ形式への変換

セキュリティのため権限を絞り、スワップとして初期化します。

Bash
sudo chmod 600 /swapfile
sudo mkswap /swapfile

手順3:スワップの有効化

Bash
sudo swapon /swapfile

(3) 再起動への対応(設定の永続化)

上記の設定だけでは、OSを再起動するとSwap設定が消えてしまいます。 日本企業のシステム運用において「再起動したらデータベースが起動しなくなった」という致命的なトラブルを防ぐため、設定を永続化させます。

/etc/fstab ファイルの末尾に、以下の行を追記してください。

Bash
# エディタで編集
sudo vi /etc/fstab

# 末尾に追加する内容
/swapfile swap swap defaults 0 0

なぜ再起動の考慮が必要なのか? Linuxは起動時に /etc/fstab を参照します。ここに書き忘れると、再起動後にSwapが消え、Oracleの起動失敗や深刻なパフォーマンス低下を招きます。設定後は一度OSを再起動し、再度 free -m でSwapが有効か確認するのが、実務における最も確実な手順です。


3. インストールの実践プロセス

Swapの準備ができたら、Oracle 11gR2 XE を導入します。

(1) パッケージの解凍

ダウンロードしたzipファイルを展開します。

Bash
unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip

(2) RPMパッケージのインストール

sudo を利用して特権で実行します。

Bash
cd disk1
sudo rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm

4. インストール先と環境設定の理解

インストールが終わると、システム内の /u01/app/oracle/ という階層にファイルが配置されます。これはOracleが推奨する標準ルール(OFA)に基づいた構成です。

  • 実行プログラムの場所(ORACLE_HOME): /u01/app/oracle/product/11.2.0/xe/ この中の bin フォルダに sqlplus などの重要なコマンドが格納されています。

  • データの保存場所: /u01/app/oracle/oradata/

インストールしただけでは、OSはこれらのコマンドの場所を認識していません。そのため、後述する環境変数の読み込みが必要になります。


5. データベースの設定と起動

バイナリの設置が終わったら、設定用スクリプトを sudo で実行してポートやパスワードを定義します。

Bash
sudo /etc/init.d/oracle-xe configure

実行中、対話形式で以下の入力を求められます。

  1. HTTPポート: デフォルトの 8080 を使用

  2. リスナーポート: 標準の 1521 を使用

  3. 管理ユーザー(SYS/SYSTEM)のパスワード: 任意のものを設定

  4. OS起動時の自動起動設定: 実際の運用を想定し y を選択

接続の確認(環境変数の読み込み)

最後に、実際にログインできるか確認します。環境変数の読み込みは現在のユーザーセッションに対して行うため、sudo は不要です。

Bash
# Oracleの環境変数を現在のセッションに読み込む
. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

# SQL*Plusで接続
sqlplus system/設定したパスワード

Connected to: Oracle Database 11g Express Edition... と表示されれば、構築成功です!


6. まとめ:モダナイズへの第一歩

今回の検証を通じて、日本企業の現場で今なお残る「11g環境」を再現することができました。

  1. 「塩漬け」環境の理解: 学習を通じて古い仕様やディレクトリ構造を把握することで、将来の移行時に直面する差異を正確に予想できます。

  2. インフラ設定の重要性: Swapの永続化など、DB以前のOSレイヤーでの設定がシステムの安定稼働を支えていることを再認識しました。

今後はこの環境を「移行元」に見立て、PostgreSQLへのモダナイズ(移行)で直面する技術的課題を一つずつ解明していきたいと思います。




0 件のコメント:

コメントを投稿