データベース -> ORACLE -> 環境構築(インストール)

Oracle RAC環境の構築1 [インストール準備]

Oracle の RAC環境を VMware上で構築する。

必要なものは以下のとおり
OS:
   Linux (Miracle linux 4.0)
      http://www.miraclelinux.com/

データベース本体:
   Oracle Database 10g Release2(10.2.0) For Linux x86 30日トライアル版
   Oracle Clusterware 
     http://otn.oracle.co.jp/software/products/oracle10g/index.html

参考サイト:

   Oracle RAC について
      http://www.oracle.co.jp/database/rac/index.html

   構築手順参考
      http://www.oracle.com/technology/pub/articles/smiley_rac10g_install.html



1.Oracle RAC構築 概要

自動ストレージ管理 (ASM)とは ・ストライプ化 データを分散化させパフォーマンスを最適化する。 ・ミラー化 ファイルレベルでのミラー化によりディスク障害による損失を回避。 ・RAC環境でのASMインスタンスは各サーバに1つありOracleインスタンスとして実装。

2.ハードウェア要件

VMwareのゲストOSを 2ノード作成する。

ディスク 12GB
共有ディスク OCR SCSI/sda 200MB
Voting Disk SCSI/sdb 200MB
ASM SCSI/sdc 3GB
SCSI/sdd 3GB
Swap 2GB
メモリー 1GB

3.ネットワーク設定

ホスト1[ora01]

ネットワーク eth0 143.46.43.100 ora01 パブリックLAN
eth0:1 143.46.43.104 ora01-vip 仮想IP
eth1 10.10.10.11 ora01-priv インターコネクト

ホスト2[ora02]

ネットワーク eth0 143.46.43.101 ora02 パブリックLAN
eth0:1 143.46.43.105 ora02-vip 仮想IP
eth1 10.10.10.12 ora02-priv インターコネクト
※ 仮想IP(-vip)はインストーラが構成するので設定不要
※ パブリックLANに以下のアドレスを設定するとインストーラでエラーになるので
使用しない事
192.168.*.* , 10.0.0.0 , 172.16.*.-172.31.*.*

4.インストール準備(VMware)

共有ディスクの機能設定

ゲストOS配下ディレクトリの *.vmx ファイルに以下の記述を追記する。

D:\Virtual Machines\ora01\Redhat.vmx
 disk.locking = "FALSE"
 diskLib.dataCacheMaxSize = "0"
 diskLib.dataCacheMaxReadAheadSize = "0"
 diskLib.dataCacheMinReadAheadSize = "0"
 diskLib.dataCachePageSize = "4096"
 diskLib.maxUnsyncedWrites = "0"

5.インストール準備

OSアカウントの作成

グループ
oinstall 500 Oracle Inventoryグループ
dba 501 OSDBAグループ
ユーザ
oracle 200 Oracleユーザ
nobody ※OSデフォルト 権限未付与ユーザとして

SSHの構成

	Oracle RACは 1ノードのみにインストールするが、
	SSH通信を使用してOracleインストーラが他のノードにバイナリコピーをする。

	[手順 (各ノードで実施)]

	(1) oracle ユーザでログイン (su ではなく login する)

	(2) ~/.ssh ディレクトリ(700) を作成

	(3) RSA 鍵(秘密鍵,公開鍵)を作成する。
	    $ ssh-keygen -t rsa
	      (公開鍵) oracle~/.ssh/id_rsa.pub  (秘密鍵) oracle~/.ssh/id_rsa

	(4) DSA 鍵(秘密鍵,公開鍵)を作成する。
		$ ssh-keygen -t dsa
	      (公開鍵) oracle~/.ssh/id_dsa.pub  (秘密鍵) oracle~/.ssh/id_dsa

	(5) RSA/DSA公開鍵情報を authorized_keysファイルに追加
	    $ cat id_rsa.pub >> authorized_keys
	    $ cat id_dsa.pub >> authorized_keys

	(6) authorized_keys ファイルをノード2へコピー
	    $ scp authorized_keys node2:~oracle/.ssh/.

	(7) ノード2でRSA/DSA公開鍵情報を authorized_keysファイルに追加
	    $ cat id_rsa.pub >> authorized_keys
	    $ cat id_dsa.pub >> authorized_keys

	(8) authorized_keys ファイルをノード1へコピー
	    $ scp authorized_keys node1:~oracle/.ssh/.

	(9) SSHエージェントを起動し、SSH鍵をメモリーにロードする。
		$ exec /usr/bin/ssh-agent $SHELL
		$ /usr/bin/ssh-add

	(10) 各ノードで ssh パスワードなしでログインできる事を確認
		node1(oracle)$ ssh node2
		node2(oracle)$ ssh node1
			※ 初回のみプロンプトで yes を入力する。
			
	※ 今回は oracle ユーザのため関係ないが root で ssh を設定する場合は以下の変更が必要
		/etc/ssh/sshd_config
		   PermitRootLogin yes

