RedHat AS上安装Oracle RAC
Sourcecode
|
1#
Sourcecode 发表于 2007-06-20 00:10
RedHat AS上安装Oracle RAC
前言:在RedHat Advance Server上安装Oracle 9204 RAC
定位 本文定位在那些有了一定Linux与oracle基础的,而且对RAC也要有相关了解热人员作为参考手册,而不是所谓的安装向导。所以本文没有详细的安装过程之类的步骤,却有详细的安装错误的解决办法。 覆盖范围 适合在Redhet AS 2.1与AS 3.0系统上 包括单节点、多节点安装 包括9201升级到9204和直接安装9204 包括文件系统(单机),OCFS文件系统,RAW设备与NFS网络文件系统的安装异同 第一章. RAC的机制 RAC起源于版本8的OPS(Oracle parallel Server),OPS/RAC 最原始的设计初衷就是系统与应用的高可用性。OPS/RAC通过不同的节点使用一个(一般是一个)或多个oracle instances 与一个database 连接。RAC对早期的OPS做了众多的改进,特别是在节点的通信与管理上。RAC在工作期间,每个节点可以单独的被使用并且被应用程序负载均衡。如果发生意外,如一个节点的失败,可以实现节点的失败切换(failover),保证数据库24*7的高可用性。 RAC的数据库要求建立在共享磁盘设备上,对于OPS,只支持RAW设备,RAC已经可以支持文件系统(单机模拟)、OCFS、RAW、与NFS等文件系统或者设备。因为RAC是多个实例对应一个数据库,每个节点都有自己的日志,因此在备份与恢复方面,将需要一些特殊的处理。 但是,RAC并不提供容灾的功能,如共享磁盘设备的损坏,自然灾害等不可避免的损失,将导致RAC的不可使用,所以,RAC一般与其它的容灾组件配合使用,如RAC+DATA GUARD。 取代以前版本的分布式锁管理(DLM),全局缓冲服务(GCS)与全局锁服务(GES)将负责RAC的管理工作。GCS的同步层允许每个实例单独的访问数据库,通过数据库的核心层管理实例级别的一致性与锁资源。所有的以上任务将被一组特殊的后台进程来完成: LMON (Lock Monitor Process),锁监控进程 责监控整个RAC的全局资源,管理实例与进程的过期以及全局缓冲服务与全局锁服务的恢复工作,LMON提供一个众所周知的聚族组服务(CGS)。 LMSn(The Global Cache Service Processes),全局缓冲服务进程 LMSn可以处理远程节点的全局缓冲服务的信息,LMSn也负责控制到远程节点的信息流,RAC可以提供10个这样的服务进程LMS0-LMS9,其进程的多少取决于实例之间的通信量。LMSn负责处理远程节点的全局缓冲服务获得的中断请求,保证多个实例的读一致性请求。LMSn创建块的一致性的读信息并送到远程节点的实例。 LMD(The Global Enqueue Service Daemon),全局资源服务 LMD资源代理进程,负责管理全局缓冲服务资源的管理,可以负责远程节点资源的请求与死锁的检测。 第二章. Linux上安装RAC的系统要求 2.1 内核需求 如果是如果是AS2.1,内核2.4.9 e16以上,如 [oracle@dbrac oracle]$ uname -a Linux dbrac 2.4.9-e.37enterprise #1 SMP Mon Jan 26 11:20:59 EST 2004 i686 unknown 如果是3.0版本,则没有内核要求,内核信息一般如下 [root@ dbrac oracle]$ uname -a Linux dbrac 2.4.21-4.ELsmp #1 SMP Fri Oct 3 17:52:56 EDT 2003 i686 i686 i386 GNU/Linux 2.2 binutils需求 binutils 要求binutils-2.11.90.0.8-12以上,如 如:2.1版本 [oracle@dbrac oracle]$ rpm -qa | grep -i binutils binutils-2.11.90.0.8-12 3.0版本 [root@ dbrac oracle]$ rpm -qa | grep -i binutils binutils-2.14.90.0.4-26 2.3 共享磁盘需求 如果是单节点安装,可以是本地硬盘,文件系统即可 如果是多节点安装,需要共享磁盘系统,可以是Raw设备,Ocfs文件系统,Nfs网络文件系统等。 第三章.安装前的准备工作 3.1调整Linux核心参数 在/etc/sysctl.conf中增加 net.core.rmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 262144 net.ipv4.tcp_sack=0 net.ipv4.tcp_timestamps=0 fs.file-max = 65535 kernel.sem = 500 64000 100 128 kernel.shmmax = 2147483648 以上值根据不同的环境可能有变化,不再描述每个值的具体意义 3.2加载系统状态检查模块 这个模块在AS2.1-E16以上的核心或者是3.0的核心中是自带的,不需要安装,它取代了数据库9201版本的watchdog,所以,我们可以不需要配置watchdog,如果OS核心不够,可以升级核心。 可以通过如下方法检测是否存在该模块 $ find /lib/modules -name "hangcheck-timer.o" /lib/modules/2.4.9-e.37enterprise/kernel/drivers/char/hangcheck-timer.o 你可以运行该模块并检查日志信息 # su - root # /sbin/insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 # grep Hangcheck /var/log/messages |tail -1 在/etc/rc.local下增加 #!/bin/sh touch /var/lock/subsys/local /sbin/insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 或者 # su - root # echo "options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/modules.conf 这样的话,在系统重新启动后,该模块可以自动加载 3.3确定与配置节点 如果确定在单个节点上模拟RAC,那么/etc/hosts文件内容可以类似如下 [root@dbrac root]# more /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost 10.0.29.162 dbrac 其中dbrac是该机器的机器名称,与hostname或/etc/sysconfig/network的内容一致 如果是在多节点上安装RAC,那么/etc/hosts文件内容可以类似如下 [oracle@db205 oracle]$ more /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost 192.168.168.205 dbrac1 192.168.168.206 dbrac2 192.168.0.205 dbrac1-eth1 192.168.0.206 dbrac1-eth1 其中分别代表公用节点名称与私有节点名称,公用节点是网卡1配置的IP地址,表示对外应用程序连接通道;私有节点是网卡2配置的IP地址,用于多个节点之间的通信专用。 3.4创建oracle用户与组 #groupadd dba #useradd oracle -g dba #passwd oracle 3.5设置节点环境变量 如果是AS 3.0,注意设置如下参数 export LD_ASSUME_KERNEL=2.4.1 以下参数在两个平台下公用 export ORACLE_BASE=/u01/oracle export ORACLE_HOME=/u01/oracle/ora920 export ORACLE_TERM=xterm export NLS_LANG=AMERICAN_AMERICA.zhs16gbk export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export PATH 3.6准备目录结构 su - oracle $cd $ORACLE_BASE $ mkdir -p admin/rac/ ---存放配置文件 $ cd admin/rac/ $ mkdir bdump cdump udump createdblog $cd $ORACLE_BASE $ mkdir -p oradata/rac ----存放数据文件 注意:以上操作,如果是多个节点,需要在多个节点上完成 ,单个节点只需要在单节点上完成即可。 |