由于图片无法显示,请参考我豆丁文档:  http://www.docin.com/p1-617774274.html

ORACLE 10G RAC安装全面解读

王路平


1.ORACLE Database RAC说明... 1-2

1.1RAC系统说明... 1-2

1.2安装前的准备工作... 1-2

1.2.1硬件方面的准备工作... 1-2

1.2.2软件方面的准工作... 1-2

2.安装准备工作... 2-3

2.1网络配置文件的修改... 2-3

2.2创建相应的ORACLE用户和用户组... 2-3

2.3修改系统参数... 2-5

2.4创建CRShome目录... 2-5

2.5存储设备的设置... 2-5

3.安装具体步骤... 3-7

3.1安装clusterware3-7

3.2安装总结... 3-12

4.创建数据库... 4-12

4.1安装数据库软件... 4-12

4.2创建数据库... 4-12


1.ORACLE Database RAC说明

1.1RAC系统说明

ORACLE RAC系统是指ORACLE公司针对ORACLE Database推出的一个群集系统,RACreal application cluster的简写,意味真正的应用程序群集系统。RAC能够独立进行群集方式工作,同时也支持嵌入第三方群集系统中,比如SUN CLUSTER 3.2等所谓的vender群集系统中。

结合ORACLEASM(自动存储管理)、Oracle Clusterware等,建议数据库在系统独立运行,无需运行第三方的群集系统,卷管理系统等。

1.2安装前的准备工作

俗话说,磨刀不误砍柴工,在安装RAC之前,仔细阅读官方的安装手册是最佳途径,因为网上的很多文章写的时候,都是按照作者所拥有的环境进行安装的,实际中会有很多的变数导致安装出现很多情况,因此,网上文章作为每个安装工程师来说,只有参考价值。

1.2.1硬件方面的准备工作

在硬件方面,首先确认服务器的类型,操作系统的类型,存储器是否正确连接到两台或者多台服务器上,主机系统能否正确访问存储,是否所有主机系统共享了改存储器。

主机系统方面,是否有足够的网卡,RAC需要至少一个public和一个private的网卡,分别用于数据库instance的访问和心跳网卡(此心跳也用来传输一些数据库的数据)。

1.2.2软件方面的准工作

在软件方便,一是根据主机类型,选择相应的数据库软件,包括databaseclusterware软件,需要注意的是,最好能选择比较新的版本的软件,因为ORACLE RAC方面,针对很多平台,最初版本软件或多或少都会存在一些bug,选择正确的版本后,安装能够尽量减少麻烦。

操作系统方面,也应该根据数据库软件做最优的安装,比如solaris 10,最好能够使用update 10的版本,EIS光盘最好能够使用最近的光盘来安装最新的10的推荐补丁包。补丁一定要打最新的,这个可以大大减小bug的产生。

2.安装准备工作

本示例安装主要基于ORACLE SPARC服务器的两个节点安装RAC,由于使用的是T5120LDM创建的两个虚拟主机,所以相关网卡名字等都是按虚拟机里面的命名方式进行的。

安装完操作系统后,必须打上操作系统的推荐补丁包,用最近的EIS光盘来,如果没有EIS光盘,可以到oracle网站下载最近的推荐补丁包,比如solaris10的最新补丁下载地址如下:这个可能需要OPN的账号

https://updates.oracle.com/download/12714436.html

2.1网络配置文件的修改

/etc/hosts该文件记录了将来使用的IP地址,包括publicprivate的地址:

192.168.0.12orac1(主机1的本地地址)

192.168.0.13orac2(主机2的本地地址)

192.168.0.14orac1-vip (主机1public地址)

192.168.0.16orac2-vip (主机2public地址)

192.168.0.15orac1-priv(主机1private地址)

192.168.0.17orac2-priv(主机2private地址)

私有地址可以设置成另外一个网段的地址,本示例都为一个网段地址。

另外一台主机的/etc/hosts文件里面需要这些地址,都写上。

/etc/下主机网卡配置文件,public地址将来可以用在本地地址的那张网卡上,系统能够plumb一个虚拟网卡,比如vnet0:1,私有地址必须单独指定,比如/etc/hostname.vnet1,里面写入orac1-priv即可在系统reboot时候自动将私有地址网卡plumb起来。

建立好所有配置文件,需要确认以下地址是能够ping通的:

ping orac1ping orac2ping orac1-privping orac2-priv

2.2创建相应的ORACLE用户和用户组

根据oracle数据库安装的需要创建相应的unix组和用户oracle

groupadd dba创建dba

groupadd oinstall创建oinstall

useradd -g oinstall -G dba -d /opt/oracle -m -s /bin/sh oracle 创建oracle用户

passwd oracle修改oracle用户的密码