ノード名(各インタフェース名)の構成例

ホスト名      IPアドレス     インタフェース   種類
-----------------------------------------------------------
ora01         143.46.43.100  eth0             パブリック
ora01-vip     143.46.43.104  eth0:1           仮想
ora01-priv    10.10.10.11    eth1             プライベート
ora02         143.46.43.100  eth0             パグリック
ora02-vip     143.46.43.105  eth0:1           仮想
ora02-priv    10.10.10.12    eth1             プライベート

	※ 仮想IP はOracle インストーラが自動で構成する。
	※ VIPを構成する(eth0)アドレスはパブリックLANであること。

時刻同期

	RACを構成する各ノード間で 時間がずれているとインストール時に警告されるので
	NTP を使用して各ノード間で時刻同期を行うこと。
	
	※ 参考:VMWによる時刻同期
	

RAWパーティションの構成

	Oracle RAC用 Disk構成
		OCR Device:    /dev/sdb1  /dev/sdc1               2 Disk
		Voting Device: /dev/sdd1  /dev/sde1  /dev/sdf1    3 Disk
			* 投票ディスクは 容量25MB 以上でディスク数は奇数である事
		ASM Device:    /dev/sdg1  /dev/sdh1  /dev/sdi1    3 Disk
	
	[手順]
	(1) fdisk コマンドで各プライマリパーティションを作成する
		# fdisk /dev/sdc * 以降全デバイス
	
	(2)RAW デバイスのマッピング情報を作成 * ノード1
		/etc/sysconfig/rawdevices を以下のように作成する。
	
		# OCR
			/dev/raw/raw1    /dev/sdb1
			/dev/raw/raw2    /dev/sdc1
		# Voting
			/dev/raw/raw3    /dev/sdd1
			/dev/raw/raw4    /dev/sde1
			/dev/raw/raw5    /dev/sdf1
		# ASM
			/dev/raw/raw6    /dev/sdg1
			/dev/raw/raw7    /dev/sdh1
			/dev/raw/raw8    /dev/sdi1

	(3) RAWデバイスの有効化
		# service rawdevices start   * or restart
		
	(4) ノード2 (パーティション作成していない方のノード)で実施
		partprobe コマンドで共有ディスクパーティション状態をリフレッシュする
		
		# /sbin/partprobe /dev/sdb  * 以降 /dev/sdf 迄実施

	(5) ノード2 で (2),(3)を実施

	(6) RAWデバイスファイルの権限変更
		/dev/raw/raw[1-2]  root:oinstall    640
		/dev/raw/raw[3-5]  oracle:oinstall  640
		/dev/sdg,h,i       oracle:dba       660

	(7) 再起動時の権限設定
		/etc/udev/permission.d/oracle.permissions

		raw/raw[12]:root:oinstall:0640
		raw/raw[3-5]:oracle:oinstall:0640
		raw/raw[6-8]:oracle:dba:0660

環境変数の定義

oracle ユーザの .bash_profile に以下の記述を追加する。
export NLS_LANG=Japanese_Japan.JA16EUC
export ORACLE_BASE=/opt/oracle
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs

	※ 以下の設定は ClusterWare インストール後に設定する。

	export ORACLE_SID=orcl
	export ORACLE_HOME=/opt/oracle/oracle/10.2.0/db_1
	export PATH=$PATH:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin

クラスタ検証ユーティリティによる構成の検証

$ cd $ORACLE_BASE/clusterware/cluvfy
$ ./runcluvfy.sh stage -pre crsinst -n ノード1,ノード2 -verbose
実際の事前チェック例
ora01$ ./runcluvfy.sh stage -pre crsinst -n ora01,ora02 -verbose

クラスタ・サービス設定の事前チェックを実行しています

ノード到達可能性をチェック中...

チェック: ノード"ora01"からのノード到達可能性
  宛先ノード                                 到達可能ですか
  ------------------------------------  ------------------------
  ora01                                 はい
  ora02                                 はい
結果: ノード"ora01"からのノード到達可能性チェックに合格しました。


ユーザー等価をチェック中...

チェック: ユーザー"oracle"のユーザー等価
  ノード名                                  コメント
  ------------------------------------  ------------------------
  ora02                                 合格
  ora01                                 合格
結果: ユーザー"oracle"のユーザー等価チェックに合格しました。

管理権限をチェック中...

