Centos-6.5搭建oracle11g RAC集群

Posted yukynim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos-6.5搭建oracle11g RAC集群相关的知识,希望对你有一定的参考价值。

一、基本概念

RAC( Real Application Clusters-----真正的应用集群)

RAC数据库是Oracle公司数据库的集群解决方案、高可用性解决方案。两个或多个服务器之间通过一个内部的私有网络互相连接起来,使用集群软件将集群中所有的服务器融合成一个整体,构成一个集群。

集群内部的所有服务器共享存储,所有服务器都接入公共网络,通过集群唯一的别名对外形成逻辑上单一的数据库提供服务,对内实现集群数据库的高可用性、节点间的负载均衡和Failover(失败切换)。

物理结构:

  • 集群的节点(Cluster node)——2 个到 N 个节点或者主机运行 Oracle Database Server。
  • 共享存储(shared Storage)——RAC 需要共享存储设备让所有的节点都可以访问数据文件。独立于实例之外。
  • 私有网络(Network Interconnect)——RAC 之间需要一个高速互联的私有网络来处理通信和 Cache Fusion。
  • 对外服务的网络(Production Network)——RAC 对外服务的网络。客户端和应用都通过这个网络来访问。

RAC的特点:

  • 双机并行。RAC是一种并行模式,并不是传统的主备模式。RAC集群的所有成员都可以同时接收客户端的请求并处理。
  • 高可用性。集群中只要有一个节点存活,就能正常对外提供服务。
  • 易伸缩性。RAC可以非常容易地添加、删除节点。

Oracle 11gR2版本中推出了网格即插即用(Grid Plug and Play,GPnP),可以实现节点的快速添加。

  • 高吞吐量。随着节点数的增加,整个RAC的吞吐量也在不断增长。

存储管理软件——ASM(Automated Storage Management,自动存储管理)

为Oracle默认的存储管理方式。

ASM是建立在裸设备基础上,没有任何文件系统对它进行格式化。

ASM能够实现镜像和条带化,支持动态地添加、删除磁盘,并且能自动实现重新平衡。

 

集群管理软件——Clusterware

从Oracle 11g开始,Clusterware作为Grid Infrastructure的一部分被安装和使用。安装和运行Clusterware的服务器可以具备不同机型、不同配置,但同一个集群必须安装相同的操作系统。

 

数据库管理软件——RAC database

与集群管理软件配合,用以实现RAC的高可用性;

 

私有IPPublic IP

专用(私有)IP地址只用于内部群集处理,如心跳侦测,服务器间的同步数据用。

 

虚拟IPVirtual IP

当一个群集节点出现故障时,数据库应用程序通过虚拟IP地址进行故障切换,同时有均衡负载的作用。

 

公共IPPublic IP

公共IP地址是正常的(真实的)IP地址,通常DBA和SA使用公共IP地址在来管理存储、系统和数据库。

 

监听IPSCAN IP

从Oracle 11g R2开始,新增了加监听IP地址(SCAN IP)

由于每增加一个RAC节点就要增加一个VIP,为了简化维护,11gR2之后引入了scanIP用于给客户连接使用,一个集群中最多三个,如果使用/etc/hosts文件解析scan ip,因为不能做轮训的负载均衡,所以就只要一个可以了。

这样,不论集群数据库是否有添加或者删除节点的操作,均不会对Client产生影响。

 

二、环境搭建

    两台服务器,至少配有两张网卡,内存2G以上,硬盘30G;

    操作系统linux redhat 6.5 x86-64(12c开始不支持32位)

配置网络:

 Public IP必须与Private IP分属两张不同的网卡;

编辑/etc/hosts文件,配置内容如下:

[[email protected] network-scripts]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

#127.0.0.1 的解析不能删掉

vi /etc/hosts

#Public IP 172.17.166.71 rac-1

172.17.166.72 rac-2

#Private IP

192.168.166.71 rac-1-priv

192.168.166.72 rac-2-priv

#Virtual IP172.17.166.69  rac-1-vip