创建这些用户和用户组,对来说非常重要,千万不要小看这些,首先必须保证以上的giduid在所有节点上保持一致,在安装Clusterware,如果没有正确设置一些目录和设备的权限,可能会导致这些软件不能正确安装或者安装后无法正常使用。

oracle用户的.profile文件,需要做如下的定义,具体可以根据文档对照主机系统配置来进行修改和优化:

ORACLE_BASE=/opt/oracle/app/oracle

export ORACLE_BASE

ORACLE_HOME=/opt/oracle/app/oracle/10g

export ORACLE_HOME

ORACLE_SID=inst-ora1

export ORACLE_SID

PATH=${PATH}:$ORACLE_HOME/bin

export PATH

其他诸如 LD_LIBRARY等参数都可以在.profile文件里面定义,SID每个节点都需要定义成123,4等,前缀为整个群集database定义的实例名,比如inst-ora,各个节点的SID就是inst-ora1insta_ora2等等。

建立信任关系:

如果是10g,只需要建立rsh的信任关系,如果是11G的话,必选建立ssh的主机信任关系:

1.rsh信任关系

在所有节点执行以下命令:

su - oracle

touch .rhosts

echo + > .rhosts

2.ssh信任关系

用命令来创建这些信任关系非常方便,如果使用11grunInstaller程序的话,可以使用该程序提供的设置程序来建立信任关系,以下为命令方式建立:

su – oracle

mkdir .ssh(如果没有.ssh就创建之);chmod 755 .ssh

/usr/bin/ssh-keygen -t rsa

/usr/bin/ssh-keygen -t dsa

以上根据提示输入恰当的内容即可,以上两个命令分别在.ssh目录下生成id_rds.pubid_dsa.pub两个文件,将这两个文件的内容全部拷贝到authorized_keys文件里面去,chmod 644 .ssh/authorized_keys文件。该文件里面应该包含所有节点的id_rds.pubid_dsa.pub文件的内容。

2.3修改系统参数

操作系统kernel参数需要根据具体机器配置进行适当修改,以下为典型的系统参数,可以将这些写入/etc/system文件中,修改这个文件后,需要reboot系统才能生效:

set noexec_user_stack=1

set semsys:seminfo_semmni=100

set semsys:seminfo_semmns=1024

set semsys:seminfo_semmsl=256

set semsys:seminfo_semvmx=32767

set shmsys:shminfo_shmmax=4294967295

set shmsys:shminfo_shmmin=1

set shmsys:shminfo_shmmni=100

set shmsys:shminfo_shmseg=10

Solaris 10下,如果使用project来管理,可以动态修改这些kernel参数,这对以后生产系统在线提供了非常好的便利。

2.4创建CRShome目录

CRShome最好不要和ORACLEhome放在一起,因为CRS目录最终将成为root用户的权限。

mkdir -p /opt/crs/oracle/product/10/app

chown -R root:oinstall /opt/crs

chmod -R 775 /opt/crs/oracle

注意此处crs目录的宿主被设置成root:oinstall,如果设置成其他的话,安装以后运行root.sh脚本将会有大量的警告,同时,crs无法正常运行的可能性将非常大。

2.5存储设备的设置

存储设备主要提供给Clusterware软件存放OCRvoting disk之用,并为数据库提供存放数据等文件的,决定存储如何使用非常重要,这主要影响以后数据库的架构,存储可以支持ASM方式、cluster file system方式以及raw设备方式。以下的matrix为各个存储方式对CRS等的支持:

File Types Supported

Storage OptionCRS DatabaseRecovery

Automatic Storage ManagementNoYes Yes

Cluster file systemYes Yes Yes

NFS file system

PRIMECLUSTER and a certified Yes Yes Yes

NAS device (SPARConly)

Shared raw logical volumes (SPARC only) Yes Yes No

Shared raw partitions Yes Yes No

建议使用ASM自动存储管理方式来进行存储的管理,对于Cluster file system来说,大多数需要成本来购买相应的软件,但也可以采用SUN公司的QFS软件(该软件应该是免费的)。采用raw裸设备的话,对用户来说,要求相对要高些,因为raw安装数据库的时候,需要为每个dbf等文件分配一个raw设备,以后需要添加新的dbf等文件话,其操作步骤还是比较繁琐的。

使用ASM一定要注意每个LUN的划分,千万不要使用EFI格式做磁盘的label,在多次实践中发现,在使用EFIlabel格式的存储时候,将出现一个比较奇怪的现象,建好cluster后能够顺利创建数据库,但是instance只能在一个节点启动,另外一个节点无法启动,查看alertlog文件,报告出现一个ora-600的错,以及queue file IO error等错误。在solaris下,将LUN划分为2T以下,采用VTOC方式的label即可,官方文档建议创建大空间的LUN来减少系统对存储的管理,但实践证明,如果存储空间大,可以建立多个小于2TLUN,然后创建一个或多个ASM组来管理这些LUN是比较理想的。