チェック: ユーザー"oracle"の存在
  ノード名          ユーザーが存在します                コメント
  ------------  ------------------------  ------------------------
  ora02         はい                        合格
  ora01         はい                        合格
結果: "oracle"のユーザーの存在チェックに合格しました。

チェック: グループ"oinstall"の存在
  ノード名          ステータス                     グループID
  ------------  ------------------------  ------------------------
  ora02         存在します                     500
  ora01         存在します                     500
結果: "oinstall"のグループの存在チェックに合格しました。

チェック: グループ"oinstall"内のユーザー"oracle"[プライマリ]のメンバーシップ
  ノード名              ユーザーが存在します    グループが存在します    グループ内のユーザー    プライマリ         コメント
  ----------------  ------------  ------------  ------------  ------------  ------------
  ora02             はい            はい            はい            はい            合格
  ora01             はい            はい            はい            はい            合格
結果: グループ"oinstall"内のユーザー"oracle"[プライマリ]のメンバーシップ・チェックに合格しました。

管理権限チェックに合格しました。

ノード接続性をチェック中...


ノード"ora02"のインタフェース情報
  インタフェース名                        IPアドレス                          サブネット
  ------------------------------  ------------------------------  ----------------
  eth0                            143.46.43.101                   143.46.43.0
  eth1                            10.10.10.12                     10.10.10.0


ノード"ora01"のインタフェース情報
  インタフェース名                        IPアドレス                          サブネット
  ------------------------------  ------------------------------  ----------------
  eth0                            143.46.43.100                   143.46.43.0
  eth1                            10.10.10.11                     10.10.10.0


チェック: サブネット"143.46.43.0"のノード接続性
  ソース                             宛先                              接続しましたか   
  ------------------------------  ------------------------------  ----------------
  ora02:eth0                      ora01:eth0                      はい
結果: ノードora02,ora01を持つサブネット"143.46.43.0"のノード接続性チェックに合格しました。

チェック: サブネット"10.10.10.0"のノード接続性
  ソース                             宛先                              接続しましたか   
  ------------------------------  ------------------------------  ----------------
  ora02:eth1                      ora01:eth1                      はい
結果: ノードora02,ora01を持つサブネット"10.10.10.0"のノード接続性チェックに合格しました。

サブネット"143.46.43.0"のVIPに適したインタフェース:
ora02 eth0:143.46.43.101
ora01 eth0:143.46.43.100

サブネット"10.10.10.0"のプライベート・インターコネクトに適したインタフェース:
ora02 eth1:10.10.10.12
ora01 eth1:10.10.10.11

結果: ノード接続性チェックに合格しました。


システム要件をチェック中: 'crs'...

チェック: メモリー合計
  ノード名          使用可能                      必須                        コメント  
  ------------  ------------------------  ------------------------  ----------
  ora02         1008.17MB (1032368KB)     512MB (524288KB)          合格
  ora01         1008.17MB (1032368KB)     512MB (524288KB)          合格
結果: メモリー合計チェックに合格しました。

チェック: "/tmp"ディレクトリのディスク空き領域
  ノード名          使用可能                      必須                        コメント  
  ------------  ------------------------  ------------------------  ----------
  ora02         7.83GB (8209020KB)        400MB (409600KB)          合格
  ora01         6.9GB (7233384KB)         400MB (409600KB)          合格
結果: ディスク空き領域チェックに合格しました。

チェック: スワップ領域
  ノード名          使用可能                      必須                        コメント  
  ------------  ------------------------  ------------------------  ----------
  ora02         1.98GB (2080408KB)        1GB (1048576KB)           合格
  ora01         1.98GB (2080408KB)        1GB (1048576KB)           合格
結果: スワップ領域チェックに合格しました。

チェック: システム・アーキテクチャ
  ノード名          使用可能                      必須                        コメント  
  ------------  ------------------------  ------------------------  ----------
  ora02         i686                      i686                      合格
  ora01         i686                      i686                      合格
結果: システム・アーキテクチャチェックに合格しました。

チェック: カーネル・バージョン
  ノード名          使用可能                      必須                        コメント  
  ------------  ------------------------  ------------------------  ----------
  ora02         2.6.9-11.19AX             2.4.21-15EL               合格
  ora01         2.6.9-11.19AX             2.4.21-15EL               合格
結果: カーネル・バージョンチェックに合格しました。

チェック: "make-3.79"のパッケージの存在
  ノード名                            ステータス                           コメント     
  ------------------------------  ------------------------------  ----------------
  ora02                           make-3.80-5                     合格
  ora01                           make-3.80-5                     合格
結果: "make-3.79"のパッケージの存在チェックに合格しました。