172.17.166.70  rac-2-vip

#scan IP

172.17.166.30 rac-scan

创建用户和组

在节点rac-1rac-2上执行以下命令:

groupadd -g 501 oinstall

groupadd -g 502 dba

groupadd -g 503 oper

groupadd -g 504 asmadmin

groupadd -g 505 asmoper

groupadd -g 506 asmdba

useradd -g oinstall -G dba,asmdba,oper oracle

useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid

用户创建之后要给用户添加密码

passwd grid

passwd oracle

设置grid用户的环境变量:

[[email protected] rac-1 ~]# su -grid

[[email protected] ~]$ vim .bash_profile

export ORACLE_SID=+ASM1

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/11.2.0/grid

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"

export PATH=$ORACLE_HOME/bin:$PATH

export LANG=en_US

umask 022

 

设置oracle用户环境变量

[[email protected] rac-1 ~]# su - oracle

[[email protected] rac-1 ~]$ vi ~/.bash_profile

export ORACLE_SID=rac1

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"

export TMP=/tmp

export TMPDIR=$TMP

export PATH=$PATH:$ORACLE_HOME/bin

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

umask 022

 

注意:另外一台数据库实例名须做相应修改:

Oracle:export ORACLE_SID=rac2

grid:export ORACLE_SID=+ASM2

 

创建所需目录和设置权限

在节点rac-1rac-2上执行以下命令:

mkdir -p /u01/app/oracle

mkdir -p /u01/app/grid

mkdir -p /u01/app/11.2.0/grid

chown -R grid:oinstall /u01/app/grid

chown -R grid:oinstall /u01/app/11.2.0

chown -R oracle:oinstall /u01/app/oracle

chmod -R 775 /u01

mkdir -p /u01/app/oraInventory

chown -R grid:oinstall /u01/app/oraInventory

chmod -R 775 /u01/app/oraInventory

修改配置文件

在节点rac-1、rac-2修改以下配置文件

1. selinux的配置文件

setenforce 0           #立即生效,临时关闭,重启恢复

vi /etc/selinux/config

设置SELINUX=disabled,#永久关闭,重启生效

 

2.修改/etc/pam.d/login

[[email protected] ~]# vi /etc/pam.d/login

添加以下内容:

session required pam_limits.so

3.修改limits.conf

由于oracle软件拥有者的默认硬限制不足以安装和配置oracle grid infrastructure

cp /etc/security/limits.conf /etc/security/limits.conf.bak

vi /etc/security/limits.conf

添加以下内容:

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack 10240

 

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

grid soft stack 10240

 

4.修改/etc/profile

cp /etc/profile /etc/profile.bak

vi /etc/profile

在文件最后添加以下内容:

#set oracle rac env

if [ $USER = "ORACLE" ] || [ $USER = "GRID" ];then

    if [ $SHELL = "/bin/ksh" ];then

       ulimit -p 16384

       ulimit -n 65536

    else

       ulimit -u 16384 -n 65536

    fi

    umask 022

fi

 

5.修改/etc/sysctl.conf

cp /etc/sysctl.conf /etc/sysctl.conf.bak

vi /etc/sysctl.conf

添加以下内容:

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 1054472192  #1/2物理内存(单位M)*1024*1024

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_max = 1048586

net.ipv4.tcp_wmem = 262144 262144 262144

net.ipv4.tcp_rmem = 4194304 4194304 4194304

 

[[email protected] ~]sysctl -p

使修改参数立即生效。

停止并删除ntp服务以及其他不需要的服务

CTSS时间同步服务作为Oracle Clusteware的一部分被安装,在系统中,如果察觉到时间同步服务或者时间同步服务配置,那么CTSS将以观察模式(Oberver Mode)启动和运行,不执行时间同步操作。CTSS守护进程能随时被安装,并将一直运行,但是只有在系统符合配置条件情况下才会起作用。如果NTP不存在于任何的集群服务器中,CTSS将被激活,接管集群的时间管理工作,以活动模式(Active Mode)启动和运行,使用集群其中一个服务器作为参考服务器,同步集群中的其他服务器的时间。

 

