Oracle新人のRACインストール その11

投稿日: 2006年7月12日

<Oracle新人のRACインストール その11>
ペンネーム: world famous beagle

今週は、先週に引き続きCRSのインストール作業です。
ついに、CRSのインストールをスタートした印旛くんですが、その後は・・・。

インストールスタート!
「お、順調にゲージが青くなっていってるな。2%」

このまま100%までいってくれるといいけど・・・。
—30分経過—
「おっと、75%!」

いけいけーーーーーーー!

「印旛くん、君マルチタスクで働けないの?」
「マルチタスク?」
「君いま、仕事してないよね?」
「あ、はい・・・」
「今までのところでわからない言葉とか調べることはたくさんあるでしょ?」
「はい。そうです」
「じゃあ、よろしく」

怒られちゃった・・・。
言われてることがあたってるだけにどうしようもない・・・。

「あ、92%!」
うん、もう少しだからこれに集中しよう。

「お、なんか画面が出てきた。orainstRoot.shとroot.shを流せばいいのか。
エラーメッセージかと思った。セーフ」

なんかできそうだぞ。

「rootユーザで実行するって書いてあるから、rootになってと」

# /opt/app/oracle/oraInventory/orainstRoot.sh
# /opt/app/oracle/product/10.2.0/root.sh

    ・
    ・
    ・
    ・
CSS is active on all nodes.
Waiting for the Oracle CRSD and EVMD to start
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
The given interface(s), "eth0" is not public. Public interfaces 
should be used to configure virtual IPs. 
This issue is specific to Oracle 10.2.0.1 (noted in bug 4437727) 
and needs to be resolved before continuing. The easiest workaround 
is to re-run vipca (GUI) manually as root from the last node in which
 the error occurred. Please keep in mind that vipca is a GUI and 
will need to set your DISPLAY variable accordingly to your X server:

「CRSのサービスは起動したみたいだけど、VIPCAを起動しなさい、って言われ
てるな。なんでだろ???」

■VIPの設定
VIPCAを起動して、VIPを構成しなさいって事だけど、一体どういうことなのか
さっぱりわからないな。

まずは・・・
—–VIPとは—–
VIPとは、パブリックLAN(クライアントマシンに繋がるLAN)に、バインドさ
れる、もう1つのIPアドレスのことです。特定の物理的なインターフェースを
必要としません。CRSは、VIPの使用が可能です。
VIPはOracleのサービスが対応づけられるIPアドレスとなり、そのサービスが
データベースに接続するとき、サービスに結び付けられたVIPに対して接続を
行います。
このため、ノードが故障などでダウンした場合は、VIPは別のノードに移動す
ることができます。
VIPを利用してクライアントから接続することで、もし、ノード障害で接続で
きなくなったとしても、クライアントは正常に稼動しているノードに自動的に
接続先を切り替えることができるということです。

「あ、なるほどRACの冗長性を支える機能のことか」
けど、ノード障害の時にどういう風に切り替わるのかイメージがわかないな。

「あの、岸田さん、VIPっていうのがやっぱりよくわかってない気がするんで
すけど」
「は?よくわからないじゃ、こっちもどうしようもないよ」
「・・・・・・、障害の時にどうなるのかな、と」
「やってみればいいじゃん。社内の別のRAC環境で障害を起こしてみればいい
でしょ?」
「あ、なるほど。どうやったら、障害を起こせるんですか?」
「インターコネクト障害が一番、手っ取り早いかな。インターコネクトを片側
だけぬけばいい」
「はい。わかりました」

—–VIPが障害時にどのように働くか—–
2ノードRACの場合(node1、node2)
インターコネクト障害の発生シュミレーション

「じゃあ、インターコネクトを抜くから、tailでCRSのアラートログを見て、
ifconfigでVIPが生き残ってるノードに移るのを確認しなよ」
「テールって何ですか?」
「・・・・・」
「えっと、CRSのログは、
ORA_CRS_HOME/log//alert.logですよね?」
「うん、それをtailして、っていってんだけど」
「テール、テール、テール」
「コマンドで、tail -f で、リアルタイムではかれるログがみれ
るから」
「あ、そういうことですか」
「Unixのコマンドもちゃんと勉強しといて」
「はい・・・・」
「じゃあ、抜くよ」

