Oracle 11g検証 RAC構築 その2

投稿日: 2008年1月23日

<Oracle11g検証 第1弾 11gRAC構築 その2>
ペンネーム: world famous beagle

先週に引き続き、今週は、11gRAC構築その2。

先週から11gRAC構築のポイントを紹介させていただいています。
過去のメルマガ、「10gRAC構築日記」も参考にしていただければと思います。

「Oracle新人のRACインストール」
https://old.insight-tec.com/mailmagazine/ora3/vol291.html

それでは、今週も早速スタート!

---------------------------------------------------------------------
[登場人物]
印旛:  主人公(RACのインストールにはめっぽう強い)
亀井:  印旛の後輩
岸田:  印旛の先輩(Master of Oracle)
大波:  印旛の先輩(サーファーセキュリティコンサルタント)

[検証環境]
OS: Oracle Enterprise Linux 5 (32bit)
Oracle: 11.1.0.6 (32bit)
Clusterware: Oracle Clusterware 11.1.0.6

[その1]
1. 昨年のRAC構築
2.11gRACインストールの事前準備
・RAWデバイスのバインディング方法の違い

[その2]
3. 11gRACインストールにチャレンジ
・ディレクトリ構成(DBとCRSは別構成)
・インストーラが少し変わってる!

[その3]
4. 11gRAC構築成功編

———————————————————————

「あ、亀井くん、おはよう」
「おはようございます」
「今日さ、昨日の続きで11gRACのインストールやるんだけど、一緒にやる?」
「あ、じゃあやってみちゃおうかなぁ」
「今日はやる気だね」

「亀井っ!ちょっと!!」

「亀井くん、大波さんがよんでるよ」
「あ、ちょっと行ってきます」

今日も亀井くんはRACのインストールできなさそうだな・・・。

まぁいっか。事前準備はRAWデバイスの所でちょっとつまずいたけど、うまく
できたし、早速、Xwindowの設定をして、インストーラを動かしてみよう。

ここからの手順を整理すると・・・
■Clusterwareモジュールのインストール
■Databaseモジュールのインストール
■データベースの作成(ASMインスタンスの作成を含む)

こんな感じか。
まずは、インストーラを起動する事前準備からスタート!!

▼Oracleインストール用OSユーザでログイン

▼SSHのユーザ等価関係を有効にする

$ exec /usr/bin/ssh-agent $SHELL
$ /usr/bin/ssh-add

▼環境変数の設定

$ export DISPLAY=:0.0
$ export ORACLE_HOME=/opt/app/oracle/product/11.1.0/crs
$ export ORACLE_BASE=/opt/app/oracle
$ export TMP=/home/ora11g/ora_tmp
$ unset LANG

▼インストーラの起動

$ cd /clusterware
$ ./runInstaller

おーーーーっと。
OUIがあがってきた!!!

ここからは、順番にOUIで設定する項目を・・・

———————————————————————
<Clusterware OUI設定画面>

■インストール先ディレクトリの指定
→Clusterwareホームディレクトリを指定する
例) /opt/app/oracle/product/11.1.0/crs

■クラスタ構成の指定
→クラスタを構成するネットワーク設定(/etc/hostsの設定)を指定する
・Public Node Name
・Private Node Name
・Virtual Host Name

■ネットワークインタフェースの使用方法の指定
例)
eth0 → パブリック
eth1 → プライベート

■OCRの配置先Rawデバイスファイルの指定
例) /dev/raw/raw1

■Voting Diskの配置先Rawデバイスファイルの指定
例) /dev/raw/raw2

■インストール開始

■root.sh(VIPが自動構成される)
———————————————————————

意外とすんなりClusterwareはインストールできたな。
続けてDatabaseもインストールしちゃおうかな。

▼環境変数の設定

$ vi .bash_profile
### Oracle 11gR1 RAC環境変数 ###
export ORACLE_SID=racdb1
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db
export ORA_CRS_HOME=$ORACLE_BASE/product/11.1.0/crs
export PATH=${ORACLE_HOME}/bin:${ORA_CRS_HOME}/bin:$PATH
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib32:${ORACLE_HOME}/lib

▼インストーラの起動

$ cd /clusterware
$ ./runInstaller

お。
OUIが上がってきたぞ。順調だな。

———————————————————————
<Database OUI設定画面>

■インストールタイプの選択
→[Standard Edition]を選択する

■インストール先の指定
・Oracleベースを指定する
例) /opt/app/oracle
・ソフトウェアのインストール先(Oracleホーム)を指定する
例) /opt/app/oracle/product/11.1.0/db

**********エラー発生!!!!!!!!**********

お。エラーが出た。
やっぱりRACのインストールは、こうでなくっちゃ!!
調査開始!!
———————————————————————

あれ?なんか、ソフトウェアのインストール先のディレクトリ権限が
ないみたいだな。
昨日インストールディレクトリを作った時に、確かにchownコマンドで変えた
はずだし、Clusterwareのインストールはできたのに、なんでだろ???
まぁ見てみるか。

$ cd /opt/app
$ ls -ltra
drwxr-xr-x 4 root   oinstall 4096 Oct 18 19:06 oracle

「あれ?!」

CRSホームはどうだろ?
10gR2の時と比較すると・・・

▼ORACLE_BASE(/opt/app/oracle)

$ pwd
/opt/app
$ ls -la
drwxr-xr-x   5 oracle      oinstall       4096  9月 12 10:37 oracle

