11gR2 Real Application Clusters(RAC) のインストール
本ページではVMwareを用いた11gR2 RAC(2node)のインストールの方法をまとめています。1 構成・インストール前準備
2 Grid Infrastructureソフトウエアのインストール
3 データベースソフトウエアのインストール
4 データベースの作成
補足
構成
OS、アプリケーションVMwareのバージョン | VMware Server 2.0.1 |
ホストOS(VMwareを起動させている実OS) | WindowsXp Professional x86(メモリ:3GB) |
ゲストOS(VMware上のOS) | CentOS5.4 x86(メモリ:1152MB※) |
注意
・メモリ、OSのディストリビューション、VMware上での稼動という3点でからサポート対象にはなりません。
・CentOSへRACのインストールを行った場合サポート対象OSではないためACFS関連のリソースがインストールされません。
ゲストOSのハードウエア構成
CPU | 2 processors |
Scsi DISK1(サイズ:8GB(※1)) | OS用。パーティション分割しそれぞれswap領域、/boot、/ としてmount |
Scsi DISK2(サイズ:8GB(※1)) | Oracleのソフトウエア用。/appとしてmount |
Scsi DISK3※2(サイズ:8GB) | 共有ディスクとしてASM用ディスクとして使用 |
ネットワークアダプター1(eth0) | パブリックLAN用。VMware上の接続形態は「Brigged」 |
ネットワークアダプター2(eth1) | プライベートLAN用。VMware上の接続形態は「HostOnly」 |
※1 このサイズだとかなりギリギリです。
途中でインストールメディアを置く領域が足りなくなる可能性があるので12GB位にしたほうが無難です
※2 DISK3は全てのノードから参照させる必要があるため、この手順で仮想共有DISKとして構成します。
ゲストOSのネットワーク構成
・ドメイン名 localdomain
・DNSへの登録 しない
eth0 | eth1 | ||||||
SCAN名 | SCAN IP | ホスト名 | パブリックIP | 仮想ホスト名 | 仮想IP | プライベートホスト名 | プライベートIP |
cluster1 | 192.168.1.9 ※ |
vm1 | 192.168.1.5 | vip1 | 192.168.1.7 | priv1 | 192.168.11.130 |
vm2 | 192.168.1.6 | vip2 | 192.168.1.8 | priv2 | 192.168.11.131 |
(=SCAN名に対してpingを打つと1回目はIP1、2回目はIP2、3回目はIP3、4回目はIP1から結果が戻る)
本ページの手順ではDNSに登録せずhostsにより単一のIPアドレスで名前解決していますが、
DNSを設定してSCANを有効にするには「補足ページ」と「RACへの接続ページ」も合わせてご確認ください。
/etc/hosts
127.0.0.1 localhost.localdomain localhost 192.168.1.9 cluster1 cluster1.localdomain 192.168.1.5 vm1 vm1.localdomain 192.168.1.6 vm2 vm2.localdomain 192.168.1.7 vip1 vip1.localdomain 192.168.1.8 vip2 vip2.localdomain 192.168.11.130 priv1 priv1.localdomain 192.168.11.131 priv2 priv2.localdomain※1 定義した全てのhost名はドメイン名で修飾された名前(FQDN)でもIPアドレスに変換できるように設定します。
つまり、host名がvm1,ドメイン名がlocaldomainであった場合、「vm1」だけではなく「vm1.localdomain」も
IPに解決できるようにhostsで定義します。
※2 ゲストOSのネットワークアダプター1はホストOSのNICをブリッジしてインターネットに接続させるため、
ゲストOSのパブリックIPはホストOSのパブリックIPと同一ネットワークセグメント内のIPで定義します。
(vipとSCAN IPも同一ネットワークセグメント上のIPで定義します)
ORACLEのインストール構成
ファイル | 配置場所 |
Grid Infrastructureソフトウエア | DISK2(ローカルディスク上の/app/11.2.0/grid配下) |
Databaseソフトウエア | DISK2(ローカルディスク上の/app/ora112/product/11.2.0/dbhome_1配下) |
OCR、VOTING DISK | DISK3(ASM) |
制御ファイル、データファイル、REDOログ | DISK3(ASM) |
手順概要
No | 作業対象 | 作業内容 |
1 | ゲストOS1 | ゲストOSのインストール |
2 | ゲストOS1 | 必須パッケージのインストール |
3 | ゲストOS1 | サービスの停止と起動 |
4 | ゲストOS1 | ntpdをslewモードに変更 |
5 | ゲストOS1 | カーネルパラメータの設定 |
6 | ゲストOS1 | oracle用のOSユーザ及びOSグループの作成 |
7 | ゲストOS1 | リミット制限の設定 |
8 | ゲストOS1 | raw デバイスの定義 |
9 | VMware | ゲストOS1からゲストOS2を複製 |
10 | VMware | VMware上の仮想共有DISKの設定 |
11 | ゲストOS1、2 | ネットワーク及びホスト名の設定 |
12 | ゲストOS1 | Grid Infrastructureソフトウエアのインストール |
13 | ゲストOS1 | Oracle データベースソフトウエアのインストール |
14 | ゲストOS1 | DBCAによるデータベースの作成 |
手順詳細
ゲストOSのインストールVMwareにてゲストOS1を上記ハードウエア構成と同じように構成します。
ゲストOS2については時間短縮のためゲストOS1のVMware構成ファイルをコピーして作成するので作成不要です
1. CentOS5.4のx86用のISOイメージをダウンロードします
ISOイメージは各ミラーサイトからダウンロード可能です。
・ミラーサイト一覧
http://isoredirect.centos.org/centos/5/isos/i386/
今回は独立行政法人理化学研究所からダウンロードしました。
http://ftp.riken.jp/Linux/centos/5.4/isos/i386/
→CentOS-5.4-i386-bin-DVD.iso (約3.7GB)
2. ダウンロードしたISOイメージをVMware上のCD/DVDドライブに割り当てます
3. VMwareを起動するとインストールが始まります。
DISK3はASMで利用するためRAWデバイスである必要がありますのでファイルシステムとしてフォーマットはしないでください
必須パッケージのインストール
CentOSはRHELから商用パッケージを除いてビルドしたディストリビューションであるため、 RHEL5用の必須パッケージをインストールすればよいと考えられるのでRHEL5の必須パッケージをインストールします。
RHEL5 x86環境の必須パッケージは以下の通りですがバージョンは厳密に一致している必要はなくこれより上位であれば問題ありません
マニュアル Grid Infrastructureインストレーション・ガイドfor Linux より抜粋
binutils-2.17.50.0.6 compat-libstdc++-33-3.2.3 elfutils-libelf-0.125 elfutils-libelf-devel-0.125 elfutils-libelf-devel-static-0.125 gcc-4.1.2 gcc-c++-4.1.2 glibc-2.5-24 glibc-common-2.5 glibc-devel-2.5 glibc-headers-2.5 kernel-headers-2.6.18 ksh-20060214 libaio-0.3.106 libaio-devel-0.3.106 libgcc-4.1.2 libgomp-4.1.2 libstdc++-4.1.2 libstdc++-devel-4.1.2 make-3.81 sysstat-7.0.2 unixODBC-2.2.11 unixODBC-devel-2.2.11 |
インストール方法は以下のいずれかが一般的です(いずれもrootで実行)。
・yum -y install <パッケージ名>
・rpm -ivh <パッケージ名>
・ランレベル5で起動し、デスクトップ画面からのGUI(ソフトウエアの追加/削除(パッケージマネージャー))
また、インストール済みパッケージは以下の結果より確認可能です。
# rpm -qa本環境の実行結果
サービスの停止と起動
NetworkManagerデーモンが起動しているとネットワークインターフェースの挙動が怪しくなる為停止します。
(今回のテストにおいては突然IPが変わったりNICがダウンするといった事象が発生)
# chkconfig NetworkManager offまた、ntpdとrawdevicesサービスを起動するように設定します。(rawdeviceサービスはudevにてrawデバイスを定義するのであれば不要です。)
# chkconfig ntpd on # chkconfig rawdevices on現在の設定は以下で確認できます。
# chkconfig --list本環境の実行結果
ntpdをslewモードに変更
ntpによる時刻補正方法にはstepモードとslewモードがあり以下の違いがあります。
・stepモード・・・一度に時刻を補正する
・slewモード・・・徐々に時刻を補正する
RAC環境ではslewモードである必要があるため/etc/sysconfig/ntpd を以下のように修正します。
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"
↓
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
カーネルパラメータの設定
以下の推奨パラメータを/etc/sysctl.confに追記します。なお、既に設定がされていて値が推奨値より大きいパラメータは追加不要です。
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586oracle用のOSユーザ及びOSグループの作成
今回はora112というOSユーザを使用してGrid Infrstructure、データベースをインストールすることとします。
なお、11.2からASMはgrid Infrastructureに含まれるようになったことに起因して ASMインスタンスの管理者グループはdbaではなくasmdbaグループに変更されていますので注意が必要です。
# groupadd oinstall # groupadd dba # groupadd asmdba # useradd -g oinstall -G dba,asmdba ora112 # passwd ora112 --変更後パスワードを聞かれるのでパスワードを入力リミット制限の設定
1. 次の行を/etc/security/limits.confファイルに追加します。
ora112 soft nproc 2047 ora112 hard nproc 16384 ora112 soft nofile 1024 ora112 hard nofile 655362. /etc/pam.d/loginに次の行が存在しない場合追加します。
session required pam_limits.so3. 次の行を/etc/profileファイルに追加します。
if [ $USER = "ora112" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi firaw デバイスの定義
DISK3(本環境では/dev/sdc)を2つのパーティション(/dev/sdc1,/dev/sdc1)に分割します。
# fdisk /dev/sdc →n(領域の作成)→p(基本領域の作成)→領域番号:1、最初 シリンダ:1、サイズ:522(4GB)→w(書き込み) →n(領域の作成)→p(基本領域の作成)→領域番号:2、最初 シリンダ:523、サイズ:522(4GB)→w(書き込み)また、今回はASMLIBによるDISKのマーキングは行わないため OS起動時に自動的にこの二つのパーティションをrawデバイスとして認識させ、 rawデバイスは適切なオーナー(Grid Infrastructureのインストールユーザ、今回はora112)、 グループ(ASM管理グループ、今回はdba)、パーミッション(660)が設定される必要があります。
この対応のためudevのrawデバイスに対するルールを記載する/etc/udev/rules.d/60-raw.rulesを以下のように修正します。
/etc/udev/rules.d/60-raw.rules
# Enter raw device bindings here. # # An example would be: # ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N" # to bind /dev/raw/raw1 to /dev/sda, or # ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m" # to bind /dev/raw/raw2 to the device with major 8, minor 1. ACTION=="add",KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add",KERNEL=="sdc2", RUN+="/bin/raw /dev/raw/raw2 %N" KERNEL=="raw1",OWNER="ora112",GROUP="oinstall",MODE="0660" KERNEL=="raw2",OWNER="ora112",GROUP="oinstall",MODE="0660"ゲストOS1からゲストOS2を複製
1. ゲストOS1を停止します。
2. VMwareの構成ファイルをディレクトリごと別のディレクトリにコピーします。
3. ゲストOS2のvmxファイル(ゲストOSを配置しているディレクトリにある拡張子がvmxのファイル)の
displayNameパラメータを別名に修正します。
例)
displayName = "centOS5.4_1" ↓ displayName = "centOS5.4_2"4. VMware管理画面の上部にあるツールバーの「Virtual Machine」→「Add Virtual Machine to Inventory」にて3.で修正したvmxファイルを読み込みゲストOS2を追加します。
VMware上の仮想共有DISKの設定
DISK3はASM用の領域として全てのノードから参照できなければならないため、本来であれば共有ディスクやNASストレージである必要があります。 今回は以下の手順でゲストOS2からDISK3を参照できるようにし、仮想共有DISKを構成します。
1. ゲストOS2の管理画面よりDISK3を削除します
2. ゲストOS2において「Add Hardware」→「Hard Disk」→「Use an Existing Virtual Disk」
を選択し、locationにゲストOS1のDISK3を指定し追加します。
3. ゲストOS1と2両方のvmxファイルにて以下を追記します。
なお、「0:2」の部分は一定ではなく異なる場合があるのでvmxファイル内のDISK3の定義と同じようにあわせます。
disk.locking="false" diskLib.dataCacheMaxSize=0 diskLib.dataCacheMaxReadAheadSize=0 diskLib.dataCacheMinReadAheadSize=0 diskLib.dataCachePageSize=4096 diskLib.maxUnsyncedWrites=0 scsi0:2.shared = "true" scsi0:2.writeThrough = "TRUE"ネットワーク及びホスト名の設定
以下はゲストOS1、ゲストOS2両方で作業します
1. /etc/hostsを以下のように変更します。
127.0.0.1 localhost.localdomain localhost 192.168.1.9 cluster1 cluster1.localdomain 192.168.1.5 vm1 vm1.localdomain 192.168.1.6 vm2 vm2.localdomain 192.168.1.7 vip1 vip1.localdomain 192.168.1.8 vip2 vip2.localdomain 192.168.11.130 priv1 priv1.localdomain 192.168.11.131 priv2 priv2.localdomain2. /etc/sysconfig/networkのホスト名の部分(以下の例ではvm1)を修正します。
NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=vm1.localdomain3. /etc/sysconfig/network-scripts/ifcfg-eth[0|1]を修正してeth0とeth1のIPアドレスを特定の値に固定します。
IPアドレスの値は上述の設定の通りに設定します
ゲストOS1の例)
[root@vm1 network-scripts]# cat ifcfg-eth0 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth0 BOOTPROTO=none IPADDR=192.168.1.5 NETMASK=255.255.255.0 NETWORK=192.168.1.0 BROADCAST=192.168.1.255 ONBOOT=yes [root@vm1 network-scripts]# cat ifcfg-eth1 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth1 BOOTPROTO=none IPADDR=192.168.11.130 NETMASK=255.255.255.0 NETWORK=192.168.11.0 BROADCAST=192.168.11.255 ONBOOT=yes設定完了後OS再起動を行い、ifconfig -a の結果から意図したIPアドレスが登録されているか確認します。
1 構成・インストール前準備
2 Grid Infrastructureソフトウエアのインストール
3 データベースソフトウエアのインストール
4 データベースの作成
補足