建议使用CTSS,所以关闭ntp服务,并关闭开机自启动。

在节点rac-1、rac-2停用ntp服务,并删除ntp服务的配置。

[[email protected] ~]# service ntpd status

ntpd is stopped

[[email protected] ~]# chkconfig ntpd off

[[email protected] ~]# cp /etc/ntp.conf /etc/ntp.conf.bak

[[email protected] ~]# rm -rf /etc/ntp.conf

同样,在rac-2上也停止并删除ntp服务。

其他不需要的服务也一并关掉开机自启,有些可能因为就没有安装这个服务报错,可以忽略;

chkconfig autofs off

chkconfig acpid off

chkconfig sendmail off

chkconfig cups-config-daemon off

chkconfig cpus off

chkconfig xfs off

chkconfig lm_sensors off

chkconfig gpm off

chkconfig openibd off

chkconfig pcmcia off

chkconfig cpuspeed off

chkconfig nfslock off

chkconfig ip6tables off

chkconfig iptables off

chkconfig rpcidmapd off

chkconfig apmd off

chkconfig sendmail off

chkconfig arptables_jf off

chkconfig microcode_ctl off

chkconfig rpcgssd off

配置oracle,grid 用户SSH对等性

(11g之后不配也行,后面安装软件的时候会有图形化的ssh配置)

在节点rac-1和rac-2上配置oracle、gird用户ssh对等性。

su - oracle

mkdir ~/.ssh

chmod 700 ~/.ssh

ssh-keygen -t rsa

一路回车

ssh-keygen -t dsa

一路回车(两个节点都要生成)

返回节点1:

cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

ssh rac-2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

ssh rac-2 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

scp ~/.ssh/authorized_keys [email protected]:~/.ssh/authorized_keys

验证,节点rac-1、rac-2

ssh rac-1 date

ssh rac-2 date

ssh rac-1-priv  date

ssh rac-2-priv  date

 

重复上述步骤,以grid用户配置其对等性。

配置yum源,安装必要软件

vi /etc/yum.repos.d/base.repo

 

[base]

name=base

baseurl=ftp://172.17.62.160/pub/centos6.5  #也可以使用本地yum源 file:///挂载点

enable=1

gpgcheck=0

 

rm -rf /etc/yum.repos.d/CentOS-*

yum clean all

yum list

yum install -y  binutils*  compat-libstdc*  elfutils-libelf*  gcc*  glibc*  ksh*  libaio*  libgcc* libstdc*  make*  sysstat*  unixODBC*  libaio-devel*  glibc-devel.i686 libaio.i686 libaio-devel.i686  libstdc++-devel.i686 unixODBC-devel.i686 compat-libcap1*  compat-libcap1.i686  expat* 

上传ORACLE 11g的安装介质,并解压

为便于将来安装软件,分别将其move到oracle用户和grid用户的家目录:

[[email protected] ~]# mv database/ /home/oracle/

[[email protected] ~]# mv grid/ /home/grid/

确认一下两个节点RPM包cvuqdisk-1.0.9-1.rpm是否安装。

#rpm -qa|grep cvuqdisk

如果没装,在两个节点执行如下

[[email protected] ~]#cd /home/grid/grid/rpm/

[[email protected] ~]#rpm -ivh cvuqdisk-1.0.9-1.rpm

[[email protected] ~]#scp  /home/grid/grid/rpm/cvuqdisk-1.0.9-1.rpm [email protected]:/root

[[email protected] ~]# rpm -ivh cvuqdisk-1.0.9-1.rpm

添加共享存储

磁盘规划如下:

/dev/sdb

1024MB

OCR

/dev/sdc

1024MB

VotingDisk

/dev/sdd

10240MB

配置DATA磁盘组,存放数据库

/dev/sde

10240MB

配置FLASH磁盘组,用于闪回区

磁盘同时挂载给两台服务器,配置multipath多路径,由于redhat6以后oracle不再支持asmlib(仅原生redhat6 kernel)故采用udev的方式配置asm

 

