Oracle 11g検証 RAC構築 その1

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

みなさま、明けましておめでとうございます。
2008年に入り、2週間が経ちました。
正月ぼけが治り始めたころではないでしょうか?

2008年最初のメルマガは、「Oracle11g検証」。
昨年末にリリースされたばかりの、Oracleの新バージョン “11g” について、
新機能を中心に紹介していきたいと思います。

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

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

それでは、2008年も張り切って、
スタート!

---------------------------------------------------------------------
[登場人物]
印旛: 主人公(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構築成功編

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

~2007年、年末が近づいたある日の印旛くんと岸田先輩の会話~

「いやぁ、岸田さん今年はかなりRACのインストールをしましたよ」
「ふぅーん。どんくらいやったんだよ?」
「社内のテストインストールも含めたら、30回位は!
もう構築は楽勝ですよ!」
「へぇー。そういえば、11gRACがリリースされたけど」
「えっ? (それはどういう意味だろうか?) 」
「当然、検証するんだよね?」
「・・・・・・。当然ですっ!!」

ということで、私、印旛が11gRAC構築の検証をすることになりました。
2006年に連載させていただいた、私のドタバタ構築日記に続いて、2007年も
RAC構築にはかなりお世話になりました。
9i、10gR2、そして、OSについてもintel Solaris、Linux、sparc Solarisと
様々な環境でのRAC構築を経験しました。

そして、なんといっても毎回一筋縄でいかないのが、RAC構築の醍醐味!

よし早速、いつも通りマニュアルを読んで、事前準備をしよう!
と、思ったらまたもや岸田さんが近づいてくる・・・。
なんかやな予感。

「印旛くん、さっき言い忘れたんだけど、どうせ検証するならLinuxの最新の
バージョンでやって。Oracle Enterprise Linux 5 が出てるから」
「あ、はい、わかりました」

まじか!!
最新のバージョンだと、色々あるんだよなぁ。

「なんか問題ある?」
「いえ、なんでもありません。ただ、最新のバージョンだと、今までにない
エラーとかがありそうだなぁ、と」
「だから検証するんでしょ?」
「そうですね。頑張ります」

それでは、気を取り直してマニュアルから見てみよう。
今まで色々経験した結果、RAC構築をうまくやるコツは、きっちり準備すること。
こんな感じで準備するといいんだな。

1.マニュアルを3回読む
2.自作の手順書を作成する
3.krown、MetaLinkで該当するバージョンの最新情報を入手する
4.自作手順書を修正する
5.インストールを開始する

まずは、マニュアルを読もう。
とりあえずは、Oracle社提供の以下のマニュアルを3回読む!

Oracle Clusterware Installation Guide
11g Release 1 (11.1) for Linux
B28263-02 August 2007

Oracle Database Installation Guide
11g Release 1 (11.1) for Linux
B32002-03 September 2007

ふむふむ。
11gになっても、インストール手順自体は10gR2の時と変わらないみたいだな。
違うのはやっぱりOSのソフトウェア要件くらいかな。
これは、10gR2の時もそうだったけど、しっかりMetaLinkで確認して最新の情
報を仕入れた方がよさそうだ。

では、早速自作手順書を作ってみよう。

MetaLinkやkrownで確認してみると、10gR2の時と違うところは・・・
まずソフトウェア要件のRPMパッケージ、それから、OSがLinuxのバージョンが
5になったことで、共有ディスクの設定方法が変わったみたいだな。

共有ディスクの設定方法はマニュアルにはなかったなぁ。
危なかった・・・。

———————————————————————-
<事前準備>
▼ソフトウェア要件の確認
→以下のコマンドで確認する
インストールされていないパッケージがあった場合は、OSメディアから
追加する。

確認コマンド:

# rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})n' binutils
compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel
elfutils-libelf-devel-static elfutils-libelf-devel glibc
glibc-common glibc-devel glibc-headers gcc gcc-c++- libaio
libaio-devel libgcc libgomp libstdc++- libstdc++-devel make
sysstat unixODBC unixODBC-devel

▼各種設定
・カーネルパラメータの設定
・/etc/security/limits.confファイルの設定
・/etc/pam.d/loginファイルの設定
・/etc/profileファイルの設定

▼ネットワーク設定
・/etc/hostsファイルの設定

▼OSユーザ関連設定
・インストール用OSユーザの作成
(ora11gというOSユーザを作成)

▼SSHの構成
→インストール時のノード間通信用にSSHを構成する

▼共有ディスクの設定(RAWデバイスの設定)
Linuxのバージョン4までは、Rawデバイスサービスによって、パーティション
をバインドしていたが、バージョン5からは、下記のような手順でRawデバイス
を使用します。

○fdiskコマンドを使用して、
共有ディスク上に必要なパーティションを作成する
→今回は、OCR用、Voting Disk用、ASM用DiskGroup×2の4つの領域を作成。
4つ目以降のパーティションは、拡張領域を指定して、その中を区切る
必要があるので注意!

「ここまでは、Linux4の時と一緒だ。
ここからが少し違うんだな。
Linux4までだと、ここから/etc/sysconfig/rawdevicesっていうファイルを
編集して、Rawデバイスサービスを再起動すると、
パーティションがRawデバイスとして認識されてたけど、
Linux5は、Rawデバイスのマッピングを設定するには、
以下のファイルを編集する必要があるらしい。
早速やってみよう」

○パーティションのマッピング設定
# vi /etc/udev/rules.d/60-raw.rules

→以下の内容を追記する

### Oracle11gR1 RAC RawDevices ###
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdb5", RUN+="/bin/raw /dev/raw/raw5 %N"

○rc.localファイルの編集

# vi /etc/rc.local

→以下の内容を追記する

### Oracle11gR1 RAC RawDevices ###
chown root:oinstall /dev/raw/raw1
chown ora11g:oinstall /dev/raw/raw2
chown ora11g:dba /dev/raw/raw3
chown ora11g:dba /dev/raw/raw4
chown ora11g:dba /dev/raw/raw5
chmod 660 /dev/raw/raw*

○最後にパーティションを初期化する

# dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=100
# dd if=/dev/zero of=/dev/raw/raw2 bs=1024k count=100
# dd if=/dev/zero of=/dev/raw/raw3 bs=1024k count=100
# dd if=/dev/zero of=/dev/raw/raw4 bs=1024k count=100
# dd if=/dev/zero of=/dev/raw/raw5 bs=1024k count=100

***手動設定方法は以下のコマンド***

# /bin/raw /dev/raw/raw1 /dev/sdb1
# /bin/raw /dev/raw/raw2 /dev/sdb2
# /bin/raw /dev/raw/raw3 /dev/sdb3
# /bin/raw /dev/raw/raw4 /dev/sdb4
# /bin/raw /dev/raw/raw5 /dev/sdb5

▼Oracleインストールディレクトリの作成
例)

# cd /opt/app
# mkdir -p oracle
# chown -R ora11g:oinstall oracle

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

よし。
事前準備のところまでの手順書はできたぞ。

「印旛さん、何やってるんですか?」
「あ、亀井くん。今から11gRACのインストールをするところだよ。
一緒にやってみる?」
「あ、いや。今ちょっとやることがあるので、また今度お願いします」
「それなら、なんで話しかけたの?」
「いやいやいや。ほっほっほっほ」

亀井くんってなんか変だよなぁ・・・。

「よし、今日はきりがいいし、インストールはまた明日続きをやろう」

来週は、インストーラを起動します。
すんなりとインストールできるでしょうか???