VMware下RedHat安装Oracle9iRAC全攻略.docx

上传人:b****4 文档编号:3444515 上传时间:2022-11-23 格式:DOCX 页数:21 大小:116.07KB
下载 相关 举报
VMware下RedHat安装Oracle9iRAC全攻略.docx_第1页
第1页 / 共21页
VMware下RedHat安装Oracle9iRAC全攻略.docx_第2页
第2页 / 共21页
VMware下RedHat安装Oracle9iRAC全攻略.docx_第3页
第3页 / 共21页
VMware下RedHat安装Oracle9iRAC全攻略.docx_第4页
第4页 / 共21页
VMware下RedHat安装Oracle9iRAC全攻略.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

VMware下RedHat安装Oracle9iRAC全攻略.docx

《VMware下RedHat安装Oracle9iRAC全攻略.docx》由会员分享,可在线阅读,更多相关《VMware下RedHat安装Oracle9iRAC全攻略.docx(21页珍藏版)》请在冰豆网上搜索。

VMware下RedHat安装Oracle9iRAC全攻略.docx

VMware下RedHat安装Oracle9iRAC全攻略

VMware下RedHat安装Oracle9iRAC全攻略

摘要:

大家都知道,oracle9iRAC(以下简称RAC)是oracle里相对比较复杂的部分,很大一部分原因是由于RAC的环境搭建相对不如单实例方便。

通常典型的配置是两台主机加一台存储,但是平常我们个人如果想在家研究测试RAC的话,很少会去购买这么多设备来做测试的。

幸好,我们有VMware GSXServer(以下简称VMware),通过使用这款非常好的虚拟机模拟工具,我们可以在一台PC电脑上模拟出多台主机加存储的这样一个RAC环境。

本文首先简要介绍了RAC的原理,随后着重详细叙述了如何在一台PC电脑上,使用VMware构建两台RedHatLinuxAS3(以下简称AS3),并虚拟一个共享存储,创建裸设备,最后在实现RAC的搭建。

1.RAC简介

简单来说,RAC就是位于多个主机(通常都称为节点)上的多个oracle实例同时管理一个数据库。

数据库必须放在共享存储设备上,包括数据文件、控制文件、联机日志以及spfile都必须放在共享存储上,这样每个节点才能同时访问存储设备。

每个节点之间通过高速光纤互相连接,并同步内存数据。

oracle在管理不同实例里的内存里的数据结构,同时要最大程度的降低I/O,引入了全局缓冲服务(GCS:

GlobalCacheService),同时还引入了全局锁定服务(GES:

GlobalEnqueueService)用来在不同节点之间通讯时进行同步管理。

这些服务都是通过一组特殊的后台进程完成的,这些后台进程主要包括:

(1)globalcacheserviceprocesses(LMSn):

n从0到9,具体由信息传输的数量决定。

用来控制信息到其他实例的流向,同时还管理对全局数据块的访问。

LMSn进程同样在不同实例的数据块缓存(buffercache)里传递数据库镜像(blockimage)。

该进程是CacheFusion特性的一部分。

(2)globalenqueueservicemonitor(LMON):

监控全局锁定(globalenqueues)及其资源,并提供globalenqueues资源的恢复操作。

enqueues是用来进行串行化行更新的共享的内存结构。

(3)globalenqueueservicedaemon(LMD):

管理对全局锁定(globalenqueues)以及全局资源的访问。

在每个实例中,LMD进程对传入当前实例的对其他资源的访问请求进行管理。

(4)lockprocess(LCK)管理non-CacheFusion资源的请求,比如librarycache或rowcache的请求。

(5)diagnosabilitydaemon(DIAG):

获得实例中有关进程失败的诊断信息。

该daemon的操作是自动的,并且它会更新alert.log文件,以记录它所做的动作。

注意:

cachefusion表示一种在RAC里的非磁盘交互方式的内存同步机制。

该机制使得获得block的实例能够将block直接从内存转移到需要该block的实例的SGA里去。

这样,由于减少了磁盘交互,所以将block从一个实例转移到另一个实例的性能提高很多。

而且管理也更加简便。

RAC能够对客户端的连接请求进行负载均衡,把所有客户的连接尽可能的平均分布在不同的实例上。