主节点rac-1:

[[email protected] ~]#  scsi_id --whitelisted --replace-whitespace --device=/dev/sdb

36000c297937b5900e61de1f6c8ce7ada

[[email protected] ~]#  scsi_id --whitelisted --replace-whitespace --device=/dev/sdc

36000c29950ca49868a7c9b259533ef8c

[[email protected] ~]#  scsi_id --whitelisted --replace-whitespace --device=/dev/sdd

36000c29ae3c78012d3713d8c6ec4afd8

[[email protected] ~]#  scsi_id --whitelisted --replace-whitespace --device=/dev/sde

36000c293944d73c1fff875cc1ac69e4d

 

2个节点rac-1和rac-2:

把上面查询的结果写入下面的文件:

rac-1&rac-2:

[[email protected] ~]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules

 

KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c297937b5900e61de1f6c8ce7ada", NAME="asm-DATA1", OWNER="grid", GROUP="asmdba", MODE="0660"#每个磁盘的规则必须是在一行,不能有回车

KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29950ca49868a7c9b259533ef8c", NAME="asm-DATA2", OWNER="grid", GROUP="asmdba", MODE="0660"

KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29ae3c78012d3713d8c6ec4afd8", NAME="asm-FRA", OWNER="grid", GROUP="asmdba", MODE="0660"

KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c293944d73c1fff875cc1ac69e4d", NAME="asm-OCR", OWNER="grid", GROUP="asmdba", MODE="0660"

 

[[email protected] rules.d]#  start_udev

[[email protected] rules.d]#  ls -l /dev/asm*

[[email protected] rules.d]# ls -l /dev/asm*

 

 

至此,环境准备完成,建议重启一次服务器;

安装前预检查配置信息

[[email protected] grid]$ ./runcluvfy.sh stage -pre crsinst -n rac-1,rac-2 -fixup -verbose

i386类的依赖软间可能因为版本问题,检查不成功

