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

<Oracle新人のRACインストール その8>
ペンネーム: “world-cup” famous beagle

今回は、Oracleの環境変数の設定についてです。
また、前回のメルマガの内容について、読書の方々よりメールが届いておりま
すので、訂正させていただきます。

「おはようございまーす」

よし、今日も一日頑張るぞ!
あれ、岸田さんの姿が見えないな・・・。

「富樫さん、今日岸田さん、まだ来てないですか?」
「今日、岸田さん風邪で休みだってさ」
「本当ですか!?やったー、じゃあのびのびですね」
「ずいぶん、ご機嫌だね」
「あ、いやそんなことないですけど。心配だなぁ」

今日は、気分が楽だな。
とりあえずゆっくりメールのチェックでもしようかな。
“送受信”
“岸田さんよりメールが届いています”

「ん?岸田さんからメールだ。やな予感・・・」

————————————————————–
印旛くん
今日は休みますが、RACのインストールはしっかり進めて下さい。
おそらく君は、環境変数を理解していないので、富樫くんか斉藤くんに聞いて
下さい。

あと、先週のSSHについては、文章が間違っています。
勉強しなおして、訂正してください。
————————————————————–

やっぱり厳しいメールだ。休んでるのに存在感があるな・・・。
恐るべし・・・。
きちんと勉強しなおして、訂正しよう。

早速、先週の訂正から。
岸田さんのメールの感じだと、自分の理解はあってるということでいいのかな。
文章の表現がまずかったみたいだけど・・・。
まずは、読み直すしかないか。

—読み直し中—

んー、やっぱりどこが間違っているかは、わからないな。
勉強しなおすしかないか。よし。

「ふむふむ。あ!やっぱり前回のメルマガの書き方だと違う!」

皆様、申し訳ありませんでした!
訂正させて頂きます。

前回のメルマガの記述で誤りがあった部分は、
## SSHは、公開鍵を使ってデータを暗号化し、秘密鍵を使ってデータを元に戻
## します。
## RACの場合は、各ノードで秘密鍵と公開鍵を作り、公開鍵を集めて、全ての
## ノードで持っていれば、SSHで通信することが可能になります。
という部分です。

もう少し詳しく説明すると、SSHは、お互いの認証には公開鍵を使い、実際の
通信には共通鍵を作成して暗号化を行っています。

SSHを理解するうえで重要なポイントは、”ユーザ認証”と”暗号化”といえます。
SSHの設定手順は、前回メルマガを参考にしていただいて、どのような流れで、
SSHの通信が行われているかというと・・・

1.(RACの場合は、)公開鍵、秘密鍵を作成し、各サーバで公開鍵を交換しあう
2.初回のSSH接続時に、接続する側が公開鍵を接続される側に送る
3.接続される側が、その公開鍵の情報を~/.ssh/known_hostsに登録する
→ ユーザ認証
4.セッション毎に、通信を暗号化するための、共通鍵を発行する
5.SSH通信が暗号化される

よし、それじゃ勢いに乗って、環境変数に移ろう!
岸田さんのいうとおり、全くなんのことかわからないけど・・・。

「斉藤くん、環境変数っていうのは何?」
「えっと、それはLinuxの場合は、envコマンドで見ることが出来ますよ。
システムの属性を記録している関数のことです」
「そうなんだ。システムの属性って何?」
「OSの環境変数というのは・・・。例えば、Oracleの環境変数ならば、Oracle
の実行ファイルが置いてあるディレクトリを指定することで、Oracleが起動で
きるようになります。
指定されていないとOracleのモジュールをインストールしても、Oracleは起動
できません」
「うーん。かなり重要ってことだよね?」
「きちんと設定だけすれば何も問題ないですよ」
「なるほど。設定はどうやってするの?」
「僕の場合は、いつもoracle_envというテキストファイルにOracleの環境変数
を入れて、.bash_profileに登録してますけど、方法は何でも大丈夫ですよ」
「何でも大丈夫?けど、その方法でやってみる」

なんか斉藤くん冷たくなった気がするな・・・。
簡単なことばっかり聞くなってことかな。

とにかく設定してみよう。

■Oracleユーザのホームディレクトリへ移動
$ cd /home/oracle

■Oracle用の環境変数のテキストファイルを作成する
(ファイル名は、"oracle_env")
$ vi oracle_env

###Oracle10gR2  環境変数###
export ORACLE_SID=******(任意のOracle用システムID)
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
export PATH=${PATH}:${ORACLE_HOME}/bin:${ORA_CRS_HOME}/bin
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib
export NLS_LANG=japanese_japan.JA16SJIS

■oracle_envを.bash_profileに登録する
$ cd /home/oracle
$ vi .bash_profile

###Oracle10gR2###
. oracle_env

一つ一つ調べていくと・・・

■ORACLE_SID
OracleデータベースのシステムIDを指定します。
■ORACLE_BASE
Oracleがインストールされているベースディレクトリを指定します。
■ORACLE_HOME
実際にOracleがインストールされるディレクトリを指定します。
通常は、ORACLE_BASE/product/バージョン/dbとします。
■ORA_CRS_HOME
Clusterwareがインストールされるディレクトリを指定します。
通常は、$ORACLE_BASE/product/バージョン/crsとします。
■PATH
各種モジュールのサーチパスを設定します。
今までのサーチパスに加え、ORACLE_HOME/binを追加します。
■LD_LIBRARY_PATH
各種モジュールが必要とする、共有ライブラリのサーチパスを設定します。
今までのサーチパスに加え、ORACLE_HOME/libを追加します。
■NLS_LANG
Oracleが表示するメッセージはデフォルトでは、英語ですが、環境変数を設定
することで日本語が表示されます。

うーん、Oracleがこの環境変数を読み込んで起動するのか。
あんまりイメージがわかないな。

「富樫さん、Oracleの環境変数の設定はできたんですが、あまりイメージがわ
かないんですけど」
「環境変数がどういうものかは、わかったんでしょ?あとは、やってみるしか
ないね」
「あ、そうですか。やればわかる系ですね?」
「そうそう。試しに環境変数設定しないでインストールしてみたら?」
「それだと、Oracleが動かないんですよね?」
「うん。けどインストールの時はどうなるんだろうね?
なんでうまくいかないかがよくわからないんでしょ?」
「あ、確かにそうです。あと、”.bash_profile”っていうのはなんですか?」
「それは、telnetでログインしたときに一番初めに読み込まれるファイルだよ。
そこに、Oracleの環境変数を入れとけば、いちいちORACLE_HOMEとかをexport
しなくてもよくなるってこと」
「なるほどー」

環境変数は、やっぱりインストールして実際にOracleを動かしたらイメージが
わきそうだな。
とにかく先に進むしかない!

印旛くんのRACインストール作業も、少しずつですがOracleに関係するところ
まで進んできました。
何事もきちんとした準備をすることが大切ですよね。
頑張りましょう。

practice makes perfect!!