同时,RAC还提供failover的功能,也就是说如果其中一个节点发生意外,只要这个时候连在该损坏节点上的session没有正在进行事务运行,则该session不需要退出后重新登录,oracle会自动将该session连接到一个可用的节点上,从而保证了7×24应用的安全性和稳定性。

不过,RAC不提供容灾的功能,也就是说如果共享存储损坏,仍然会导致整个应用崩溃。

所以,需要采用其他容灾方案结合使用,比如RAC+DataGuard等。

2.准备工作

VMwareGSXServer:

笔者测试所使用的是3.2版本,建议使用3.2及以上的版本。

Linux:

笔者使用的是RedHatLinuxAS3。

请使用AS2.1以上版本的linux。

因为AS2.1以下的版本如果要

支持RAC需要进行很多额外的配置,比如watchdog之类的,到了AS2.1以后缺省都不使用了,而是使用hangcheck,如果要使用watchdog,需要进行很多不必要的配置。

安装介质可以是光盘,也可以是ISO文件。

笔者使用的是ISO文件。

Oracle:

笔者使用的是oracle9204forlinux,可以直接从oracle的官方网站上下载。

笔者是从oracle官方网站上下载下来的三个压缩包。

主要的准备工作就是这些,当然安装过程中可能还会需要其他的一些软件,比如plainmaker等。

在需要的时候,笔者也会说明如何使用这些软件的。

3.安装虚拟节点

3.1创建虚拟节点

VMware安装好以后,进入主界面,我们就可以创建两个虚拟节点。

点击File->NewVirtualMachine…,在打开的窗口中,在选择所安装的操作系统时,我们选择RedHatEnterpriseLinux3,其他都选择缺省值,点击next,一直到让你输入disksize时,缺省事4G,我们改成8G,最后点击finish。

这样就创建好了一个虚拟节点,取名为linux1。

同样的方法,我们创建第二个虚拟节点,取名为linux2。

3.2安装linux

创建完两个虚拟节点以后,我们要开始安装linux了。

在窗口的左边的Inventory框里,右键节点linux1,选择virtualmachinesettings…,在弹出的框中,我们选中CD-ROM,然后选择UseISOImage,并输入相应的linux安装介质的第一个ISO文件的位置,如下图所示。

选择ok以后,点击Power->PowerOn,相当于为节点

点击查看大图

加电,剩下的工作与在单PC机器上安装linux过程一样。

这里提一点,就是在给磁盘分区时,如果不使用LVM,那么在分区时,/boot给120M,/swap给256M,/给2900M,然后再创建一个/oracle,把剩下的空间都给/oracle。

在安装过程中,当提示需要换另外一张盘时,你只要再次进入图一所示界面,更改ISO文件并确定以后,再进入虚拟机,选择提示中的ok即可。

同样的方法,我们可以安装好另外一台虚拟机上的linux。

RAC里每个节点都需要两块网卡并使用固定ip,一块作为两个节点互相内部通信用,另外一块作为外部连接用。

我们同样的,选择linux1,进入图一界面,选择add按钮,然后选择EthernetAdapter,然后都选择缺省值并点击next直到结束。

这样就为linux1添加了第二块网卡。

同样的方法为linux2添加第二块网卡。

分别启动两个节点以后,我们在linux为网卡配置ip地址。

笔者的配置是linux1的内部通信ip为:

134.251.0.140,外部通信ip为:

134.251.114.141。

而linux2的内部通信ip为:

134.251.0.141,外部通信ip为:

134.251.114.140。

4.安装共享磁盘

4.1创建共享磁盘

在VMware里,共享磁盘需要使用plainmaker.exe这个工具来创建。

可以到VMwareGSXServer的安装目录下找该工具是否存在。

如果不存在,则可以到google上搜索。

很多站点提供该工具的下载。

进入命令提示符,输入下面的命令来创建共享磁盘。

C:

\>plainmakerD:

\virtualos\sharedisk.pln2048m

该命令运行以后,就会在D:

\virtualos目录下创建一个名位sharedisk.pln的共享磁盘,大小为2G。

4.2添加共享磁盘

共享磁盘安装好以后,我们需要把它加入到前面安装好的两台linux虚拟机里。