根据RAC对存储空间的要求来划分对应的LUN或者slice,存放OCRLUN voting disk都可以小些,建议使用1G的空间,存放数据库的数据文件等存储的LUN划分得大些。

如果这些LUN曾经被用过,特别是曾经在RAC中被使用过的话,那么就需要将磁盘里面的内容清除,方法就是使用dd命令将磁盘内容清除,例如:

dd if=/dev/zero of=/dev/rdsk/c2t0d0s0 bs=1024k count=1000

本示例中,c0d1s0 作为OCR存放设备,c0d1s0作为voting disk,安装中安装程序会提示使用哪种冗余方式,一般采用Normal方式,也就是OCR设备需要两个设备来做mirrorvoting disk需要三块设备做冗余。如果这些设备在存储器上已经做了raid 5等冗余保护,那么这些冗余方式可以采用External方式,即只要单个设备即可。

设备权限必须设置正确,否则安装程序会报错,具体权限设置如下:

chown -R root:oinstall /dev/rdsk/c0d1s0 OCR盘宿主为root,用户为oinstall

chmod 640 /dev/rdsk/c0d1s0

chown -R root:oinstall /dev/rdsk/c0d1s3 voting disk设置如同CRS

chmod -R 660/dev/rdsk/c0d1s3voting disk文件为660的读写属性

存放ORACLE数据库dbf等文件的raw设备权限设置为oracledba即可,写权限设置为775

3.安装具体步骤

3.1安装clusterware

仔细做好准备工作,一定给后面的工作带来事倍功倍的效果。

将软件包10gr2_cluster_sol.cpio.gz解开,使用runInstaller命令来安装clusterware,本示例安装是不基于任何的第三方cluster软件的,如果有第三方的HA软件,必须参考相关文档,比如说如果基于SUN Cluster软件,那么就必须安装UDLM软件,该软件如果是10G的话,需要单独下载,该软件包含在例如10.2.4patchset里面,如果是11G的话,就需要下载那个包含了clusterudlm等软件集成的软件包。

由于图片无法显示,请参考我豆丁文档: http://www.docin.com/p1-617774274.html

3.1显示的oraInventory就按缺省的,指定的组也按缺省的dba,这个好处是,以后如果需要uninstall的话,可以使用runInstaller –deinstall方式直接卸载,比较能够干净的清除文件。

3.2显示的需要修改crshome目录,确认home目录的权限一定是root:oinstall。接下来runInstaller会检查相关条件是否符合,比如kernel参数的设置,系统的补丁级别等等,确认没有任何errorwarnning

3.3增加另一个节点网卡相关name,如果有第三方cluster的话,这些信息能够自动列出来,根据/etc/hosts文件将对应IP地址的主机名写上去即可。此处cluster的名字缺省为crs,可以修改成客户自己的名字,比如ORA-CRS等。

3.4 指定OCR所使用的设备,如果使用Normal冗余的话,需要两块设备来做镜像,如果设备本身具有的冗余保护,那么就指定使用External冗余。

3.5 选择voting diskOCR设备是一样的要求,务必注意这些设备的宿主和权限,runInstaller程序会提醒安装权限,如果没有正确设置的话,该安装程序会有警告。

接下来就是点击install按钮即可进行安装clusterware了!

3.6 软件安装将自动在两个节点上安装所需要的crs系统文件,图示的两个脚本必须使用root用户来执行,以下为root.sh在两个节点执行的摘录:

a.orac1主机执行root.sh

如果脚本出现任何的错误,都需要查找log,具体log目录为

CRS_HOME/log/hostnamehostname为节点名字)

Checking to see if Oracle CRS stack is already configured

Setting the permissions on OCR backup directory

Setting up NS directories

Oracle Cluster Registry configuration upgraded successfully

Successfully accumulated necessary OCR keys.

Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.

node <nodenumber>: <nodename> <private interconnect name> <hostname>

node 1: orac1 orac1-priv orac1

node 2: orac2 orac2-priv orac2

Creating OCR keys for user 'root', privgrp 'root'..

Operation successful.

Now formatting voting device: /dev/rdsk/c0d1s3

Format of 1 voting devices complete.

Startup will be queued to init within 30 seconds.

Adding daemons to inittab

Expecting the CRS daemons to be up within 600 seconds.

CSS is active on these nodes.

orac1

CSS is inactive on these nodes.

orac2

Local node checking complete.

Run root.sh on remaining nodes to start CRS daemons.

b.orac2节点上运行root.sh

Checking to see if Oracle CRS stack is already configured

Setting the permissions on OCR backup directory

Setting up NS directories

Oracle Cluster Registry configuration upgraded successfully

