Oracle 11gR2 RAC实时应用集群(一)

2015-01-21 12:13:46 · 作者: · 浏览: 12

? ? 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


? ? 5.各节点内核参数修改.
? ? 修改文件/etc/sysctl.conf,添加以下内容:
? ? # /etc/sysctl.conf
? ? # for oracle
? ? 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_m