选择linux1,仍然进入到图一所示的界面里,选择左边的add按钮,在弹出的框中,选择HardDisk,并点击next,选择方式如下面图二

所示,并点击next,输入我们刚才创建的共享磁盘名:

D:

\virtualos\sharedisk.pln,然后不要点击finish,要点击advanced,选择磁盘为SCSI1:

0。

如下图三所示。

最后点击finish。

这样,我们就为linux1节点添加了共享存储。

随后,我们用同样的方法为linux2节点也添加该共享存储。

4.3配置共享磁盘

把共享存储添加到两个节点以后,还不算完,必须修改两个虚拟机的配置文件。

在每个节点所在目录下都存在一个后缀名为vmx的文件,这就是虚拟机的配置文件了,用notepad打开,把下面三行记录添加进去。

注意,这三行中的每一行都不能重复,所以仔细检查一下vmx文件,确保这三行记录唯一。

每个节点的配置文件都必须添加这三行记录。

disk.locking=FALSE

scsi1.sharedBus="virtual"

scsi1:

0.mode="persistent"

到这里,我们才算是为两个节点都配置好了共享存储。

分别启动两个linux节点以后,进入linux,我们可以使用如下命令来确定两个节点是否都能够找到该存储了。

如果提示出有设备,则表示能够识别共享存储。

fdisk–l/dev/sdb

5.设置两个节点的互相信任机制

由于RAC的节点之间需要完全无障碍的访问,因此需要设定主机名互相访问以及互相信任机制。

注意:

以下所有步骤都必须在两台节点上各自完成。

5.1设置主机名

首先,RAC之间互相不能通过ip来访问,而必须使用主机名来访问,因此需要设定hosts内容。

笔者设定的是节点linux1的内部访问主机名为linux1-prv,而外部访问节点名为linux1;节点linux2的内部访问主机名为linux2-prv,而外部访问节点名为linux2。

需要将这些信息添加到/etc/hosts文件里去,如下所示。

注意,要将127.0.0.1原来所对应的linux1改名为localhost。

#Donotremovethefollowingline,orvariousprograms

#thatrequirenetworkfunctionalitywillfail.

127.0.0.1localhostlocalhost.localdomainlocalhost

134.251.114.140linux1

134.251.114.141linux2

134.251.0.140linux1-prv

134.251.0.141linux2-prv

同样的,修改linux2的/etc/hosts文件,也要将127.0.0.1原来所对应的linux2改名为localhost。

其他设置与linux1节点一样。

设置好以后,在linux1上pinglinux2,在linux2上也pinglinux1,如果都通的话,说明设置无误。

5.2设置telnet访问

(1)通常缺省都会安装telnet-client。

主要确定是否安装了telnet-server软件。

[root@linux1root]#rpm–qa|greptelnet

(2)如果没有安装,则从AS3安装介质上找到该rpm包,并进行安装。

(3)安装好以后,需要启动telnet服务。

输入以下命令,并从弹出的框中选中telnet后确认。

[root@linux1root]#ntsysv

(4)激活telnet服务

[root@linux1root]#servicexinetdrestart

(5)设置允许root进行telnet登录

[root@linux1/root]#vi/etc/pam.d/login

将authrequiredpam_securetty.so这一行开头添加#,从而注释该行。

5.3设置rlogin、rsh

由于在第一个节点上安装oracle软件时,oracle会自动将第一个节点上安装完毕的文件拷贝到第二个节点上,因此需要配置rlogin和rsh以及rcp等。

(1)确定是否安装了rsh-server软件。

[root@linux1root]#rpm–qa|greprsh

(2)如果没有安装,则从AS3安装介质上找到该rpm包,并进行安装。

(3)安装好以后,需要启动rsh、rlogin、rexec服务。

输入以下命令,并从弹出的框中选中rsh、rlogin、rexec后确认。

[root@linux1root]#ntsysv

(4)激活rsh、rlongin服务

[root@linux1root]#servicexinetdrestart

(5)修改/etc/securetty

[root@linux1root]#echo"rexec">>/etc/securetty;echo"rlogin"

>>/etc/securetty;echo"rsh">>/etc/securetty

(6)设置允许root进行rsh、rlogin