clscfg: EXISTING configuration version 3 detected.

clscfg: version 3 is 10G Release 2.

Successfully accumulated necessary OCR keys.

Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.

node <nodenumber>: <nodename> <private interconnect name> <hostname>

node 1: orac1 orac1-priv orac1

node 2: orac2 orac2-priv orac2

clscfg: Arguments check out successfully.

NO KEYS WERE WRITTEN. Supply -force parameter to override.

-force is destructive and will destroy any previous cluster

configuration.

Oracle Cluster Registry for cluster has already been initialized

Startup will be queued to init within 30 seconds.

Adding daemons to inittab

Expecting the CRS daemons to be up within 600 seconds.

CSS is active on these nodes.

orac1

orac2

CSS is active on all nodes.

Waiting for the Oracle CRSD and EVMD to start

Oracle CRS stack installed and running under init(1M)

Running vipca(silent) for configuring nodeapps

The given interface(s), "vnet0" is not public. Public interfaces should be used to configure virtual IPs.

以上提示说明VIP没有能够运行正常,这是一个bug,需要用root用户登录系统然后运行vipca程序来正确设置相关VIP的内容,结果如下:

3.7 vipca里面只需要输入IP Alias Name,使用table键后,vipca能够在/etc/hosts里面查找相关内容,并自动填入,有时程序会出错,最好再检查一遍,如有错,手工填入即可,然后按next,再finish后,vipca程序就创建相关内容并启动相关进程,如下所示:

Vipca设置结束后,回到runInstaller上按下ok,将继续配置工作直到结束推出。

3.2安装总结

个人认为ORACLErunInstaller程序写得不怎么样,上文提到注意的地方,比如磁盘设备文件的权限啊这些,runInstaller程序只会报错,不具体指出哪些地方有问题,因此,安装前的准备工作一定要按照官方文档一步一步进行准备货落实相关规定,这对安装非常有好处。安装并配置完成后,可以使用以下命令来确认crs是否能够正常工作,/opt/crs/oracle/product/10/app/bin/crs_stat –t

NameTypeTargetState Host

------------------------------------------------------------

ora.orac1.gsdapplicationONLINEONLINEorac1

ora.orac1.onsapplicationONLINEONLINEorac1

ora.orac1.vipapplicationONLINEONLINEorac1

ora.orac2.gsdapplicationONLINEONLINEorac2

ora.orac2.onsapplicationONLINEONLINEorac2

ora.orac2.vipapplicationONLINEONLINEorac2

4.创建数据库

Clusterware安装完毕,确认所有状态正常后就可以安装数据库软件并可以在两个节点上创建实例了。

4.1安装数据库软件

使用runInstaller来安装数据库软件,此时选择只安装数据库软件,创建数据库后面可以使用dbca来进行,选择cluster方式同时安装两个节点的数据库软件。此处比较简单,图片省略,下面重点介绍dbca创建数据库。

4.2创建数据库

数据库软件安装完成后,使用dbca创建数据库,具体步骤如下:

4.1 创建数据库选择RAC方式进行,下一部后选择所有节点。

4.2 选择实例名为inst-ora,这样在两个节点上分别创建inst-ora1inst-ora2两个实例。

4.3 选择实例名后,输入管理口令,选择ASM作为存储。

4.4 输入ASM实例的管理口令,并选择Create initialization parameter file(IFILE),缺省值即可。

4.5 创建ASM磁盘组,如果没有列出来,可以使用Change Disk Discovery Path更改路径,比如/dev/rdsk/*,后面的*号一定要写上,否则可能存在问题。

4.6创建ASM磁盘组后,其他参数根据客户要求进行定义,比如字符集等参数,最后进入以上图所示的Create Database,按下Finish进入实质的创建数据库阶段。

4.7 创建数据库实例,直至完成:

4.8 dbca在两个节点上启动实例,以下可以用/crs_stat –t命令查看,如果能够显示以下内容,说明rac至此安装成功:

NameTypeTargetStateHost

------------------------------------------------------------

ora.instora.db applicationONLINEONLINEorac2

ora....a1.inst applicationONLINEONLINEorac1

ora....a2.inst applicationONLINEONLINEorac2

ora....SM1.asm applicationONLINEONLINEorac1

ora....C1.lsnr applicationONLINEONLINEorac1

ora.orac1.gsdapplicationONLINEONLINEorac1

ora.orac1.onsapplicationONLINEONLINEorac1

ora.orac1.vipapplicationONLINEONLINEorac1

ora....SM2.asm applicationONLINEONLINEorac2

ora....C2.lsnr applicationONLINEONLINEorac2

ora.orac2.gsdapplicationONLINEONLINEorac2

ora.orac2.onsapplicationONLINEONLINEorac2

ora.orac2.vipapplication ONLINEONLINEorac2