チェック: "binutils-2.14"のパッケージの存在
  ノード名                            ステータス                           コメント     
  ------------------------------  ------------------------------  ----------------
  ora02                           binutils-2.15.92.0.2-13.1AX     合格
  ora01                           binutils-2.15.92.0.2-13.1AX     合格
結果: "binutils-2.14"のパッケージの存在チェックに合格しました。

チェック: "gcc-3.2"のパッケージの存在
  ノード名                            ステータス                           コメント     
  ------------------------------  ------------------------------  ----------------
  ora02                           gcc-3.4.3-22.1.1                合格
  ora01                           gcc-3.4.3-22.1.1                合格
結果: "gcc-3.2"のパッケージの存在チェックに合格しました。

チェック: "glibc-2.3.2-95.27"のパッケージの存在
  ノード名                            ステータス                           コメント     
  ------------------------------  ------------------------------  ----------------
  ora02                           glibc-2.3.4-2.9.1AX             合格
  ora01                           glibc-2.3.4-2.9.1AX             合格
結果: "glibc-2.3.2-95.27"のパッケージの存在チェックに合格しました。

チェック: "compat-db-4.0.14-5"のパッケージの存在
  ノード名                            ステータス                           コメント     
  ------------------------------  ------------------------------  ----------------
  ora02                           compat-db-4.1.25-9              合格
  ora01                           compat-db-4.1.25-9              合格
結果: "compat-db-4.0.14-5"のパッケージの存在チェックに合格しました。

チェック: "compat-gcc-7.3-2.96.128"のパッケージの存在
  ノード名                            ステータス                           コメント     
  ------------------------------  ------------------------------  ----------------
  ora02                           欠落                              失敗
  ora01                           欠落                              失敗
結果: "compat-gcc-7.3-2.96.128"のパッケージの存在チェックが失敗しました。

チェック: "compat-gcc-c++-7.3-2.96.128"のパッケージの存在
  ノード名                            ステータス                           コメント     
  ------------------------------  ------------------------------  ----------------
  ora02                           欠落                              失敗
  ora01                           欠落                              失敗
結果: "compat-gcc-c++-7.3-2.96.128"のパッケージの存在チェックが失敗しました。

チェック: "compat-libstdc++-7.3-2.96.128"のパッケージの存在
  ノード名                            ステータス                           コメント     
  ------------------------------  ------------------------------  ----------------
  ora02                           欠落                              失敗
  ora01                           欠落                              失敗
結果: "compat-libstdc++-7.3-2.96.128"のパッケージの存在チェックが失敗しました。

チェック: "compat-libstdc++-devel-7.3-2.96.128"のパッケージの存在
  ノード名                            ステータス                           コメント     
  ------------------------------  ------------------------------  ----------------
  ora02                           欠落                              失敗
  ora01                           欠落                              失敗
結果: "compat-libstdc++-devel-7.3-2.96.128"のパッケージの存在チェックが失敗しました。

チェック: "openmotif-2.2.3"のパッケージの存在
  ノード名                            ステータス                           コメント     
  ------------------------------  ------------------------------  ----------------
  ora02                           openmotif-2.2.3-9.RHEL4.1       合格
  ora01                           openmotif-2.2.3-9.RHEL4.1       合格
結果: "openmotif-2.2.3"のパッケージの存在チェックに合格しました。

チェック: "setarch-1.3-1"のパッケージの存在
  ノード名                            ステータス                           コメント     
  ------------------------------  ------------------------------  ----------------
  ora02                           setarch-1.6-1                   合格
  ora01                           setarch-1.6-1                   合格
結果: "setarch-1.3-1"のパッケージの存在チェックに合格しました。

チェック: "dba"のグループの存在
  ノード名          ステータス                     コメント
  ------------  ------------------------  ------------------------
  ora02         存在します                     合格
  ora01         存在します                     合格
結果: "dba"のグループの存在チェックに合格しました。

チェック: "oinstall"のグループの存在
  ノード名          ステータス                     コメント
  ------------  ------------------------  ------------------------
  ora02         存在します                     合格
  ora01         存在します                     合格
結果: "oinstall"のグループの存在チェックに合格しました。

チェック: "nobody"の既存ユーザー
  ノード名          ステータス                     コメント
  ------------  ------------------------  ------------------------
  ora02         存在します                     合格
  ora01         存在します                     合格
結果: "nobody"の既存ユーザーチェックに合格しました。

システム要件が失敗しました 'crs'

クラスタ・サービス設定の事前チェックはすべてのノードで失敗しました。

失敗内容を解析してみると、パッケージ関連の欠落が原因だが、
インストール時には問題がでないので、これで継続する。


先頭へ

      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google