[root@linux1/root]#vi/etc/pam.d/rlogin

将authrequiredpam_securetty.so这一行开头添加#,从而注释该行。

(7)在/etc目录下建立hosts.equiv文件,表示两台linux节点互相信任。

[root@linux1/root]#vi/etc/hosts.equiv

在该文件里添加如下内容:

linux1

linux2

linux1-prv

linux2-prv

(8)在root的$HOME目录下,建立.rhosts文件。

[root@linux1/root]#vi.rhosts

在该文件里添加如下内容。

这样,root用户就可以直接rlogin、rsh而不用输入密码。

linux1root

linux2root

linux1-prvroot

linux2-prvroot

(9)配置完以后,我们可以测试一下是否成功。

[root@linux1/root]#rloginlinux2

[root@linux1/root]#rsh–lrootlinux2cat/etc/hosts

[root@linux1/root]#rcp/tmp/testlinux2:

/tmp

6.修改linux内核参数以及其他相应配置

[root@linux1/root]#vi/etc/sysctl.conf

在该文件末尾添加如下内容:

kernel.shmmax=2147483648

kernel.shmmni=4096

kernel.shmall=2097152

kernel.sem=25032000100128

fs.file-max=65536

这里,对每个参数值做个简要的解释和说明。

(1)shmmax:

该参数定义了共享内存段的最大尺寸(以字节为单位)。

缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G。

(2)shmmni:

这个内核参数用于设置系统范围内共享内存段的最大数量。

该参数的默认值是4096。

通常不需要更改。

(3)shmall:

该参数表示系统一次可以使用的共享内存总量(以页为单位)。

缺省值就是2097152,通常不需要修改。

(4)sem:

该参数表示设置的信号量。

(5)file-max:

该参数表示文件句柄的最大数量。

文件句柄设置表示在linux系统中可以打开的文件数量。

修改好内核以后,执行下面的命令使新的配置生效。

[root@linux1/root]#/sbin/sysctl-p

通常,出于性能上的考虑,还需要进行如下的设定,以便改进Oracle用户的有关nofile(可打开的文件描述符的最大数)和nproc(单个用户可用的最大进程数量)。

方法如下:

[root@linux1/root]#vi/etc/security/limits.conf

在该文件里添加如下内容:

oraclesoftnofile65536

oraclehardnofile65536

oraclesoftnproc16384

oraclehardnproc16384

7.配置hangcheck-timer内核模块

Oracle9202以前,都是使用watchdog来检查系统是否挂起。

从9202以后,oracle使用hangcheck-timer模块。

hangcheck-timer模块被加载到内核中,能够定时检查系统是否挂起。

有个可配置的参数用来表示多少时间以后系统没响应就认为是挂起。

该模块在AS3中是自带的。

使用如下命令检查该模块是否存在:

[root@linux1/root]#find/lib/modules-name"hangcheck-timer.o"

使用相应的参数加载该模块:

[root@linux1/root]#/sbin/insmodhangcheck-timerhangcheck_tick=30

hangcheck_margin=180

这里解释一下两个参数的含义:

hangcheck_tick:

该参数定义了模块启动的间隔时段。

其默认值为60秒。

Oracle建议将其设置为30秒。

hangcheck_margin:

该参数定义了多少时间以后系统没响应就认为是挂起。

以秒为单位。

其默认值为180秒。

Oracle建议将其设置为180秒。

检查该模块是否被成功加载:

[root@linux1/root]#grepHangcheck/var/log/messages

为了在linux重启以后,自动加载该模块,可以将加载模块的命令添加到/etc/modules.conf中

[root@linux1/root]#echo"optionshangcheck-timerhangcheck_tick=30

hangcheck_margin=180">>/etc/modules.conf

8.创建oracle用户和dba组

[root@linux1/root]#groupadddba

[root@linux1/root]#useradd–gdbaoracle

[root@linux1/root]#passwdoracle

创建安装oracle所需要的目录。

[root@linux1/root]#mkdir–p/oracle/ora9/product/9.2

[root@linux1/root]#chown–Roracle.dba/oracle/ora9

为oracle用户配置.bashrc文件。

[root@linux1/root]#su–oracle

[oracle@linux1oracle]$vi.bashrc