▼ORA_CRS_HOME(/opt/app/oracle/product/10.2.0/crs)

$ pwd
/opt/app/oracle/product/10.2.0
$ ls -la
drwxr-xr-x  45 root   oinstall 4096  9月 13 16:49 crs

▼ORACLE_BASE(/opt/app/oracle)

$ pwd
/opt/app
$ ls -la
drwxr-xr-x 4 root   oinstall 4096 10月 18 19:06 oracle
drwxr-xr-x 7 ora11g oinstall 4096 10月 22 14:38 ora11g

▼ORA_CRS_HOME(/opt/app/oracle/product/11.1.0/crs)

$ pwd
/opt/app/oracle/product/11.1.0
$ ls -la
drwxr-xr-x 35 root oinstall 4096 10月 18 19:05 crs

ほほぅ。
「/opt/app/oracle」っていうディレクトリが、Clusterwareをインストールす
ると、権限がrootになるんだな。
10gR2の時は、そんなこと意識する必要なかったのにな。

「印旛さんどうしたんですか?」
「あー、亀井くん。今ね、RACのインストールしてるんだけど、Clusterwareを
インストールしたら、勝手にORACLE_BASEのディレクトリ権限がora11gから
rootに変ってて、databaseのインストールが進まないんだよ」
「へー、そんなこともあるんですね」
「うん。10gR2の時はそんなことなかったんだけどな」
「まぁ、でも変わっちゃうんならそうなんじゃないですか?
最近、日本版SOX法とかでアカウント管理って結構厳しくなってるんですよ」
「お、なんかセキュリティコンサルタントっぽいこと言うね。
大波さんにちょっと聞いてみよっかな」

「大波さん、今11gRACのインストールしてるんですけど、どうやら、11gからは、
CRSホームとDBホームの、Oracleベースを共有できないみたいなんですよ。
ClusterwareのOUIの中で自動的に、権限がrootに変更されてしまって、
Databaseのインストールの時に、権限チェックに引っ掛かるんです亀井くん
がアカウント管理と関係あるんじゃないですか?
みたいなことを言ってたんですけど、セキュリティと関係ありますかね?」
「なになに?何を言ってるかよくわかんないな、お前は。
ClusterwareとDatabaseでプロセスの実行ユーザが違うの?」
「あ、はい。Clusterwareは一部rootで起動するプロセスがあります」
「へー、なるほどね。
確かに、J-SOXとか内部統制でアカウント管理って重要なんだよね。
特にDBAみたいな特権ユーザの監査とかって、重要。
だから、Databaseを操作するOSユーザの権限範囲を小さくしたり、
限定的にできるのは考え方としては理にかなってるな」
「なるほど」
「ただ、今のこの問題はアカウント管理とはあんまり関係ないね。
インストーラでのチェックが11gになって、10gの時よりも、
詳細になったっていう感じだな」
「あ、そうですか。やっぱり”インストール時の注意点”的な感じですね」
「うーん。まぁそうだな。
今後はそういうとこもケアしていかなきゃいけないかもね」
「はい。ありがとうございます!」

なるほど、勉強になったな。
今回はひとまず、OSユーザは一つのままで、
ディレクトリだけ、ClusterwareとDatabaseでわけて再チャレンジしてみよう。

<再チャレンジ開始>
▼環境変数の設定

               $ vi .bash_profile

               ### Oracle 11gR1 RAC環境変数 ###
               export ORACLE_SID=racdb1
→ 変更箇所    export ORACLE_BASE=/opt/app/ora11g
→ 変更箇所    export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db
→ 変更箇所    export ORA_CRS_HOME=/opt/app/oracle/product/11.1.0/crs
               export PATH=${ORACLE_HOME}/bin:${ORA_CRS_HOME}/bin:$PATH
               export LD_LIBRARY_PATH=${ORACLE_HOME}/lib32:${ORACLE_HOME}/lib

▼インストーラの起動

$ cd /clusterware
$ ./runInstaller

———————————————————————
<Database OUI設定画面>

■インストールタイプの選択
→[Standard Edition]を選択する

■インストール先の指定
・Oracleベースを指定する
例) /opt/app/ora11g
・ソフトウェアのインストール先(Oracleホーム)を指定する
例) /opt/app/ora11g/product/11.1.0/db

よし、これでいけるだろ。
いけ!!

■クラスタインストールモードの指定
→ クラスタ構成するノード名を指定する

■前提条件のチェック
→ OUIが自動でインストール要件をチェックします

**********エラー発生!!!!!!!!**********

PATH環境変数をチェック中…
チェックが完了しました。このチェックの全体的な結果: 失敗しました <<<<
問題: インストーラにより、PATH環境変数に他のORACLE_HOMEの場所が含まれ
ていることが検出されました。
推奨: PATH環境変数から他のORACLE_HOMEの場所を削除した後、インストーラ
を再起動します。

**************************************

うわっ!
またエラーだ。環境変数か。
PATHに、ORACLE_HOME/binとORA_CRS_HOME/binが入ってるのがダメなんだ。
大波さんの言うとおり、やっぱりClusterwareとDatabaseでOSユーザをわけて、
それぞれに環境変数を設定しろってことなんだな。

この辺も、やっぱり11gになってインストーラのチェックが詳細になった、
ってことだな。
本番環境へのインストールの時は、ディレクトリ構成、OSユーザをいくつ用意
するか、事前に決めておく必要があるな。

よし、環境変数を設定しなおして、もう一度チャレンジしよう。