Oracle 11g検証 RAC構築 その2
<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ユーザをいくつ用意
するか、事前に決めておく必要があるな。
よし、環境変数を設定しなおして、もう一度チャレンジしよう。