/bin/rm: cannot remove `/tmp/bootstrap‘: Operation not permitted

./runcluvfy.sh: line 99: /tmp/bootstrap/ouibootstrap.log: Permission denied

权限不足导致,

[[email protected] ~]# chown -R grid:oinstall /tmp/bootstrap

--为grid赋权

安装Grid软件

确保"rac1"和"rac2"已经启动,grid软件的安装需要图形化界面,如果安装服务器的时候没有安装图形化界面,需要先安装图形化界面,然后登录Xmanger。也可以选择使用VNC

1.打开Xstart,新建会话,协议选择SSH,输入用户名密码,命令选择GNOME,高级选择Xstart sample;

2.登录图形化界面后,新建一个Terminal,切换到grid用户,

.

 

 

xhost + 这个命令将允许别的用户启动的图形程序将图形显示在当前屏幕上。
一般与DISPLAY共同使用

[[email protected] ~]$./runInstaller

 

第1步:默认即可。选择"Install and Configure Oracle Grid Infrastructure for a Cluster".

 

第2步:选择高级安装.

 

第3步:选择语言

 

第4步:因为没有使用DNS解析地址,故去掉Configure GNS,设置SCAN Name与/etc/hosts文件一致,其他默认。

 VIP不可ping通

第5步:选择Add,添加节点

 

 

Public Hostname输入rac-2, Virtual Hostname输入rac-2-vip

验证ssh等效性。

1)        如果前置未设置ssh等效性:选择ssh connectivty,输入OS password:grid(grid用户密码),点击setup,等待即可,成功则下一步。然后点击“Test”.

2)        如果前面已经设置了ssh等效性:可以点击“Test”,或直接下一步。

 

 

点击"Next",出现[INS-40912]错误:

 

是由于当前VIP能够ping通造成,禁用VIP地址所在网卡即可;

ifdown ethX

第6步:选择网卡;

 

第7步:默认即可."Oracle Automatic Storage Management(Oracle ASM)"

 

 

第8步:创建ASM磁盘组。若未发现磁盘,则点击change Discovery Path,输入磁盘所在地址。

/dev/ *

 

 

 

external:外部冗余,不对数据库文件镜像;

normal:常规冗余,使用2份镜像存储,至少需要两块磁盘;

high:高冗余,使用三份镜像存储,至少需要三块磁盘;

创建CRS磁盘组OCRVOTING,选择external-->/dev/asm-diskb,/dev/asm-diskc

 

9步:设置ASM password(密码oracle),警告INS-30011密码不推荐,忽略。

 

 

点击"Yes"

 

第10步:默认即可."Do not use Intellgent Platform Management Interface(IPM)"

IPMI为了失败隔离使用,安装时可以按需配置,后期也可以使用CRSCTL工具配置它

 

 

第11步:默认即可.

 

第12步:默认即可.

 

第13步:默认即可。

 

第14步:提示的假如只有些包未安装(例如i386的包),则忽略,下一步。

出现elfutils-libelf-devel和pdksh包缺少的提示,也可以忽略。

第15步:默认即可。点击"finish."开始setup

 

第16步:安装进程。

 

65%的时候会从一个节点向另一个节点拷贝文件会比较慢,但是如果卡半天还没反应的话,看下节点防火墙关了没。

提示执行脚本。

一定要以root帐户执行,并且不能同时执行。

先执行rac-1 /u01/app/oraInventory/orainstRoot.sh,

再执行rac-2 /u01/app/oraInventory/orainstRoot.sh

然后,先执行rac-1 /u01/app/11.2.0/grid/root.sh

再执行 rac-2 /u01/app/11.2.0/grid/root.sh

rac-1执行root.sh时报错:

/g01/app/11.2.0/grid/bin/clscfg.bin: error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory

Failed to create keys in the OLR, rc = 127, 32512

OLR configuration failed

是由于缺少包导致的。

解决方法:

在2个节点上重新安装上此包。

 [[email protected] Packages]# rpm -ivh compat-libcap1-1.10-1.x86_64.rpm

warning: compat-libcap1-1.10-1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY

Preparing...                ########################################### [100%]

   1:compat-libcap1         ########################################### [100%]

 

 

 

CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.
ohasd failed to start: Inappropriate ioctl for device
ohasd failed to start at /g01/app/11.2.0/grid/crs/install/rootcrs.pl line 443.

oracle的BUG

解决方法:

出现pa user cert的时候在另一个窗口不停的执行下面的命令,直到命令执行成功

/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1

 

如果root脚本执行失败,执行下面命令清除环境,再执行脚本。

[[email protected] ~]# perl $GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force

rac-1和rac-2都执行完后。点击"OK"

 

 

点击"OK"后,继续安装

 

 

 

如果出现INS-20802 Oracle Cluster Verifaction Utility failed。可以skip

 

 

 

提示:INS-32091,Software Installation was successful.But some configuration assistants failed,were cancelled or skipped. Are you sure you want to continue?

选择"Yes"。

 

第18步:Finished。点击"Close".

 

 

Oracle Grid Infrastructure安装完成。

确认集群安装成功

检查crs状态:

[[email protected] ~]# su - grid

[[email protected] ~]$ crsctl check crs

CRS-4638: Oracle High Availability Services is online

CRS-4537: Cluster Ready Services is online

CRS-4529: Cluster Synchronization Services is online

CRS-4533: Event Manager is online

 

检查Clusterware资源:

[[email protected] ~]$ crs_stat -t -v

Name           Type           R/RA   F/FT   Target    State     Host       

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

ora....ER.lsnr ora....er.type 0/5    0/     ONLINE    ONLINE    rac-1   

ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    rac-1   

ora....TING.dg ora....up.type 0/5    0/     ONLINE    ONLINE    rac-1   

ora....DATA.dg ora....up.type 0/5    0/     ONLINE    ONLINE    rac-1   

ora...._FRA.dg ora....up.type 0/5    0/     ONLINE    ONLINE    rac-1   

ora.asm        ora.asm.type   0/5    0/     ONLINE    ONLINE    rac-1   

ora.cvu        ora.cvu.type   0/5    0/0    ONLINE    ONLINE    rac-2   

ora.gsd        ora.gsd.type   0/5    0/     OFFLINE   OFFLINE              

ora....network ora....rk.type 0/5    0/     ONLINE    ONLINE    rac-1   

ora.oc4j       ora.oc4j.type  0/1    0/2    ONLINE    ONLINE    rac-1   

ora.ons        ora.ons.type   0/3    0/     ONLINE    ONLINE    rac-1   

ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac-1   

ora....E1.lsnr application    0/5    0/0    ONLINE    ONLINE    rac-1   

ora....de1.gsd application    0/5    0/0    OFFLINE   OFFLINE              

ora....de1.ons application    0/3    0/0    ONLINE    ONLINE    rac-1   

ora....de1.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    rac-1   

ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac-2   

ora....E2.lsnr application    0/5    0/0    ONLINE    ONLINE    rac-2   

ora....de2.gsd application    0/5    0/0    OFFLINE   OFFLINE              

ora....de2.ons application    0/3    0/0    ONLINE    ONLINE    rac-2   

ora....de2.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    rac-2   

ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    rac-1   

ora.testdb.db  ora....se.type 0/2    0/1    ONLINE    ONLINE    rac-1   

 

注:

oc4j、gsd默认服务是禁用的

 

[[email protected] ~]$

 

检查集群节点:

[[email protected] ~]$ olsnodes -n

rac-1       1

rac-2       2

检查两个节点上的Oracle TNS监听器进程:

[[email protected] ~]$ ps -ef|grep lsnr|grep -v ‘grep‘

grid      3783     1  0 12:56 ?        00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit

grid      3910     1  0 12:58 ?        00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit

[[email protected] ~]$ ps -ef|grep lsnr|grep -v ‘grep‘|awk ‘{print $9}‘

LISTENER

LISTENER_SCAN1

[[email protected] ~]$

 

确认针对Oracle Clusterware文件的Oracle ASM功能:

[[email protected] ~]$ srvctl status asm  -a

ASM is running on rac-1,rac-2

ASM is enabled.

 

检查Oracle集群注册表(OCR):

[[email protected] ~]$ ocrcheck

Status of Oracle Cluster Registry is as follows :

        Version                  :          3

        Total space (kbytes)     :     262120

        Used space (kbytes)      :       2964

        Available space (kbytes) :     259156

        ID                       : 1851285791

        Device/File Name         : +OCRVOTING

                                    Device/File integrity check succeeded

 

                                    Device/File not configured

 

                                    Device/File not configured

 

                                    Device/File not configured

 

                                    Device/File not configured

 

        Cluster registry integrity check succeeded

 

        Logical corruption check bypassed due to non-privileged user

 

检查表决磁盘:

[[email protected] ~]$ crsctl query css votedisk

##  STATE    File Universal Id                File Name Disk group

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

 1. ONLINE   0a64312bf16a4f71bfe1809754879085 (/dev/asm-diskb) [OCRVOTING]

Located 1 voting disk(s).

[[email protected] ~]$

 

 

 

 

安装ORACLE软件

#开启一个Terminal终端

#xhost +

#export DISPLAY=:0.0

#su - oracle

$./runInstaller

 

第1步: 默认即可。点击"Next",如果输入邮箱,会报下面这个警告,故不填邮箱;

 

 

 

第2步:选择"Install database software only".

 

 

 

第3步:选择"Oracle Real Application Clusters database installation"。点击"Select All",选择所有的节点。

 

设置SSH.这里输入oracle用户的密码oracle.

 

第4步:选择语言.

 

第5步:选择"Enterprise Edition"

 

第6步:选择oracle安装目录。默认即可。

 

第7步:选择用户组。默认即可。

 

 

第8步:执行安装前预检查。

 

 

 

检查结果显示, warning."Single Client Access Name(SCAN),忽略即可。勾选"Ignore All"。

 

第9步:点击"finish",开始安装。

第10步:Install Product进行中。显示安装进度。如下图所示。

 

弹出提示:在rac-1,rac-2上执行root.sh脚本。

第11步:Finish. The installation of Oracle Database was succesful.点击"Close".完成oracle software的安装。

 

 

 

 

创建ASM磁盘组

也可以在安装ORACLE软件之前先创建ASM磁盘组。

如下图所示。在节点rac-1新开一个终端窗口。

#xhost +

#export DISPLAY=:0.0

#su - grid

$ asmca

弹出以下画面。在Disk Groups显示了,我们在安装Grid时创建的CRS磁盘组(OCRVOTING).

 

根据实际情况建立你所需要的asm磁盘组,举个栗子:

 

在"Disk Groups"标签,点击"Create",如下图。

点击"Show All",显示所有磁盘。

创建RACDB_DATA磁盘组。在Disk Group Name,输入RACDB_DATA,Redundanc选择External。选择

/dev/asm-diskd.

 

点击"OK",创建RACDB_DATA。

提示:Disk Group RACDB_DATA创建成功。点击"OK".

 

如下图所示。

 

 

 

建立完成后,点击"Mount All",挂载所有磁盘组。在State列都变为Mounted(1 of  2).

如果mount失败,或者在这里没有Mount All。在后面dbca创建数据库会遇到问题。

 

然后,点击"Exit",退出ASMCA。完成RACDB_DATA和RACDB_FRA磁盘组创建。

这时,在rac-1,rac-2上,运行asmcmd可以查看ASM磁盘组。

 

 

创建RAC数据库

如下图所示。以oracle用户运行dbc

运行dbca,弹出Database Configuration Assistant画面。

 

 

选择"Oracle Real Application Clusters (RAC) database",点击"NEXT"

 

 

第1步:选择"Create a Dtabase"

 

 

第2步:选择"General Purpose or Transaction Processing"

 

 

第3步:选择Configuration Type:Admin-Managed. Global Database Name:testdb. SID Prefix:testdb.

点击"Select ALL". 这里一定要选择全部节点.

 

 

第4步:配置Enterprise Managert 和 Automatic Maintenance Tasks.

 

 

 

第5步:设置密码。"Use the Same Administrative Password for All Accounts"

 

点击"Yes"

 

 

第6步: Storage Type: Automatic Storage Management(ASM).

Storage Location:选择"Use Oracle-Managed Files".设置数据文件存放位置,在"Databse Area",点击"Browse",选择+RACDBA_DATA.

Sp-

要求设置ASMSNMP密码

 

然后,报以下错误ORA-01017.

 

解决:以grid用户给asmsnmp设置密码。然后再点击上图的"Retry"。

 

 

第7步:设置FRA和归档。定义快速恢复区(FRA)大小时,一般用整个卷的大小的90%。

 

点击"Browse",选择RACDB_FRA.

第8步:设置Sample Schemas和Custom Scripts.一般不勾选"Sample Schemas".

 

 

选择"No scripts to run"

 

第9步:设置内存、SGA和PGA、字符集、连接模式。

选择Typical,SGA and PGA,先用默认的738MB.后面根据情况也可以调整。

 

 

或者根据规划的生产需求,定制SGA和PGA Size,如下图。

 

默认Processes是150.

 

 

 

设置字符集。

 

设置connection mode.

 

第10步:点击"Next"

 

第11步:开始创建数据库。选择"Create Database".

 

 

 

创建过程中。

 

弹出下图,提示Database creation complete.和相应的提示信息。

 

 

点Exit,退出。

 

RAC安装完成。

 






以上是关于Centos-6.5搭建oracle11g RAC集群的主要内容,如果未能解决你的问题,请参考以下文章

linux下Oracle11g RAC搭建

Centos 6.5安装oracle 11g

Oracle 11g R2(11.2.0.4.0)+udev搭建RAC

Centos 6.5安装oracle 11g

Oracle11g RAC+DG搭建

Centos6.5 + Oracle 11g r2 + nfs搭建RAC环境