将以下内容添加到.bashrc文件里。

exportLD_ASSUME_KERNEL=2.4.1

exportORACLE_BASE=/oracle/ora9

exportORACLE_HOME=/oracle/ora9/product/9.2

exportPATH=$ORACLE_HOME/bin:

$ORACLE_HOME/Apache/Apache/bin:

$PATH

exportORACLE_OWNER=oracle

exportORACLE_SID=rac9i1

exportORACLE_TERM=vt100

exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:

/lib:

/usr/lib:

/usr/local/lib:

$LD_LIBRARY_PATH

以上步骤必须在两个节点上分别完成。

注意:

红色部分,在节点linux1上ORACLE_SID=rac9i1,而在节点linux2上则为ORACLE_SID=rac9i2。

而蓝色部分,很多资料上只是说LD_LIBRARY_PATH=$ORACLE_HOME/lib即可。

但是经过笔者测试,只写这些是不够的,在下面srvconfig–init时会报错。

必须按照上面蓝色部分的内容进行配置。

9.为共享设备划分裸设备

通常,对于RAC,我们都会使用裸设备来存放数据文件等需要共享的数据库文件。

这就需要我们对共享存储划分出若干的裸设备,每个裸设备对应一个文件。

9.1磁盘分区

我们要对共享存储进行分区,该步骤只需要在其中一个节点上完成即可。

笔者划分了3个主分区(primary)和一个包含11个分区的扩展分区(extend)。

注意,linux上最多只能划分15个分区。

超过的部分,linux是无法识别的。

对每个分区的规划如下所示:

分区名尺寸存放的文件

/dev/sdb110M用于存放ClusterManagerQuorum文件

/dev/sdb2350M回滚段表空间1:

Undotbs1

/dev/sdb3350M回滚段表空间1:

Undotbs2

/dev/sdb5500M系统表空间:

system

/dev/sdb610MSpfile

/dev/sdb7300M临时表空间:

temp

/dev/sdb8300M用户表空间:

user和indx,也可以不设置该分区

/dev/sdb910M控制文件:

controlfile

/dev/sdb1010M控制文件:

controlfile

/dev/sdb1120M第一个节点的第一组联机日志文件

/dev/sdb1220M第一个节点的第二组联机日志文件

/dev/sdb1320M第二个节点的第一组联机日志文件

/dev/sdb1420M第二个节点的第二组联机日志文件

/dev/sdb15100MSrvconfig模块所需要的SharedConfiguration文件

规划好以后,我们可以开始实际创建这些分区了。

进入linux,执行如下命令进入分区界面。

[root@linux1/root]#fdisk/dev/sdb

首先输入n,然后输入p,再输入1,回车接受缺省值,再输入+10M,这样我们就创建了/dev/sdb1。

同样的方法,我们可以创建sdb2和sdb3。

再次输入n,然后输入e,回车接受缺省值,再回车接受缺省值,这样,我们就创建了扩展分区sdb4,同时把剩下的空间全都给了sdb4。

接下来,我们输入n,然后回车接受缺省值,再输入+500M,这样,我们就创建了sdb5。

同样的方法,我们可以把剩下的所有分区都创建出来。

创建完毕以后,输入p,显示我们刚才所创建的所有分区,确认无误以后,输入w,从而保存我们所创建的分区,并更新分区表。

9.2挂载裸设备

该步骤需要在两个节点分别进行。

对裸设备的规划如下:

裸设备文件名挂载的分区存放的文件

/dev/raw/raw1/dev/sdb1ClusterManagerQuorum

/dev/raw/raw2/dev/sdb2Undotbs1

/dev/raw/raw3/dev/sdb3Undotbs2

/dev/raw/raw4/dev/sdb5system

/dev/raw/raw5/dev/sdb6Spfile

/dev/raw/raw6/dev/sdb7temp

/dev/raw/raw7/dev/sdb8user和indx

/dev/raw/raw8/dev/sdb9controlfile

/dev/raw/raw9/dev/sdb10controlfile

/dev/raw/raw10/dev/sdb11Log1-thread1

/dev/raw/raw11/dev/sdb12Log2-thread1

/dev/raw/raw12/dev/sdb13Log

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1