WinにVirtualBoxでOracle DB 環境構築! Solaris に Oracle Database を インストールする


Oracle Universal Installer は root でインストールできない

Oracle Universal Installer ですが、root ではインストールできません。
root でインストールしようとするとエラーになります。

root@solaris:/mnt/sf_oracle/database# pwd
/mnt/sf_oracle/database
root@solaris:/mnt/sf_oracle/database# ./runInstaller

ユーザーがrootです。ユーザーがrootの場合、Oracle Universal Installerはインストールを続行できません。

root@solaris:/mnt/sf_oracle/database#

必要なユーザとグループ

Oracle Databaseクイック・インストレーション・ガイド によると次のユーザとグループが必要とのこと。

  • Oracleインベントリ・グループ(通常はoinstall)
  • OSDBAグループ(通常はdba)
  • Oracleソフトウェア所有者(通常はoracle)
  • OSOPERグループ(オプション。通常はoper)

今回はユーザ「oracle」とグループ「oinstall」「dba」を作成します。

Oracleインベントリ・グループの存在の確認

今回は、Oracle DB のインストールは初めてなので問題ないのですが、ガイドでは複数インストールの場合のチェック方法についても記載されています。確認だけしておきます。

次のコマンドを入力して、Oracleインベントリ・グループが既に存在するかどうか確認します。

# more /var/opt/oracle/oraInst.loc

当然、初めてなのでファイルはありません。次のようになりました。

root@Solaris:~# more /var/opt/oracle/oraInst.loc
/var/opt/oracle/oraInst.loc: No such file or directory
root@Solaris:~# 

Oracleソフトウェアをシステムに初めてインストールするときに、Oracle Universal InstallerによりoraInst.locファイルが作成されるようです。Oracle Universal Installerは、このファイルをみてOracleインベントリ・グループ名 と Oracleインベントリ・ディレクトリのパスを識別します。
ファイルがある場合、内容は次のような感じ

inventory_loc=central_inventory_location
inst_group==<<group>>

central_inventory_locationが Oracle中央インベントリの場所、<<group>>が中央インベントリへの書込み権限のあるグループ名です。既にOracleインベントリがある場合は、すべてのOracleソフトウェアのインストールで同じOracleインベントリを使用します。また、インストールに使用するすべてのOracleソフトウェア・ユーザーにこのディレクトリへの書込み権限が必要です。

oinstallとdbaグループの作成

root@Solaris:/# cat /etc/group | grep oinstall
root@Solaris:/# cat /etc/group | grep dba
root@Solaris:/#

作成前なので、まだoinstallとdbaのグループはありません。

root@Solaris:/# /usr/sbin/groupadd -g 200 oinstall
root@Solaris:/# /usr/sbin/groupadd -g 201 dba

グループを作成します。

root@Solaris:/# cat /etc/group | grep oinstall
oinstall::200:
root@Solaris:/# cat /etc/group | grep dba
dba::201:
root@Solaris:/#

グループが作成されていることが確認できました。

Oracleソフトウェア所有者ユーザーの作成

root@Solaris:/# id -a oracle
id: invalid user name: "oracle" 
root@Solaris:/# 

作成前なので、まだoracleユーザはありません。

root@Solaris:/# /usr/sbin/useradd -d /export/home/oracle -m -s /bin/bash -g oinstall -G dba oracle
root@Solaris:/# 

ユーザを作成します。プライマリ・グループ に oinstall、セカンダリ・グループ に dba を指定します。

root@Solaris:/# id -a oracle
uid=100(oracle) gid=200(oinstall) groups=200(oinstall),201(dba)
root@Solaris:/# 

ユーザが作成されていることが確認できました。

VM マウントディレクトリ のパーミッション

今度は、Oracle Universal Installer を使って oracleユーザ でインストールします。

root@Solaris:~# su - oracle
Oracle Corporation    SunOS 5.11    11.3    September 2015

oracle に シェルのユーザを切り替えます。

oracle@Solaris:~$ cd /mnt/sf_oracle/
-bash: cd: /mnt/sf_oracle/: Permission denied
oracle@Solaris:~$ 

このままでは、oracle ユーザでは Oracle Universal Installer へアクセスできません。

oracle@Solaris:~$ ls -l /mnt/
total 8
drwxrwx---   1 root     vboxsf      4096  8月 20日  12:48 sf_oracle
oracle@Solaris:~$ 

パーミッションをみると、ユーザもグループも、oracleユーザへのアクセス権限がありません。vboxsfは、virtualboxグループのようです。

oracle@Solaris:~$ su -
Password: 
Oracle Corporation	SunOS 5.11	11.3	September 2015
root@Solaris:~#

root に シェルユーザを戻します。

root@Solaris:~# usermod -G oinstall,dba,vboxsf oracle
root@Solaris:~#

oracleユーザをvboxsfに所属させました。usermodコマンドでは、追加するグループのみ記述するのではなく、既存に加えて追加するグループを記述します。

root@Solaris:~# id -a oracle
uid=100(oracle) gid=200(oinstall) groups=200(oinstall),100(vboxsf),201(dba)
root@Solaris:~#

グループに vboxsf が追加されたことを確認できました。これで Oracle Universal Installer にアクセスできるようになります。

Oracleベース と Oracleデータファイル・ディレクトリ

Oracleベース と Oracleデータファイル・ディレクトリを設定できます。この作業は省略できます。ただ省略した場合、デフォルト設定は次のようになります。

Oracleベース・ディレクトリ

Oracleインベントリ・ディレクトリはインストールを実行するユーザーのホーム・ディレクトリに配置され、Oracleソフトウェアは、パス/app/owner (ownerはOracleソフトウェア・インストール所有者)にインストールされます。
この環境では次のようになります。

