2012年6月26日星期二

Oracle 11gR2集群安装之VirtualBox

安装步骤上参考了以下链接: Oracle VirtualBox 安装 Oracle 11gR2 RAC.

安装步骤:

1, 准备安装介质
Oracle ClusterWare 11gR2
Oracle Database 11gR2x64
数据库最好也使用64bit的, 虽然使用32bit的也可以安装成功, 但安装的过程中会出现错误.

2, 配置VM
Note: 我最终使用的是OEL5.5x64版本安装成功的, 不要使用32b版本的OEL, 笔者尝试了很多次均安装失败. 笔者使用的两台VirtualBox虚拟机如下:
VM1:  oel55-rac1
VM2:  oel55-rac2 (从VM1克隆过来)
Note: 不要直接新建两台VM, 那样会导致大量的重复功能. 笔者采用的方式是先创建VM1, 作好相关的配置之后从VM1克隆出VM2, 然后只需要作少量的更改即可.

2.1, Apply OS patch (VM1)
需要安装如下补丁包:
binutils
compat-libstdc++-33
elfutils-libelf
elfutils-libelf-devel
gcc
gcc-c++
glibc
glibc-common
glibc-devel
glibc-headers
ksh
libaio
libaio-devel
libgcc
libstdc++
libstdc++-devel
make
sysstat
unixODBC
unixODBC-devel
oracleasm
oracleasm-support
另外还需要从oracle站点上下载oracleasmlib-2.0.4-1.el5.x86_64.rpm进行安装, 以及安装ClusterWare压缩包中的cvuqdisk-1.0.7-1.rpm.

2.2, User & Group Configuration(VM1)
# 新建用户&组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle

mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 755 /u01

# 配置oracle用户的~/.bash_profile
export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_HOSTNAME=rac1.localdomain
export ORACLE_UNQNAME=RAC
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=rac1
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
2.3, Network Configuration(VM1)
首先需要为VM1启用两块网卡, 以笔者的配置为例:
# /etc/sysconfig/network-scripts/ifcfg-eth0 配置文件
IPADDR=192.168.56.103
DEVICE=eth0
BOOTPROTO=static
HWADDR=08:00:27:CB:75:1B
ONBOOT=yes

# /etc/sysconfig/network-scripts/ifcfg-eth1 配置文件
IPADDR=192.168.56.113
DEVICE=eth0
BOOTPROTO=static
HWADDR=08:00:27:CB:75:1B
ONBOOT=yes

# /etc/sysconfig/network 配置文件
HOSTNAME=rac1

# /etc/hosts/ 配置文件

127.0.0.1               localhost.localdomain localhost

192.168.56.103          rac1.localdomain        rac1
192.168.56.104          rac2.localdomain        rac2

192.168.56.113          rac1-priv.localdomain        rac1-priv
192.168.56.114          rac2-priv.localdomain        rac2-priv

192.168.56.123          rac1-vip.localdomain        rac1-vip
192.168.56.124          rac2-vip.localdomain        rac2-vip

192.168.56.103          rac-scan.localdomain            rac-scan
2.4, OS configuration(VM1)
#  配置共享内存文件系统, 执行以下命令
umount tmpfs
mount -t tmpfs shmfs -o size=1500m /dev/shm
# 修改/etc/fstab添加如下行
tmpfs /dev/shm tmpfs     size=1500m     0 0
# 修改/etc/security/limits.conf, 添加如下行
oracle          soft            nproc           2047
oracle          hard            nproc           16384
oracle          soft            nofile          1024
oracle          hard            nofile          65536
# 修改/etc/pam.d/login, 添加
session    required     pam_limits.so
# 内核参数配置, 修改/etc/sysctl.conf文件添加
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmax=1054504960
kernel.shmmni=4096
# semaphores: semmsl semmns semopm semmni
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
使用sysctl -p命令使之立即生效.
2.5, VM ASM Diskgroup(VM1)
此例子使用ASM磁盘组作为共享磁盘, 以笔者为例参照一下方式创建ASM磁盘组.
# 首先创建虚拟磁盘:
vboxmanage createhd -filename d:/vmdisks/asm1.vdi -size 5120 -format VDI -variant Fixed
vboxmanage createhd -filename d:/vmdisks/asm2.vdi -size 5120 -format VDI -variant Fixed
vboxmanage createhd -filename d:/vmdisks/asm3.vdi -size 5120 -format VDI -variant Fixed
vboxmanage createhd -filename d:/vmdisks/asm4.vdi -size 5120 -format VDI -variant Fixed
vboxmanage createhd -filename d:/vmdisks/asm5.vdi -size 5120 -format VDI -variant Fixed

