oracle11gr2 rac实时应用集群(1)在redhat enterprise linux5 x86_64下的集群(asm篇)(oracle11gr2 + grid + rhel5 + asm)
oracle11gr2 rac实时应用集群(1)在redhat enterprise linux5 x86_64下的集群(asm篇)
(oracle11gr2 + grid + rhel5 + asm)
rac(real application clusters,实时应用集群),是多台主机组成的集群计算环境,是oracle数据库支持网格计算环境的核心技术。
普通oracle数据库,,只能在一台主机上运行,数据库的实例和数据库文件都在一台主机上,是单实例单数据库。
rac实时应用集群,可以在多台主机上运行,每台节点主机上运行一个数据库实例,通过共享存储磁盘访问相同的数据库文件,是多实例单数据库,单一节点故障
不影响数据库的使用,负载能力也会随节点主机的增加而加强。
rac集群的关键点:
1.共享存储
2.节点间需要内部通讯,以协调集群正常运行,所以每个节点需要提供外部网络与内部网络.
3.crs集群软件: 需要集群软件(grid)协调各节点.
4.集群注册文件(ocr): 需要注册集群,保存在共享磁盘上.
5.仲裁磁盘(voting disk): 需要协调各节点决定控制权,做为表决器,保存在共享磁盘上.
6.虚拟ip(virturl ip): 提供客户端连接,ip由集群软件接管,当集群就绪时,虚拟ip可以连接,11gr2改为用scan ip连接.
7.scan ip: 11gr2有增加的新特性,用于客户端连接,不需要再在客户端tnsname.ora中添加各节点状态,scan ip可以调节负载平衡.
共享存储访问方式(存储系统):
1.集群文件系统(cfs:cluster file system)
2.自动存储管理(asm:automatic storage management)
3.网络文件系统(nfs)
单机文件系统fat32,ntfs,ext3不能作为共享存储,oracle11g不再支持裸设备做共享存储
选择以下储存方案来建立集群系统:
项目 存储系统 存储位置
clusterware软件(grid) 本地文件系统 本地磁盘
voting disk(grid) asm 共享磁盘
ocr(grid) asm 共享磁盘
数据库软件 本地文件系统 本地磁盘
数据库 asm 共享磁盘
下面说说oracle rac在redhat enterprise linux5 x86_64下的安装过程。
一.配置多主机节点环境
主要为学习测试之用,可以使用虚拟机模拟来实现多台主机,比较好的选择是vmware workstation8.0.4.
1.使用vmware virtual network editor添加网络适配器(vmnet1,vmnet2),生成两个网段,vmnet1的网段用于节点外部通讯(publicnet),vmnet2网段用于节点间通讯(privatenet).
2.使用vmware创建两台主机,在每台主机上安装redhat enterprise linux5 x86_64系统,每台需要虚拟两张网卡,ip分配如下:
节点主机 主机公网ip 虚拟ip 私网ip(内部网络)
rac01 192.168.89.166 192.168.89.66 192.168.234.166
rac02 192.168.89.167 192.168.89.67 192.168.234.167
公网与私网ip设置在网卡上,虚拟ip不用设置.
另外还需要一个scan ip,作为客户端连接集群用,客户端不必在tnsname.ora配置多个节点.
scan名称: rac-scan, scan ip: 192.168.89.91
3.设置dns解析,修改2台虚拟机rac01,rac02上的/etc/hosts文件,添加以下内容:
192.168.89.166 rac01
192.168.89.167 rac02
192.168.89.66 rac01v
192.168.89.67 rac02v
192.168.234.166 rac01p
192.168.234.167 rac02p
192.168.89.91 rac-scan
4.在各节点上检查和安装需要用到的软件包
根据oracle官方文档,需要以下软件包:
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
numactl-devel-0.9.8.x86_64
sysstat-7.0.2
以root用户登录系统,执行以下语句检查软件包是否安装
# rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++
# rpm -q glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel
# rpm -q libgcc libstdc++ libstdc++-devel make numactl-devel sysstat unixodbc unixodbc-devel
找到redhat enterprise linux5 x86_64安装光盘的server目录,安装没有安装的软件包
# rpm -ivh compat-db-4.2.52-5.1.x86_64.rpm