Oracleベース
/export/home/oracle/app/oracle

Oracleインベントリ・ディレクトリ
/export/home/oracle/app/oraInventory

Oracleソフトウェアディレクトリ
/export/home/oracle/app/oracle/product/12.1.0/dbhome_1

Oracleデータファイル・ディレクトリ

Oracleデータファイル・ディレクトリを作成しない場合、データファイルをOracleベース・ディレクトリのサブディレクトリにインストールできます。ただし、本番データベースでは推奨されていません。
この環境では次のようになります。

Oracleデータファイル・ディレクトリ
/export/home/oracle/app/oracle/oradata

※参考:Oracle Databaseクイック・インストレーション・ガイド:必要なディレクトリ

Oracleベース・ディレクトリの作成

デフォルトのディレクトリでよければ、ここの処理は省略できます。
今回は、Oracleベース・ディレクトリを以下にしました。

/oracle/app/oracle

Oracleベース・ディレクトリを作成する前に、十分な空きディスク領域を持つ適切なファイルシステムを識別する必要があります。

root@Solaris:/# df -k
Filesystem           1024-blocks        Used   Available Capacity  Mounted on
rpool/ROOT/solaris      31739904     4993719    20682668    20%    /
/devices                       0           0           0     0%    /devices
/dev                           0           0           0     0%    /dev
ctfs                           0           0           0     0%    /system/contract
proc                           0           0           0     0%    /proc
略
root@Solaris:/#

/ 直下に oracle/app/oracle を作りますが、 / のファイルシステム rpool/ROOT/solaris には20G 以上の空き容量が使えるので問題ないようです。

root@Solaris:/# mkdir -p /oracle/app/oracle
root@Solaris:/#

/oracle/app/oracle ディレクトリを作成しました。

root@Solaris:/# chown -R oracle:oinstall /oracle
root@Solaris:/# 

所有者およびグループをoracleユーザーおよびoinstallグループに変更しました。

root@Solaris:/# echo "export ORACLE_BASE=/oracle/app/oracle" >> /etc/profile
root@Solaris:/# 

Oracle Universal Installer に Oracleベース・ディレクトリ をパスを認識させるために、環境変数「ORACLE_BASE」を設定します。認識させておくことで、Oracle Universal Installer時に、Oracleインベントリ・ディレクトリとOracleソフトウェアディレクトリを自動生成してくれます。

root@Solaris:/# source /etc/profile
Oracle Corporation	SunOS 5.11	11.3	September 2015
root@Solaris:/# 

環境変数を反映します。

root@Solaris:/# env | grep ORACLE_BASE
ORACLE_BASE=/oracle/app/oracle
root@Solaris:/# 

環境変数が反映されているのが確認できました。

Oracleデータファイル・ディレクトリの作成

デフォルトのディレクトリでよければ、ここの処理は省略できます。
今回は、Oracleデータファイル・ディレクトリを以下にしました。十分に容量のあるファイルシステムに作ります。

/oracle/oradata

root@Solaris:~# mkdir -p /oracle/oradata
root@Solaris:~# 

/oracle/oradata ディレクトリを作成しました。

root@Solaris:/# chown -R oracle:oinstall /oracle
root@Solaris:/# 

所有者およびグループをoracleユーザーおよびoinstallグループに変更しました。

Oracle Database 共有メモリー・リソースの要件

Oracle Databaseクイック・インストレーション・ガイド によると 必要な共有メモリー・リソースは以下のようになっています。

■ RAM 1から16GB
物理メモリー・サイズの半分

■ RAM 16GBよりも大きい
8GB以上

今回は、RAMが 5GBなので、2.5GB(2621440000)以上を project.max-shm-memory に設定する必要があります。

root@Solaris:~# su - oracle
Oracle Corporation	SunOS 5.11	11.3	September 2015
access control disabled, clients can connect from any host
oracle@Solaris:~$ 

シェルの実行権限を ユーザ oracle に移します。

oracle@Solaris:~$ prctl -n project.max-shm-memory -i process $$
process: 2474: -bash
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
project.max-shm-memory
        usage           1.80MB   
        privileged      1.22GB      -   deny                                 -
        system          16.0EB    max   deny                                 -
oracle@Solaris:~$

project.max-shm-memory が共有メモリ・リソースの最大値です。Oracle がチェックするのは特権メモリ(privileged) なので値を確認すると 1.22GB 。今回は全然足りない・・・。設定の変更は、「Solaris パラメータ project.max-shm-memory 設定変更!Oracle Universal Installer (OUI) 前提条件のチェック」を参考にしてください。

root@Solaris:~# su - 
Oracle Corporation	SunOS 5.11	11.3	September 2015
access control disabled, clients can connect from any host
root@Solaris:~# 

設定が終わったら root にシェルの実行権限を戻します。

DISPLAY変数の設定

Oracle Universal Installer ではコンソールでなくGUI(※X Window System)を使ってインストールします。コンソールからGUIを起動させるための設定です。

root@Solaris:~# echo "export DISPLAY=:0.0" >> /etc/profile
root@Solaris:~# echo "xhost +" >> /etc/profile

DISPLAY変数の設定をします。

root@Solaris:~# source /etc/profile
xhost:  unable to open display ":0.0"
root@Solaris:~# 

source /etc/profile で設定を反映させます。unable to open display と表示されたら、コンソールを再起動して再度 source /etc/profile でうまくいきました。上記結果は失敗です。

root@Solaris:~# source /etc/profile
access control disabled, clients can connect from any host
root@Solaris:~# 

再起動後、うまくいきました。

これで、Oracle DB をインストールする準備ができました。次からはいよいよインストールです。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です