Oracle11g R2 with ASMをvmwareでのインストール方法

Install Oracle 11g Release2 with ASM 
on Oracle Enterprise Linux5.3 with Vmware workstation

スクリーンショートありのPDFも作成しましたので、下記からご覧になれます。
http://dl.getdropbox.com/u/173976/Ora11gR2ASM_install.pdf

 前日、Oracle11g Release 2ようやくリリースされました。
さっそくVMWARE使って自分のノートでASMの環境を構築してみました。
ここで構築のメモとして残したいと思います。
とりあえずASMのシングルインスタンスを構築しましたが、
時間あるときまたRACを構築してメモを掲載したいと思います。
 Oracle11g R2ではDatabaseをインストール前にGrid Infrastructureをインストールする必要があります。

以下は必要な作業です:
0、概要
1、vmwareでOEL5.3のインストール
2、vmware設定の変更
3、Oracleインストール準備
4、Oracle 11g Grid Infrastructureのインストール
5、Oracleソフトウェアのインストール
6、Oracleデータベースの作成
0、概要
 今回利用する環境として、
vmware workstation 6.5 と Oracle Enterprise Linux 5.3を使用しました。
1、OEL5.3のインストール
 メモリが1500MB以上あったほうがいいでしょう。
Oracle Enterprise Linux 5.3のインストールはここで省略させていただきます。
2、vmware設定の変更
 ASMを構築するために、ディスクを三枚追加設定します。
3、Oracleインストール準備
 (1)下記のインストールパッケージを用意しましょう。
Oracleインストール必要パッケージ:
 unixODBC-devel-2.2.11-7.1.i386.rpm
 unixODBC-2-2.11-7.1.i386.rpm
 sysstat-7.0.2-3.el5.i386.rpm
 libaio-devel-0.3.106-3.2.i386.rpm
ASM構築必要なパッケージ:
 oracleasm-support-2.1.3-1.el5.i386.rpm
 oracleasmlib-2.0.4-1.el5.i386.rpm
 oracleasm.2.6.18-128.el5-2.0.5-1.el5.i686.rpm

* oracleasmlib以外全部OEL5.3のインストールDVDに入ってます。
自分のLinuxカーネルバージョンによって下記の場所から入手可能
http://www.oracle.com/technology/software/tech/linux/asmlib/rhel5.html
(2)rootユーザで下記の操作を行う
# /usr/sbin/groupadd -g 501 oinstall
# /usr/sbin/groupadd -g 502 dba
# /usr/sbin/groupadd -g 503 oper
# /usr/sbin/groupadd -g 504 asmadmin
# /usr/sbin/groupadd -g 505 asmoper
# /usr/sbin/groupadd -g 506 asmdba
# /usr/sbin/useradd -g oinstall -G dba,asmdba,oper oracle
# /usr/sbin/useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid

# mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
# mkdir -p /u01/app/grid/product/11.2.0/grid
# chown -R oracle:oinstall /u01/app/
# chown -R grid:oinstall /u01/app/grid
# chmod -R 775 /u01/

# passwd grid

# passwd oracle

# vi /etc/security/limits.conf
#ORACLE SETTING
grid                 soft    nproc   2047
grid                 hard    nproc   16384
grid                 soft    nofile  1024
grid                 hard    nofile  65536
oracle               soft    nproc   2047
oracle               hard    nproc   16384
oracle               soft    nofile  1024
oracle               hard    nofile  65536

# vi /etc/pam.d/login
#ORACLE SETTING
session    required     pam_limits.so

# vi /etc/sysctl.conf
#ORACLE SETTING
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 = 1048586

# /sbin/service ntpd stop
# chkconfig ntpd off
# mv /etc/ntp.conf to /etc/ntp.conf.org.
(3)gridユーザの環境設定を行う
* ホストネームは自分の環境に合わせて設定する
# vi /home/grid/.bash_profile
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=<ホストネーム>; export ORACLE_HOSTNAME
ORACLE_SID=+ASM; export ORACLE_SID
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid; export ORACLE_HOME