$ tail -f $ORA_CRS_HOME/log//alert.log
$ tail -f alertpc200.log
2006-06-22 12:43:13.080
[cssd(2888)]CRS-1605:CSSD投票ファイルがオンラインです:
 /dev/raw/raw2。詳細は/opt/app/oracle/product/10.2.0/crs/
log//cssd/ocssd.logを参照してください。
2006-06-22 12:43:16.944
[cssd(2888)]CRS-1601:CSSDの再構成が完了しました。
アクティブ・ノードは  です。
2006-06-22 12:43:31.070
[crsd(3683)]CRS-1012:The OCR service started on node .
2006-06-22 12:43:31.079
[evmd(3415)]CRS-1401:EVMDがノードで起動されました。
2006-06-22 12:43:35.424
[crsd(3683)]CRS-1201:CRSD started on node .
2006-07-09 15:24:51.250
[cssd(2888)]CRS-1601:CSSDの再構成が完了しました。
アクティブ・ノードは です。
2006-07-09 15:25:11.765
[crsd(3683)]CRS-1204:Recovering CRS resources for node .

# ifconfig
active node
eth0:1    Link encap:Ethernet  HWaddr 00:11:43:E1:E7:96
          inet addr:192.168.0.108  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Base address:0xdcc0 Memory:dfae0000-dfb00000

eth0:2    Link encap:Ethernet  HWaddr 00:11:43:E1:E7:96
          inet addr:192.168.0.109  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Base address:0xdcc0 Memory:dfae0000-dfb00000

「あ、ほんとだ。node2の方の、VIPのアドレスが移ってきましたね」
「そう、これで、障害時でもOracleは正常に動作するでしょ?」
「すごいわかりました。ありがとうございます」

—–VIPCA—–
よし、VIPについてはわかってきたから設定してみよう。
VIPCAは、/opt/app/oracle/product/10.2.0/crs/bin/vipcaだったな。
rootユーザになってと・・・

# pwd
/opt/app/oracle/product/10.2.0/crs/bin
# vipca

・ネットワークインターフェースの指定
「お、やっぱり勉強してよかったな。
これは、パブリックLANの方を指定すればいいね」

・仮想IPアドレスの指定
「各ノードのVIPアドレスを指定すればOKだな」

・サマリー画面
「もう一度確認して・・・。あれもう終わりかな?なんか簡単だったな」

■CRSの起動確認
「斉藤くん、CRSのインストールしたんだけどさ、本当にCRSのサービスが起動
しているか、ってどうしたらわかるの?」
「CRSのサービスには、CRS、CSS、EVMというものがあって、OS側から確認する
ことができますよ」
「うん。それでどうすればいいの?」
「psコマンドでプロセスをみることができるので、あとはサービス名をgrepし
て見ることができるはずです」
「ん?ごめん、ちょっと難しくてよくわかんない」
「えっと、psコマンドに、-efというオプションをつけて、あとは、grepの後
にプロセス名を入れるとそのプロセスが起動していれば表示されます」
「うーーん」
「あ、見てみましょうか?」
「ほんと?いいかな?」
「はい。じゃあ例えば」

$ ps -ef | grep crs (カタ、カタカタカタカタカタ パンッ!)
oracle 2862 2861 0 Jun22 ? 00:00:00 /bin/sh -c ulimit -c unlimited;
  cd /opt/app/oracle/product/10.2.0/crs/log//cssd;  
  /opt/app/oracle/product/10.2.0/crs/bin/ocssd  || exit $?
oracle 2888 2862 0 Jun22 ? 00:11:47 
  /opt/app/oracle/product/10.2.0/crs/bin/ocssd.bin
oracle 3415 3677 0 Jun22 ? 00:00:56 
  /opt/app/oracle/product/10.2.0/crs/bin/evmd.bin
oracle 3986    1 0 Jun22 ? 00:00:00 
  /opt/app/oracle/product/10.2.0/crs/opmn/bin/ons -d
    .
    .
    .
    .
oracle 15298 7027 0 18:08 pts/1 00:00:00 grep crs

「おー。さすが斉藤くん」
「CRSのプロセスは起動しているみたいですね」
「うん、ありがとう」

やっと、CRSのインストールができた!!
よく考えたら、まだ、Oracleには関係なかったな。
いよいよOracleだな。簡単だといいな・・・。

————————————————————————–
デジカメを買おうと思っていますが、
どれを買えばいいのかさっぱりわかりません。
機能、デザイン、画素数、色々考えるともっとわかりません。

なんでも色々考えるとわからなくなることがありますね。

simple is best!!