# 在oel55-rac1关闭的情况下,attach磁盘:
vboxmanage storageattach oel55-rac1 --storagectl "SATA Controller" --port 1 --device 0 --type hdd --medium d:/vmdisks/asm1.vdi --mtype shareable
vboxmanage storageattach oel55-rac1 --storagectl "SATA Controller" --port 2 --device 0 --type hdd --medium d:/vmdisks/asm2.vdi --mtype shareable
vboxmanage storageattach oel55-rac1 --storagectl "SATA Controller" --port 3 --device 0 --type hdd --medium d:/vmdisks/asm3.vdi --mtype shareable
vboxmanage storageattach oel55-rac1 --storagectl "SATA Controller" --port 4 --device 0 --type hdd --medium d:/vmdisks/asm4.vdi --mtype shareable
vboxmanage storageattach oel55-rac1 --storagectl "SATA Controller" --port 5 --device 0 --type hdd --medium d:/vmdisks/asm5.vdi --mtype shareable

# 设置磁盘为sharable:

vboxmanage modifyhd d:\vmdisks\asm1.vdi --type shareable
vboxmanage modifyhd d:\vmdisks\asm2.vdi --type shareable
vboxmanage modifyhd d:\vmdisks\asm3.vdi --type shareable
vboxmanage modifyhd d:\vmdisks\asm4.vdi --type shareable
vboxmanage modifyhd d:\vmdisks\asm5.vdi --type shareable
 2.6, VM Clone & Configuration
使用VBox的克隆功能从VM1克隆得到VM2, 克隆之后需要作如下的修改:
# 相关de网络配置包括:
/etc/sysconfig/network
/etc/hosts
# oracle用户下的~/.bash_profile需要修改ORACLE_SID 
# 将2.5中创建的共享ASM磁盘attach到VM2
vboxmanage storageattach oel55-rac2 --storagectl "SATA Controller" --port 1 --device 0 --type hdd --medium d:/vmdisks/asm1.vdi --mtype shareable
vboxmanage storageattach oel55-rac2 --storagectl "SATA Controller" --port 2 --device 0 --type hdd --medium d:/vmdisks/asm2.vdi --mtype shareable
vboxmanage storageattach oel55-rac2 --storagectl "SATA Controller" --port 3 --device 0 --type hdd --medium d:/vmdisks/asm3.vdi --mtype shareable
vboxmanage storageattach oel55-rac2 --storagectl "SATA Controller" --port 4 --device 0 --type hdd --medium d:/vmdisks/asm4.vdi --mtype shareable
vboxmanage storageattach oel55-rac2 --storagectl "SATA Controller" --port 5 --device 0 --type hdd --medium d:/vmdisks/asm5.vdi --mtype shareable
2.7, oracleasm配置(VM1)
# 在VM1上执行如下命令对asm进行配置
oracleasm confgiure -i
oracleasm init
# 创建磁盘组
oracleasm createdisk DISK1 /dev/sdb1
oracleasm createdisk DISK2 /dev/sdc1
oracleasm createdisk DISK3 /dev/sdd1
oracleasm createdisk DISK4 /dev/sde1
oracleasm createdisk DISK5 /dev/sdf1
# 最后使用如下命令验证ASM 磁盘组创建成功
oracleasm listdisks
在VM2上执行如下命令, 如果得到与VM1相同的结果则证明ASM:
oracleasm scandisks
oracleasm listdisks
3, 安装ClusterWare
解压缩集群软件安装包之后, 使用oracle用户身份运行如下脚本:
sh ./grid/runInstaller
具体的安装步骤可以参考链接. 需要注意的是在执行root脚本时, 需要等主节点(VM1)执行完毕之后才可以在其它节点上执行.

4, 安装ORACLE数据库
参考链接.


没有评论:

发表评论