PATH=$ORACLE_HOME/bin:$PATH; export PATH

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
        umask 022
fi
(4)oracleユーザの環境設定を行う
* ホストネームは自分の環境に合わせて設定する
# vi /home/oracle/.bash_profile
# Oracle Settings oracle
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=<ホストネーム>; export ORACLE_HOSTNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM

PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
        umask 022
fi
4、Oracle 11g Grid Infrastructureのインストール
(1)パーティションの初期化
# ls sd*
sda  sda1  sda2  sdb  sdc  sdd
# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1305, default 1305):
Using default value 1305

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
#
/dev/sdc と/dev/sddに対しても同じようにパーティションを切ります。
(2)ASMLibのインストール
 上記用意したRPMパッケージを同じフォルダに格納し、「rpm -ivh *」でインストールする。
 unixODBC-devel-2.2.11-7.1.i386.rpm
 unixODBC-2-2.11-7.1.i386.rpm
 sysstat-7.0.2-3.el5.i386.rpm
 libaio-devel-0.3.106-3.2.i386.rpm
 oracleasm-support-2.1.3-1.el5.i386.rpm
 oracleasmlib-2.0.4-1.el5.i386.rpm
 oracleasm.2.6.18-128.el5-2.0.5-1.el5.i686.rpm

インストール後、ASMカーネルモジュールを設定する。
# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration:           [  OK  ]
Creating /dev/oracleasm mount point:                       [  OK  ]
Loading module "oracleasm":                                [  OK  ]
Mounting ASMlib driver filesystem:                         [  OK  ]
Scanning system for ASM disks:                             [  OK  ]
#

ASMディスクとしてマークする
# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
Marking disk "/dev/sdb1" as an ASM disk:                   [  OK  ]
# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1
Marking disk "/dev/sdc1" as an ASM disk:                   [  OK  ]
# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd1
Marking disk "/dev/sdd1" as an ASM disk:                   [  OK  ]
#

ASMディスクを探す
# /etc/init.d/oracleasm scandisks
Scanning system for ASM disks:                             [  OK  ]
#

一覧を表示する
# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
#

これでASMディスクの準備が終えました。
サービス起動させるため、いったんマシンを再起動します。
起動時のサービス起動からOracleasm関連サービスの起動が確認できます。
(3)Grid Infrastructureのインストール
 gridユーザでGUIにログインし、Grid圧縮ファイルを解凍し、
grid/runInstallerを実行し、Grid Infrastructureのインストーラを起動します。
ソフトインストールと設定を行います。
ディスクグループを選択し、ASMパスワードの入力が要求されます。
ここで設定したパスワードはのちほどDBインストール時に使用されます。
Oracle11gR2のASMは1.5GB以上のメモリがないとFailedとなり、
ここでFailedをIgnoreします。
インストールが76%の時、スクリプトの実行が要求されます。
rootユーザでスクリプトを実行します。
root.shはすこし時間かかり、OracleHAサービスの起動が確認できます。
「OK」押下し、最後までインストールを続行します。
これでGrid Infrastructureのインストールが完了します。
asmcaでディスクグループの管理ができます。
5、Oracleソフトウェアのインストール
 oracleユーザでGUIにログインし、database 1of2と2of2を同じフォルダに解凍し、
runInstallerを実行します。インストーラが開始後、
ソフトのみインストールします。
インストール中にroot.shスクリプトの実行が要求されるが、
実行しません。
これでデータベースソフトのインストールが完了します。
6、Oracleデータベースの作成
最後にdbcaでデータベースを作成します。
ストレージタイプはASMを選択し、設定したASM管理用パスワードが要求されます。
インストールステップは4つあります。三番目に自動起動の登録があります。
これで、全てのインストールが完了しました。