Oracle Rac Installation.docx
- 文档编号:10260446
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:56
- 大小:5.81MB
Oracle Rac Installation.docx
《Oracle Rac Installation.docx》由会员分享,可在线阅读,更多相关《Oracle Rac Installation.docx(56页珍藏版)》请在冰豆网上搜索。
OracleRacInstallation
OracleRAC集群
内容概述
ØOracleRAC集群体系结构
Ø安装OracleRAC数据库
ØOracleCRS的管理与维护
ØASM基本操作与使用
Ø使用srvctl管理RAC数据库
Ø测试OracleRAC数据库集群功能
第一讲:
OracleRAC集群体系结构
1、Oracle集群体系结构
OracleRAC,全称是OracleRealApplicationCluster,即真正的应用集群,是oracle提供的一个并行集群系统,整个集群系统由OracleClusterware(集群就绪软件)和RealApplicationClusters(RAC)两大部分组成。
oracleRAC的实质是位于不同操作系统的Oracle实例节点同时访问同一个Oracle数据库,每个节点间通过私有网络进行通信,互相监控节点的运行状态,oracle数据库所有的数据文件、联机日志文件、控制文件等均放在集群的共享存储设备上,而共享存储设备可以是RAW、ASM、OCFS2等,所有集群节点可以同时读写共享存储。
OracleRAC的基本拓扑结构如下所示:
从oracle的运行机制来说,集群中每台服务器就是一个oracle实例,多个oracle实例对应同一个oracle数据库,组成了oracle数据库集群。
请看下图:
从图中可以看出,运行在两个节点上的数据库实例访问同一个RAC数据库,并且两个节点的本地磁盘仅用来存放oracle安装程序和ClusterWare软件,而在共享存储上,存放了oracle的数据文件、控制文件、联机日志文件、归档日志文件等,这是安装oracleRac时的一种数据存储分配方式,其实,RAC提供了多种数据存储方式,这个将在下面进行独立介绍。
2.1、OracleClusterware简介
ClusterReadyServices,简称CRS,是oracle开发的一个集群软件,与其它集群软件类似,CRS主要完成集群成员管理、心跳监控、故障切换等功能,CRS要求每个集群节点的操作系统必须相同,这样,通过CRS将多个节点的操作系统绑定到了一起,客户端对集群的访问,就像访问一台服务器一样。
CRS主要有两个集群套件组成,分别是votingdisk和OracleClusterRegistry。
votingdisk,即为表决磁盘,集群中每个节点定期评估自身的健康情况,然后会把它的状态信息放入到表决磁盘上。
并且节点间也会互相查看其运行状态,并把信息传递给其他节点进而写入表决磁盘。
当集群节点发生故障时,还可以通过表决磁盘进行投票仲裁等,因此,表决磁盘必须放在共享存储设备上。
以保证每个节点都能访问到。
表决磁盘可以是一个裸磁盘分区,也可以是一个独立的文件。
由于它仅记录节点运行信息,磁盘大小一般在10-20M左右即可。
OracleClusterRegistry,简称OCR,即集群注册服务,OCR主要用于记录RAC中集群和数据库的配置信息。
这些信息包括了集群节点的列表、集群数据库实例到节点的映射以及CRS应用程序资源信息。
CRS使用两种心跳设备来验证节点成员的状态,保证集群的完整性:
一个是表决磁盘,集群同步服务进程每隔几秒钟都会向表决磁盘写入一条心跳信息,集群通过表决磁盘即可验证节点的状态,如果某个节点在指定的最大时间段内没有向表决磁盘写入信息,集群就认为此节点失效了,进而执行故障切换。
另一个心跳是节点间私有以太网的心跳,通过这个心跳机制可以判断节点间是否出现了网络故障。
两种心跳机制的结合,有效的增加了集群的可靠性。
另外,CRS建议用于内部通讯的私有以太网心跳必须与用于RAC节点间通讯的网络分开,也就是不能在同一网络中,如果RAC节点间通讯的网络与私有以太网心跳在同一个网络内,那么,必须保证该网络不能被非集群系统的节点访问到。
2.2、OracleClusterware进程介绍
OracleClusterware通过ClusterReadyServices来完成集群功能,CRS包含了一组相互协作的后台进程,下面详细介绍下CRS中几个很重要的后台进程。
1ClusterSynchronizationServices
简称CSS,用于管理与协调集群中各节点的关系,并用于节点间通信,当节点在加入或离开集群时,都由css进行通知集群。
CSS在集群中对应的后台进程为CSSD,该进程由oracle用户运行和管理。
当节点发生故障时,cssd会自动重启操作系统。
2ClusterReadyServices
简称CRS,是管理群集内高可用操作的主要程序,在集群中CRS管理所有资源,包括数据库、服务、实例、vip地址、监听器、应用进程等,CRS在集群中对应的后台进程为CRSD,该进程可以对集群资源进行启动、停止、监视和容错等操作,正常状态下,CRSD监控节点各种资源,当某个资源发生异常时,自动重启或者切换该资源。
3ProcessMonitorDaemon
简称OPROCD,此进程被锁定在内存中,用于监控集群及提供I/O防护(I/Ofencing)。
OPROCD运行在每个节点上,且定期执行健康检测,如果在超过它所希望的间隔内,仍然不能和某个节点通信,那么,OPROCD将会重置处理器及重启节点。
一个OPROCD故障也将导致Clusterware重启节点。
4OracleNotificationService
简称ONS,即oracle通告服务,主要用于发布和订阅FastApplicationNotification事件。
5EventManagement
简称EVM,是一个事件检测的后台进程,由oracle用户运行和管理。
3.1、RAC简介
RAC是一个具有共享缓存体系结构的集群数据库,它克服了传统的不共享和共享磁盘方法的限制,为所有业务应用程序提供了一种具有可伸缩性和可用性的数据库解决方案,它一般与OracleClusterware或第三方集群软件共同组成Oracle集群系统。
RAC是一个全共享式的体系架构,它的所有数据文件、控制文件、联机日志文件、参数文件等都必须存放在共享磁盘中,因为只有这样,集群所有节点才能访问到,RAC支持多种存储方式,可以使用下面几种方式的任意一种:
(1)裸设备(Rawdevices)
也就是不经过文件系统,将数据直接写入磁盘中,这种方式的好处是磁盘I/O性能很高,适合写操作频繁的业务系统,但缺点也很明显:
数据维护和备份不方便,备份只能通过dd命令或者基于块级别的备份设备来完成,这无疑增加了维护成本。
(2)集群文件系统
为了支持共享存储,oracle开发出了集群文件系统OCFS,这个文件系统可用于Windows、Linux和Solaris,现在已经发展到了OCFS2,通过OCFS2文件系统,多个集群节点可以同时读写一个磁盘而不破坏数据,但对于大量读写的业务系统,性能不是很高。
另外,oracleRAC也支持第三方的集群文件系统,例如Redhat的GFS等。
(3)网络文件系统(NFS)
(4)AutomatedStorageManagement
AutomatedStorageManagement,简称ASM,是Oracle推荐的共享数据存储方式,它是Oracle数据库10g包含的一个特性。
ASM其实就是RAW方式存储数据,但是加入了数据管理功能,它通过将数据直接写入磁盘,避免了经过文件系统而产生的I/O消耗。
因而,使用ASM可以很方便地管理共享数据,并提供异步I/O的性能。
ASM还可以通过分配I/O负载来优化性能,免除了手动调整I/O的需要。
3.2、OracleRAC的特点
通过RAC数据库,可以构建一个高性能、高可靠的数据库集群系统,RAC的优势在于:
(1)可以实现多个节点间的负载均衡
RAC数据库集群可以根据设定的调度策略,在集群节点间实现负载均衡,因此,RAC数据库每个节点都是工作的,同时也处于互相监控状态,当某个节点出现故障时,RAC集群自动将失败节点从集群隔离,并将失败节点的请求自动转移到其它健康节点上,从而实现服务透明切换。
(2)可以提供高可用服务
这个是OracleClusterware实现的功能,通过CRS可以实现节点状态监控,故障透明转移,这保证了oracle数据库可以对外不间断的提供服务。
(3)通过横向扩展提高了并发连接数
RAC这个优点非常适合大型的联机事务系统中。
(4)通过并行执行技术提高了事务响应时间
这个是RAC集群的一大优势,通常用于数据分享系统中。
(5)具有很好的扩展性
在集群系统不能满足繁忙的业务系统时,RAC数据库可以很方便的添加集群节点,且可以在线完成节点的添加,并自动加入集群系统,不存在宕机时间;同时在不需要某个集群节点时,删除节点也非常简单。
RAC数据库也有一定的缺点:
(1)与单机数据库相比,管理维护更复杂,并对维护人员要求更高
(2)底层规划设计不好时,系统整体性能会较差,甚至不如单机系统的性能。
所以,如果对RAC数据库不是很了解,不建议马上在生产环境中使用。
(3)由于RAC集群系统需要多个节点,那么需要购买多台服务器,同时需要oracle企业级版本数据库,这无形中也增加了软硬件成本。
3.3、RAC进程管理
RAC数据库是由多个节点构成的,每个节点就是一个数据库实例,而每个实例都有自己的后台进程和内存结构,并且在RAC集群中,每个实例的后台进程和内存结构都是相同的,从整体上看起来,就像是一个单一数据库的镜像,但是,RAC数据库在结构上与单实例库也有不同之处:
(1)RAC数据库的每个实例至少拥有一个额外的重做线程(redothread)
(2)RAC数据库的每个实例都拥有自己的撤消表空间(undotablespace)
很显然,这种机制是每个实例独立的使用自己的重做线程和撤消表空间,各自锁定自己修改的数据。
RAC的这种设计方式,把多个实例的操作相对独立的分开。
那么RAC数据库如何实现节点数据的一致性呢,其实每个RAC实例的SGA内有一个buffercache(缓冲区),通过CacheFusion(缓存融合)技术,RAC在各个节点之间同步SGA中的缓存信息,从而保证了节点数据的一致性,同时也提高了集群的访问速度。
RAC数据库最大的特点是共享,那么如何实现多个节点有条不紊的数据共享呢,这就是要说的RAC的两个进程:
即GlobalCacheService(GCS)和theGlobalEnqueueService(GES)
全局缓存服务(GCS)和全局队列服务(GES)是最基本的RAC进程,主要用于协调对共享数据库和数据库内的共享资源的同时访问。
同时,GES和GCS通过使用全局资源目录(GlobalResourceDirectory,GRD)来记录和维护每个数据文件的状态信息,而GRD保存在内存中,内容分布存储在所有实例上。
每个实例都管理部分内容。
RAC中通过几个特别的进程与GRD相结合,使得RAC可以使用缓存融合技术,这几个特别进程是:
lGlobalCacheServiceProcesses(LMSn)
LMS进程主要用来管理集群内数据块的访问,并在不同实例的BUFFERCACHE中传输块镜像。
lGlobalEnqueueServiceMonitor(LMON)
LMON主要监视群集内的全局资源和集群间的资源交互,并管理实例和处理异常,以及集群队列的恢复操作。
lGlobalEnqueueServiceDaemon(LMD)
LMD进程主要管理对全局队列和全局资源的访问,并更新相应队列的状态,处理来自于其他实例的资源请求。
lLockProcesses(LCK)
LCK进程主要用来管理实例间资源请求和跨实例调用操作,并管理除CacheFusion以外的资源请求,比如library和rowcache的请求等。
lDiagnosabilityDaemon(DIAG)
DIAG进程主要用来捕获实例中失败进程的诊断信息,并生成相应的TRACE文件。
3.4、RAC数据库存储规划
安装RAC数据库时涉及到的软件有OracleClusterware、OracleRac数据库软件,同时还涉及到votingdisk、OCR等,关于每部分需要占用磁盘空间大小如下:
在了解了RAC每部分所需的磁盘空间大小后,就可以根据每部分的用途来规划数据存储了。
RAC广泛支持各种数据存储方式,例如单一日志文件系统ext2/ext3、集群文件系统OCFS2/GFS、网络文件系统NFS、裸设备RAW、自动存储管理ASM等,下表列出了可以使用的存储类型:
3.4、RAC数据库存储规划
具体使用哪种存储策略,要根据安装RAC环境的不同而不同。
这里推荐三种常用的存储方式:
第二讲:
安装OracleRAC数据库
1、安装前的系统配置需求
安装OracleRac数据库需要的组件可以分为软硬件两部分,下面是一个软硬件推荐配置:
为了方便安装RAC数据库,在安装操作系统时,建议选择如下系统包:
l桌面环境:
xwindowssystem、GNOMEdesktopenvironment。
l开发工具:
developmenttools、xsoftwaredevelopment、gnomesoftwaredevelopment、kdesoftwaredevelopment。
更详细的拓扑结构信息,参看下图:
OracleRac数据库涉及到公用网络和私有网络,因此要做网络划分和IP地址规划,下表列出了要安装的RAC数据库对应的IP地址、主机名以及网络连接类型
2、设置数据库安装资源
安装RAC数据库需要的软件包分为三个部分,分别是oracleRAC安装程序包、OracleASMLib工具包以及系统补丁包。
这里Oracle的安装版本为oracle11g,详细的软件包信息如下:
(1)Oracle11gRelease1(11.1.0.6.0)软件包
下载地址:
软件包名称:
linux_11gR1_database_1013.zip
linux_x86_11gR1_clusterware.zip
软件包说明:
总共需要下载两个安装程序,一个是OracleRac安装程序包,另一个是OracleClusterWare安装程序包。
(2)OracleASMLib工具包
下载地址:
软件包名称:
oracleasmlib-2.0.4-1.el5.i386.rpm
oracleasm-2.6.18-194.11.1.el5-2.0.5-1.el5.i686.rpm
oracleasm-support-2.1.3-1.el5.i386.rpm
软件包说明:
这三个软件包是使用ASM存储管理方式必须的驱动工具包。
(3)系统补丁包
下载地址:
http:
//www.idevelopment.info/data/Oracle/DBA_tips/Oracle11gRAC/Install11gR1RACOnCentOS51/RPMS/redhat-release-5-1.0.el5.centos.1.i386.rpm
软件包名称:
redhat-release-5-1.0.el5.centos.1.i386.rpm
软件包说明:
由于Centos不在Oracle支持平台之列,所以安装检测时无法通过的,通过安装这个软件包,可以使安装检测顺利通过。
3、配置主机解析文件
为了使每个主机间可以正常通信,需要在每个节点上修改本地解析文件,即/etc/hosts文件,在两个节点上添加如下配置信息:
192.168.12.231node-rac1
192.168.12.232node-rac2
192.168.12.230node-vip1
192.168.12.240node-vip2
10.10.10.1node-priv1
10.10.10.2node-priv2
4、检查所需软件包
在每个节点上执行相同的操作:
执行下面的命令:
rpm-qmakebinutilslibaio-devellibaioelfutils-libelf-develcompat-libstdc++-33libgccgccgcc-c++glibcsysstatlibstdc++libstdc++-develunixODBC-develunixODBC
如果出现某个软件包没有安装,请安装该软件包。
5、配置系统内核参数
由于Linux的内核参数信息都存在内存中,可以通过命令直接修改,并且修改后直接生效,但是,当系统重新启动后,原来设置的参数值就会丢失,而系统每次启动时都会自动去/etc/sysctl.conf文件中读取内核参数,因此将内核的参数配置写入这个文件中,是一个比较好的选择。
Oracle对Linux系统内核参数有严格的要求,如果设置不当,就会导致安装失败,编辑/etc/sysctl.conf文件,修改后的参数配置如下所示:
net.ipv4.ip_forward=0
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.default.accept_source_route=0
kernel.sysrq=0
kernel.core_uses_pid=1
net.ipv4.tcp_syncookies=1
kernel.msgmnb=65536
kernel.msgmax=65536
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144
kernel.shmmax=1073741823
kernel.sem=25032000100128
fs.file-max=65536
net.ipv4.ip_local_port_range=102465000
5、配置系统内核参数
下面简单讲述下常用的几个内核参数的含义:
lkernel.shmmax:
表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存一半,不过大一点也没关系,这里设定的为1G。
lkernel.shmmni:
表示单个共享内存段的最小值,一般为4KB,即4096bit
lkernel.shmall:
表示可用共享内存的总量,单位是页,在32位系统上一页等于4k,也就是4096字节。
lfs.file-max:
表示文件句柄的最大数量。
文件句柄表示在linux系统中可以打开的文件数量。
lnet.ipv4.ip_local_port_range:
表示端口的范围,为指定的内容。
lkernel.sem:
用来设置Linux的信号量。
可以使用以下命令查看:
[root@node-rac1rac]#cat/proc/sys/kernel/sem
2503200032128
对于输出的这四个值的含义,分别介绍如下:
ØSEMMSL:
此参数用于控制每个信号集的最大信号数,Oracle建议将SEMMNI设置为不小于100。
ØSEMMNS:
此参数用于控制整个Linux系统中信号(而不是信号集)的最大数量。
ØSEMOPM:
此参数用于控制每个semop系统调用可以执行的信号操作数,Oracle建议将SEMOPM的值设置为不少于100
ØSEMMNI:
此内核参数用于控制整个Linux系统中信号集的最大数量,Oracle建议将SEMMNI设置为不小于100。
6、设置Shell对Oracle用户的限制
以root用户身份,在每个节点上执行相同的操作。
首先,修改/etc/security/limits.conf,在文件最后添加如下内容:
oraclesoftnproc2047
oraclehardnproc16384
oraclesoftnofile1024
oraclehardnofile65536
接着,修改/etc/pam.d/login,在文件最后添加如下内容:
sessionrequired/lib/security/pam_limits.so
最后,修改/etc/profile,在文件最后添加如下内容:
if[$USER="oracle"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
fi
所有修改完毕,重启所有Linux系统。
7、配置hangcheck-timer内核模块
以root用户身份执行,在所有节点上做如下配置。
查看模块是否存在:
[root@node-rac1~]#find/lib/modules-name"hangcheck-timer.ko"
接着,编辑/etc/modprobe.conf:
[root@node-rac1~]#vi/etc/modprobe.conf
在文件的末尾加入一行:
optionshangcheck-timerhangcheck_tick=30hangcheck_margin=180
然后,将hangcheck-timer模块配置为自启动:
[root@node-rac1~]#vi/etc/rc.d/rc.local
在文件的末尾加入一行:
/sbin/modprobehangcheck_timer
接着,启动hangcheck:
[root@node-rac1~]#/sbin/modprobehangcheck_timer
最后,检查hangcheck是否成功启动:
[root@node-rac1~]#grephangcheck/var/log/messages|tail-2
Aug2619:
08:
17Mysql1kernel:
Hangcheck:
startinghangchecktimer0.9.0(tickis30seconds,marginis180seconds).
如果显示上面输出信息说明已经成功启动hangcheck。
8、配置系统安全设置
由于在安装RAC数据库时,安装进程需要在每个节点间传送数据,这就要求每个节点间是互信任的,因此,最简单的方式就是关闭系统的安全限制,常用的方式是关闭Linux系统的iptables以及selinux,在每个节点上执行相同的操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle Rac Installation
![提示](https://static.bdocx.com/images/bang_tan.gif)