Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

时间:2022-10-17 05:25:57

  想必大家在学习ORACLE 11g时,都想搭建一个RAC的实验环境。在搭建RAC实验环境时,会碰到诸如IP怎么规划、虚拟机环境下怎么共享磁盘、ASM磁盘创建,以及安装过程中会遇到这样那样的问题。搭建一个完整的RAC实验环境下来,少则一天,多则一周,浪费不少时间和精力,一遍又一遍重新系统,遇到一个又一个问题,相信初学者,搭建过RAC的同学都会有这样的体会。

  这次把搭建RAC的步骤完整的整理出来,以供大家参考,相互交流学习,文中如有错误,欢迎大家斧正。

一、部署环境准备

1、准备所需软件

  VMware workstation

  CentOS release 6.10

  FreeNAS 11.2

p13390677_112040_Linux-x86-64_1of7.zip

p13390677_112040_Linux-x86-64_2of7.zip

p13390677_112040_Linux-x86-64_3of7.zip

  2、创建rac节点服务器

  2.1 需要在VMware WorkStation里创建两台虚拟机:racnode1和racnode2。

  VM主机的内存2G(官方说至少1.5G,安装grid检查仍会警告不够用,安装过程可能出现失败,建议最少2G)。

  硬盘30G。

  网络适配器2个。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

  2.2 安装centos6.x虚拟机操作系统。

  2.3 RAC的ip规划

网卡添加2个, 11.2开始至少需要4种IP地址。 RAC的IP规划如下:

Hostname

Type

IP Address

Interface

racnode1

Public IP

192.168.153.101

eth0

racnode1-vip

Virtual IP

192.168.153.201

eth0:1

racnode1-pip

Private IP

10.0.0.101

eth1

racnode2

Public IP

192.168.153.102

eth0

racnode2-vip

Virtual IP

192.168.153.202

eth0:1

racnode2-pip

Private IP

10.0.0.102

eth1

scan-cluster

SCAN IP

192.168.153.100

eth0

  说明:

  Oracle RAC环境下每个节点都会有多个IP地址,分别为公共IP(Public IP) 、私有IP(Private IP)和虚拟IP(Virtual IP):

  私有IP(Public IP)

  Private IP address is used only for internal clustering processing(Cache Fusion).

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

  虚拟IP(Virtual IP)

  Virtual IP is used by database applications to enable fail over when one cluster node fails.

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

  当一个群集节点出现故障时,数据库应用程序(包括数据库客户端)通过虚拟IP地址切换到另一个无故障节点,另一个功能是均衡负载。

  公共IP(Public IP)

  Public IP adress is the normal IP address typically used by DBA and SA to manage storage, system and database.

  公共IP地址

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

  监听IP(SCAN IP)

从Oracle 11g R2开始,Oracle RAC网络对IP地址有特殊要求,新增了加监听IP地址(SCAN IP),所以从Oracle 11g R2开始Oracle RAC网络至少需要4种IP地址(前面介绍三种IP地址)。在Oracle 11g R2之前,如果数据库采用了RAC架构,在客户端的tnsnames中,需要配置多个节点的连接信息,从而实现诸如负载均衡、Failover等RAC的特性。因此,当数据库RAC集群需要添加或删除节点时,需要及时对客户端机器的tns进行更新,以免出现安全隐患。

在Oracle 11g R2中,为了简化该项配置工作,引入了SCAN(Single Client Access Name)的特性。该特性的好处在于,在数据库与客户端之间,添加了一层虚拟的服务层,就是所谓的SCAN IP以及SCAN IP Listener,在客户端仅需要配置SCAN IP的tns信息,通过SCAN IP Listener,连接后台集群数据库。这样,不论集群数据库是否有添加或者删除节点的操作,均不会对Client产生影响。

2.4 配置虚拟机网卡

按前面的IP规划,来设置每个节点的网卡的IP地址。

    [root@racnode1 ~]# cd /etc/sysconfig/network-scripts/ ,根据自身网卡进行配置,示例:

    racnode1:

1.编辑eth0网卡:

#vi ifcfg-eth0 ,内容如下:

DEVICE=eth0

TYPE=Ethernet

UUID=43b4bc9f-052e-45ec-bca2-dbaeeef39c20

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

HWADDR=00:0C:29:FC:92:1F

IPADDR=192.168.153.101

PREFIX=24

GATEWAY=192.168.153.2

DNS1=61.139.2.69

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0"

2.创建eth0:1

#cp ifcfg-eth0 ifcfg-eth0:1

#vi ifcfg-eth0:1,内容如下:

DEVICE=eth0:1

TYPE=Ethernet

UUID=43b4bc9f-052e-45ec-bca2-dbaeeef39c20

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

HWADDR=00:0C:29:FC:92:1F

IPADDR=192.168.153.201

PREFIX=24

GATEWAY=192.168.153.2

DNS1=61.139.2.69

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0:1"

3.编辑eth1网卡:

#vi ifcfg-eth1,内容如下:

DEVICE=eth1

TYPE=Ethernet

BOOTPROTO=none

IPADDR=10.0.0.101

PREFIX=24

GATEWAY=10.0.0.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth1"

UUID=1655f5de-c00e-454c-aa8f-501bf70fd60c

ONBOOT=yes

HWADDR=00:0C:29:FC:92:29

racnode2:

1.编辑eth0网卡:

#vi ifcfg-eth0 ,内容如下:

DEVICE=eth0

TYPE=Ethernet

UUID=643e30b9-906e-4051-b972-483da6a33203

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

IPADDR=192.168.153.102

PREFIX=24

GATEWAY=192.168.153.2

DNS1=61.139.2.69

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0"

HWADDR=00:0C:29:C9:A7:2D

2.创建eth0:1

#cp ifcfg-eth0 ifcfg-eth0:1

#vi ifcfg-eth0:1,内容如下:

DEVICE=eth0:1

TYPE=Ethernet

UUID=643e30b9-906e-4051-b972-483da6a33203

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

IPADDR=192.168.153.202

PREFIX=24

GATEWAY=192.168.153.2

DNS1=61.139.2.69

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0:1"

3.编辑eth1网卡:

#vi ifcfg-eth1,内容如下:

DEVICE=eth1

HWADDR=00:0C:29:C9:A7:37

TYPE=Ethernet

BOOTPROTO=none

IPADDR=10.0.0.102

PREFIX=24

GATEWAY=10.0.0.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME=eth1

UUID=1207dcc1-7a39-45b0-b604-f38e5c90934d

ONBOOT=yes

LAST_CONNECT=1546520521

  

  2.5编辑/etc/hosts文件

    racnode1、racnode2配置一样

# vim /etc/hosts ,修改内容如下:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

#racnode1

192.168.153.101    racnode1

192.168.153.201    racnode1-vip

10.0.0.101    racnode1-pip

#racnode2

192.168.153.102    racnode2

192.168.153.202    racnode2-vip

10.0.0.102    racnode2-pip

#scan-ip

192.168.153.100    scan-cluster

  [root@localhost ~]# hostname racnode1 ,修改主机名

  [root@localhost ~]# hostname racnode2 ,修改主机名

  2.6 创建用户和组

    安装RAC,需要建立相应的用户和组。在racnode1、racnode2上进行用户和组的创建:

Group Name

Group ID

Group Info

Oracle User

Grid User

oinstall

1000

Inventory Group

Y

Y

dba

1200

OSDBA Group

Y

 

oper

1201

OSOPER Group

Y

 

asmadmin

1300

OSASM

 

Y

asmdba

1301

OSDBA for ASM

Y

Y

asmoper

1302

OSOPER for ASM

 

Y

  

  root 下执行操作:创建组、用户,并设置用户密码

groupadd -g 1000 oinstall

groupadd -g 1200 dba

groupadd -g 1201 oper

groupadd -g 1300 asmadmin

groupadd -g 1301 asmdba

groupadd -g 1302 asmoper

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

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

passwd grid

passwd oracle

  2.7 创建目录并授权

在racnode1、racnode2上进行目录的创建和授权:

  root 下执行以下操作:

mkdir -p /u01/app/11.2.0/grid

mkdir -p /u01/app/grid

mkdir /u01/app/oracle

chown -R grid:oinstall /u01

chown oracle:oinstall /u01/app/oracle

chmod -R 775 /u01/

2.8 设置环境变量

(1)配置用户环境变量:grid用户

racnode1:

[grid@racnode1 ~]$ vim .bash_profile

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=+ASM1

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/11.2.0/grid

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

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

umask 022

[grid@racnode1 ~]$ source .bash_profile

racnode2:

[grid@racnode2 ~]$ vim .bash_profile

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=+ASM2

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/11.2.0/grid

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

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

umask 022

[grid@racnode2 ~]$ source .bash_profile

(2)配置用户环境变量:oracle用户

   racnode1:

[oracle@racnode1 ~]$ vim .bash_profile

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=orcl1

export ORACLE_UNQNAME=orcl

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export TNS_ADMIN=$ORACLE_HOME/network/admin

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

[oracle@racnode1 ~]$ source .bash_profile

  racnode2:

[oracle@racnode2 ~]$ vim .bash_profile

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=orcl2

export ORACLE_UNQNAME=orcl

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export TNS_ADMIN=$ORACLE_HOME/network/admin

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

[oracle@racnode2 ~]$ source .bash_profile

2.9 配置用户对等性[ssh互信]:grid用户、oracle用户

racnode1:

ssh-keygen -t rsa #一路回车

ssh-keygen -t dsa #一路回车

racnode2:

ssh-keygen -t rsa #一路回车

ssh-keygen -t dsa #一路回车

先racnode1、再racnode2上执行过上述两条命令后,再回到racnode1再继续执行下面的命令:

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

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

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

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

scp ~/.ssh/authorized_keys racnode2:~/.ssh/authorized_keys

chmod 600 .ssh/authorized_keys

两个节点互相ssh通过一次

ssh racnode1 date

ssh racnode2 date

ssh racnode1-vip date

ssh racnode2-vip date

ssh racnode1-pip date

ssh racnode2-pip date

2.10 修改系统参数配置文件

     在racnode1和racnode2上都要执行

      修改 sysctl.conf,

[root@ ~]# vim /etc/sysctl.conf ,在最后添加以下内容:

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

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

[root@ ~]# sysctl -p 立即生效

    1. 修改 limits.conf

    [root@ ~]# vim /etc/security/limits.conf ,在最后添加以下内容:

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

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

      [root@ ~]# vim /etc/pam.d/login,在session required pam_namespace.so下面插入:

session required pam_limits.so

    1. 停止并删除ntp服务

      [root@ ~]# service ntpd status

      [root@ ~]# chkconfig ntpd off

      [root@ ~]# cp /etc/ntp.conf /etc/ntp.conf.bak

      [root@ ~]# rm -rf /etc/ntp.conf

    1. 修改/etc/profile

      [root@ ~]# cp /etc/profile /etc/profile.bak

      [root@ ~]# vim /etc/profile,在文件最后添加以下内容:

      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

三 、创建FreeNAS共享存储服务器

本次搭建:在VMware 虚拟机上安装和配置FreeNAS 11.2,请自行下载所需版本。

【FreeNAS-11.2-RELEASE.iso】

下载地址:https://download.freenas.org/11.2/STABLE/RELEASE/x64/FreeNAS-11.2-RELEASE.iso

3.1准备一台虚拟机,此处详细步骤略。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2 FreeNAS系统安装

3.2.1 打开虚拟机电源。进入安装界面,敲击回车开始安装。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2.2 选择第一个"Install/Upgrade",点击OK。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2.3 提示内存小于8G。此处作为虚拟测试,可忽略此项错误提示。直接点击Yes。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2.4 选择安装在哪个磁盘上。此处选择20G的磁盘作为系统安装盘。光标上下移动,空格键为选择。然后点击OK。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2.5 此处为警告,告知安装位置及清空磁盘数据。直接点击OK。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2.6 设置root的密码。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2.7 选择引导类型。此处选择 BIOS 类型。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2.8 开始安装。等待一段时间后,即安装完毕。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2.9 安装完毕后,弹出提示告知安装完毕。直接点击OK。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2.10 安装完毕后需要重启。选择第三个"Reboot System"。点击OK。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2.11 系统在将重启后,继续安装一些组件。请等待最终安装完毕。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.2.12 安装完毕后,如下图。参照提示,可根据实际需要去修改配置。

管理地址也已列出。如:http://192.168.153.230

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

至此,FreeNAS 系统安装完毕。

3.3 FreeNAS登录及配置

3.3.1 浏览器登录: 默认用户为root , 密码为安装系统时所设置的密码。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.3.2 登录后如下,根据实际需要进行配置。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

3.3.3 根据oracle 11gR2 RAC环境所需的共享存储,进行配置。

第1步、 配置iscsi服务,打开iscsi并开机勾选自启动。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第2步、 依次进入菜单: Sharing – Block(ISCSI),设置Target Global Configuration。

Base Name 可自定义,此处默认。其他可不填写。 点击SAVE保存。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第3步、 设置 Portals :

点击ADD添加,填写IP地址和端口号,然后SAVE保存。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

设置后,如下图。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第4步、设置 Initiators :

点击ADD添加,Initiators和Authorized Networks 都选择 ALL ,点击SAVE保存。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

设置后,如下图。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第5步、 设置 Authorized Access :

点击ADD添加,此处Group Id、User和Sercret的值可以任意填写,此处分别设置为1、grid和gridasm ,并点击SAVE保存。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

设置后,如下图。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第6步、设置 Targets :

Target Name 可随意填写,此处为 asm 。选择 Portal Group ID 、Initiator Group ID ,即是上面所设置的 Group ID。此处为1。其他选项默认即可。 点击SAVE保存。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

设置后,如下图。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第7步、设置 Extents :

点击ADD添加,设置Extent name名称;选择Extent type,分为磁盘或者分区,此处选择磁盘。选择磁盘da1、da2、da3、da4等。 选择LUN RPM磁盘转速。其他默认即可。点击SAVE保存。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

依次将所需添加的设备添加完毕后,如下图所示。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第8步、设置Associated Targets :

点击ADD添加,选择Target、选择Extent,即是上步设置的asm 、crs、data1、data2、fra等。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

设置后,如下图。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

二、RAC集群安装

1、配置共享存储

1.1 安装iscsi客户端

racnode各节点,查看系统是否安装iscsi软件包,以centos6.x为例

[root@ ~]# rpm -qa | grep iscsi

iscsi-initiator-utils-6.2.0.873-27.el6_9.x86_64

如未安装,请执行 yum install -y iscsi-initiator-utils 进行安装客户端。

1.2 使用UDEV绑定共享存储

查找iSCSI设备,发现共享存储:

[root@ ~]# iscsiadm -m discovery -t sendtargets -p 192.168.153.230

192.168.153.230:3260,1 iqn.2005-10.org.freenas.ctl:asm

1.3 运行fdisk命令可以发现新的设备。分别对应FreeNAS中设置的Disk Extents。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

1.4 磁盘分区

# fdisk /dev/sdb

根据提示输入 n、 p、 w 等

# 同理,重复步骤对 sdc sdd sde 完成分区。

分区完毕后,fdisk -l查看如下:

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

1.5 安装UEK核心

UEK可以从http://public-yum.oracle.com/下载安装:

http://www.rpmfind.net/linux/centos/6.10/updates/x86_64/Packages/kmod-oracleasm-2.0.8-16.el6_10.x86_64.rpm

http://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.12-1.el6.x86_64.rpm

http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/getPackage/oracleasm-support-2.1.11-2.el6.x86_64.rpm

[root@ ~]# yum install kmod-oracleasm

[root@ ~]# rpm -ivh oracleasmlib-2.0.12-1.el6.x86_64.rpm

[root@ ~]# rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm

1.6    创建ASM Disk Volumes

1.6.1 配置并装载ASM核心模块,在一个节点操作即可。

[root@racnode1 ~]# oracleasm configure -i ,根据提示输入:

Configuringthe Oracle ASM library driver.

Thiswill configure the on-boot properties of the Oracle ASM library

driver.  The following questions will determinewhether the driver is

loadedon boot and what permissions it will have. The current values

willbe shown in brackets ('[]').  Hitting<ENTER> without typing an

answerwill keep that current value.  Ctrl-Cwill abort.

Defaultuser to own the driver interface []: grid

Defaultgroup to own the driver interface []: asmadmin

StartOracle ASM library driver on boot (y/n) [n]: y

Scanfor Oracle ASM disks on boot (y/n) [y]: y

WritingOracle ASM library driver configuration: done

[root@racnode1 ~]# oracleasm init

Creating/dev/oracleasm mount point: /dev/oracleasm

Loadingmodule "oracleasm": oracleasm

MountingASMlib driver filesystem: /dev/oracleasm

1.6.2 创建ASM磁盘

[root@racnode1 ~]# oracleasm createdisk CRSVOL1 /dev/sdb1

Writingdisk header: done

Instantiatingdisk: done

[root@racnode1 ~]# oracleasm createdisk DATAVOL1 /dev/sdc1

Writingdisk header: done

Instantiatingdisk: done

[root@racnode1 ~]# oracleasm createdisk DATAVOL2 /dev/sdd1

Writingdisk header: done

Instantiatingdisk: done

[root@racnode1 ~]# oracleasm createdisk FRAVOL1 /dev/sde1

Writingdisk header: done

Instantiatingdisk: done

[root@racnode1 ~]# oracleasm listdisks

CRSVOL1

DATAVOL1

DATAVOL2

FRAVOL1

使用oracleasm-discover查找ASM磁盘,运行该命令查看是否能找到刚创建的4个磁盘。

[root@racnode1 ~]# oracleasm-discover

UsingASMLib from /opt/oracle/extapi/64/asm/orcl/1/libasm.so

[ASMLibrary - Generic Linux, version 2.0.4 (KABI_V2)]

Discovereddisk: ORCL:CRSVOL1 [2096753 blocks (1073537536 bytes), maxio 512]

Discovereddisk: ORCL:DATAVOL1 [41940960 blocks (21473771520 bytes), maxio 512]

Discovereddisk: ORCL:DATAVOL2 [41940960 blocks (21473771520 bytes), maxio 512]

Discovereddisk: ORCL:FRAVOL1 [62912480 blocks (32211189760 bytes), maxio 512]

使用oracleasm scandisks 扫描asm磁盘

[root@racnode1 ~]# oracleasm scandisks

Reloading disk partitions: done

Cleaning any stale ASM disks...

Scanning system for ASM disks...

2、rac软件安装

2.1 安装oracle所依赖组件

[root@racnode1 ~]# yum -y install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel numactl-devel sysstat unixODBC unixODBC-devel compat-libstdc++* libXp

[root@racnode1 ~]# rpm -ivh pdksh-5.2.14-30.x86_64.rpm (这个包需要下载)

[root@racnode2 ~]# 同上

2.2 安装前预检查配置信息

请使用grid用户 ,racnode1、racnode2都要执行一下这个脚本。

[grid@racnode1 ~]$ cd /opt/grid/ 切换到软件上传目录

[grid@racnode1 grid]$ ./runcluvfy.sh stage -pre crsinst -n racnode1,racnode2 -fixup -verbose

结果如:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Performing pre-checks for cluster services setup

Checking node reachability...

Check: Node reachability from node "racnode1"

Destination Node Reachable?

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

racnode1 yes

racnode2 yes

Result: Node reachability check passed from node "racnode1"

Checking user equivalence...

Check: User equivalence for user "grid"

Node Name Status

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

racnode2 passed

racnode1 passed

Result: User equivalence check passed for user "grid"

(中间部分省略粘贴)

(中间部分省略粘贴)

(中间部分省略粘贴)

Checking the file "/etc/resolv.conf" to make sure only one of domain and search entries is defined

File "/etc/resolv.conf" does not have both domain and search entries defined

Checking if domain entry in file "/etc/resolv.conf" is consistent across the nodes...

domain entry in file "/etc/resolv.conf" is consistent across nodes

Checking if search entry in file "/etc/resolv.conf" is consistent across the nodes...

search entry in file "/etc/resolv.conf" is consistent across nodes

Checking DNS response time for an unreachable node

Node Name Status

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

racnode2 passed

racnode1 passed

The DNS response time for an unreachable node is within acceptable limit on all nodes

File "/etc/resolv.conf" is consistent across nodes

Check: Time zone consistency

Result: Time zone consistency check passed

Pre-check for cluster services setup was successful.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

2.3 开始安装grid软件

确保两个节点racnode1、racnode2都已经启动,然后以grid用户登录,开始Oracle Grid Infrastructure安装 【请在图形界面下】

[grid@racnode1 ~]$ cd /opt/grid/ 切换到软件上传目录

[grid@racnode1 grid]$ ./runInstaller

第1步:选择"skip software updates".

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第3步:选择高级安装

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第4步: 选择English

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第5步:去掉Configure GNS,设置Cluster Name,Scan Name,ScanPort:1521.

注意:将SCAN Name与/etc/hosts文件一致。 我们这里应是: scan-cluster ,Cluster Name可以自定义。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Public Hostname输入racnod2, Virtual Hostname输入racnode2-vip

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

最终结果如下:

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

验证ssh等效性

1) 如果前置未设置ssh等效性:选择ssh connectivty,输入OS password:grid(grid用户密

码),点击setup,等待即可,成功则下一步。然后点击"T est".

2) 如果前面已经设置了ssh等效性:可以点击"T est",或直接下一步

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

点击"setup"后

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

点击"OK"

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

点击"Test"

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

点击OK

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

【这个问题的解答】这是个虚拟IP,当前你应该ping不通。目前你还没安装,暂时不会绑到网卡上。

这个应该在RAC安装完,启动成功后,才会随机往两台机器上的其中一个网卡绑定。

当其中一台机器坏了,自动飘移到另一台。

【解决办法】ifconfig eth0:1 down 或者 ifdown eth0:1 然后,点击"Next"

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第7步:选择网卡2:eth1,InterfaceType: Private,点击"Next"

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第10步:设置密码,如果密码设置相对简单,会弹出提示,直接继续即可。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第11步—第14步:默认即可.

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

安装前检查,有些警告提示可以忽略。 如有其它错误,根据具体错误提示进行分析配置。点下一步出现。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第15步: 默认即可,点击 install 开始安装。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第16步:安装进程。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

提示执行脚本。

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

先执行racnode1     /u01/app/oraInventory/orainstRoot.sh,

再执行racnode2     /u01/app/oraInventory/orainstRoot.sh

然后,先执行racnode1     /u01/app/11.2.0/grid/root.sh

再执行 racnode2     /u01/app/11.2.0/grid/root.sh

第17步:安装完毕,点击close。 至此rac软件安装完毕。接下来要进行验证。

2.4 验证Oracle Grid Infrastructure安装成功。

以racnode1为例粘贴结果,racnode2执行结果此处不粘贴了。

[root@racnode1 ~]# su - grid

[grid@racnode1 ~]$ 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资源:[grid@racnode1 ~]$ crs_stat -t -v

Name             Type         R/RA F/FT Target State     Host

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

ora.CRS.dg         ora....up.type     0/5 0/ ONLINE ONLINE racnode1

ora.DATA.dg         ora....up.type     0/5 0/ ONLINE ONLINE racnode1

ora.FRA.dg             ora....up.type     0/5 0/ ONLINE ONLINE racnode1

ora....ER.lsnr         ora....er.type     0/5 0/ ONLINE ONLINE racnode1

ora....N1.lsnr         ora....er.type     0/5 0/0 ONLINE ONLINE racnode1

ora.asm             ora.asm.type     0/5 0/ ONLINE ONLINE racnode1

ora.cvu             ora.cvu.type     0/5 0/0 ONLINE ONLINE racnode2

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

ora....network         ora....rk.type     0/5 0/ ONLINE ONLINE racnode1

ora.oc4j             ora.oc4j.type     0/1 0/2 ONLINE ONLINE racnode2

ora.ons             ora.ons.type         0/3 0/ ONLINE ONLINE racnode1

ora....SM1.asm         application     0/5 0/0 ONLINE ONLINE racnode1

ora....C1.lsnr         application     0/5 0/0 ONLINE ONLINE racnode1

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

ora. racnode1.ons     application     0/3 0/0 ONLINE ONLINE racnode1

ora. racnode1.vip     ora....t1.type     0/0 0/0 ONLINE ONLINE racnode1

ora....SM2.asm         application     0/5 0/0 ONLINE ONLINE racnode2

ora....C2.lsnr         application     0/5 0/0 ONLINE ONLINE racnode2

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

ora. racnode2.ons     application     0/3 0/0 ONLINE ONLINE racnode2

ora. racnode2.vip     ora....t1.type     0/0 0/0 ONLINE ONLINE racnode2

ora.scan1.vip         ora....ip.type     0/0 0/0 ONLINE ONLINE racnode1

检查集群节点

[grid@racnode1 ~]$ olsnodes -n

racnode1 1

racnode2 2

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

[grid@racnode1 ~]$ ps -ef|grep lsnr|grep -v 'grep'

grid 94448 1 0 15:04 ? 00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit

grid 94485 1 0 15:04 ? 00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit

[grid@racnode1 ~]$ ps -ef|grep lsnr|grep -v 'grep'|awk '{print $9}'

LISTENER

LISTENER_SCAN1

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

[grid@racnode1 ~]$ srvctl status asm -a

ASM is running on racnode1,racnode2

ASM is enabled.

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

[grid@racnode1 ~]$ ocrcheck

Status of Oracle Cluster Registry is as follows :

Version : 3

Total space (kbytes) : 262120

Used space (kbytes) : 2624

Available space (kbytes) : 259496

ID : 1555425658

Device/File Name : +CRS

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

检查表决磁盘:

[grid@racnode1 ~]$ crsctl query css votedisk

## STATE File Universal Id File Name Disk group

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

1. ONLINE 0d90b0c368684ff5bff8f2094823b901 (ORCL:CRSVOL1) [CRS]

Located 1 voting disk(s).

3、oracle软件安装

确保两个节点racnode1、racnode2都已经启动,然后以oracle用户登录,安装请在图形界面下

进入软件安装包的目录

[oracle@racnode1 database]$ ./runInstaller

第1步:不勾选I wish to …… ,然后点next。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第2步:选择跳过软件更新,点击next。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第3步: 选择仅安装数据库软件,点击next。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第4步: 选择全部节点,并测试ssh互信。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

点击SSH Connectivity… ,输入oracle的密码,点击test 测试通过如下提示:

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

点击OK,然后点击next。

第5步: 选择语言

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第6步: 选择安装的数据库类型,此处选择企业版。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第7步: 默认即可

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第8步: 默认即可

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第9步: 安装前检查,此时检查结果有一条,该条忽略即可。勾选ignore all。点击next。如有其它报错,根据实际情况进行排查处理。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第10步: 默认即可,点击 install 开始安装

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第11步: 安装过程中需要执行脚本

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建先在racnode1执行,执行完毕之后,再在racnode2中执行。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

4、配置ASM磁盘组

也可以在安装ORACLE软件之前创建ASM磁盘组。下面开始创建ASM磁盘组。

命令 asmca 启动图形配置 。 点击Create ,创建磁盘组。

Disk Group Name 命名为DATA;

Redundancy选择 External (None);;

disks勾选 DATAVOL1、DATAVOL2;

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

点击OK,提示创建成功。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

同理,创建FRA组。 另外最初安装grid的时候已经配置过CRS。最终结果如下:

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

其中,点击Mount ALL ,挂载所有磁盘。点击Yes。确认挂载。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

5、创建数据库

第1步: 切换到oracle用户,以oracle用户运行命令 dbca 。弹出开始画面。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

选择Oracle Real Application Cluster(RAC)database,点击next。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

选择Create a Database,创建一个数据库。点击next。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第2步: 选择General Purpose or Transaction Processing

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

提示密码过于简单,点击Yes 。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第6步:在"Databse Area",点击"Browse",选择+DATA.

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

要求设置ASMSNMP密码

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

点击"Browse",选择 FRA

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

第10步:点击"Next"

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

创建过程中。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

点Exit,退出。数据库创建完成。

RAC安装到此完成。

三、RAC 基本操作、ASM基本操作及日常查看

很多说法:Oracle 自身bug, 如果启动失败 root先执行

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

1、关闭启动顺序

(一)关闭过程(关闭数据库->CRS集群关闭)

第1步、关闭数据库:

用oracl用户执行srvctl命令

语法:srvctl stop database -d dbname [-o immediate]

作用:可以一次性关闭dbname的所有实例

[oracle@racnode1 ~]$ srvctl stop database -d racdb -停止所有节点上的实例

然后查看状态:

[oracle@racnode1 ~]$ srvctl status database -d racdb

Instance racnode1 is not running on node racnode1

Instance racnode2 is not running on node racnode2

第2步、停止HAS(High Availability Services),必须以root用户操作

[root@racnode1 oracle]# cd /u01/grid/11.2.0/grid/bin

[root@racnode1 bin]# ./crsctl stop has -f

[root@racnode1 bin]# ./crsctl stop crs -f

本命令只能关闭当前节点的CRS服务,因此需要在RAC的所有节点上执行,启动也一样。has与crs等同

第3步、停止节点集群服务,必须以root用户:

[root@racnode1 oracle]# cd /u01/grid/11.2.0/grid/bin

[root@racnode1 bin]# ./crsctl stop cluster ----停止本节点集群服务

[root@racnode1 bin]# ./crsctl stop cluster -all ---停止所有节点服务

也可以如下控制所停节点:

[root@racnode1 bin]# crsctl stop cluster -n racnode1 racnode2

CRS-2677: Stop of 'ora.cssd' on 'racnode1' succeeded

CRS-2677: Stop of 'ora.cssd' on 'racnode2' succeeded

。。。。。。。。。。。省略日志输出。。。。。。。。。。。。。。

你如果想一条命令把所有的进程全部停止可以使用上述命令。如果不指定参数的话对当前节点有效,如果指定参数的话对相关参数节点有效。

第4步、检查集群进程状态

[root@racnode1 bin]# crsctl check cluster

详细输出

[root@racnode1 bin]# crs_stat -t -v

只检查本节点的集群状态

[root@racnode1 bin]# crsctl check crs

(二)启动过程(CRS集群启动->启动数据库)

第1步、启动HAS

单一节点启动

[root@racnode2 ~]# crsctl start has

[root@racnode2 ~]# crsctl start crs

[root@racnode2 ~]# 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

所有节点启动

[root@racnode1 bin]# crsctl start cluster -n racnode1 racnode2

CRS-4123: Oracle High Availability Services has been started.

[root@racnode1 bin]# crsctl start cluster -all

[root@racnode2 ~]# crsctl check cluster

CRS-4537: Cluster Ready Services is online

CRS-4529: Cluster Synchronization Services is online

CRS-4533: Event Manager is online

此命令会在后台启动所有RAC CRS相关进程

[root@racnode2 ~]# crs_stat -t -v

CRS-0184: Cannot communicate with the CRS daemon.

因为start has启动的crs进程比较多因此会启动的比较慢,我的机器等待了5分钟,在没有完全启动成功之前会报上述错误,需要耐心等待一段时间后执行下面命令即可查看到所有CRS相关进程服务已经启动。

[root@racnode2 ~]# crs_stat -t -v

Name Type R/RA F/FT Target State Host

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

ora.DATA.dg ora....up.type 0/5 0/ ONLINE ONLINE racnode1

ora....ER.lsnr ora....er.type 0/5 0/ ONLINE ONLINE racnode1

ora....N1.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE racnode2

ora....N2.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE racnode1

ora....N3.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE racnode1

ora.asm ora.asm.type 0/5 0/ ONLINE ONLINE racnode1

ora.cvu ora.cvu.type 0/5 0/0 ONLINE ONLINE racnode1

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

ora....network ora....rk.type 0/5 0/ ONLINE ONLINE racnode1

ora.oc4j ora.oc4j.type 0/1 0/2 ONLINE ONLINE racnode1

ora.ons ora.ons.type 0/3 0/ ONLINE ONLINE racnode1

ora....SM1.asm application 0/5 0/0 ONLINE ONLINE racnode1

ora....C1.lsnr application 0/5 0/0 ONLINE ONLINE racnode1

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

ora.racnode1.ons application 0/3 0/0 ONLINE ONLINE racnode1

ora.racnode1.vip ora....t1.type 0/0 0/0 ONLINE ONLINE racnode1

ora....SM2.asm application 0/5 0/0 ONLINE ONLINE racnode2

ora....C2.lsnr application 0/5 0/0 ONLINE ONLINE racnode2

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

ora.racnode2.ons application 0/3 0/0 ONLINE ONLINE racnode2

ora.racnode2.vip ora....t1.type 0/0 0/0 ONLINE ONLINE racnode2

ora....ry.acfs ora....fs.type 0/5 0/ ONLINE ONLINE racnode1

ora.scan1.vip ora....ip.type 0/0 0/0 ONLINE ONLINE racnode2

ora.scan2.vip ora....ip.type 0/0 0/0 ONLINE ONLINE racnode1

ora.scan3.vip ora....ip.type 0/0 0/0 ONLINE ONLINE racnode1

说明:

英文解释

ora.gsd is OFFLINE by default ifthere is no 9i database in the cluster.

ora.oc4j is OFFLINE in 11.2.0.1 as DatabaseWorkload Management(DBWLM) is unavailable. these can be ignored in11gR2 RAC.

中文解释

ora.gsd是集群服务中用于与9i数据库进行通信的一个进程,在当前版本中为了向后兼容才保存下来,状态为OFFLINE不影响CRS的正常运行与性能,我们忽略即可

ora.oc4j是在11.2.0.2以上版本中有效的服务进程,用于DBWLM的资源管理,因此在11.2.0.1以下版本并没有使用

第2步、启动数据库:

oracl用户执行srvctl命令:

语法:srvctl start|stop|status database -d dbname [-o immediate]

作用:可以一次性启动dbname的所有实例

[oracle@racnode1 ~]$ srvctl start database -d racdb -启动所有节点上的实例

然后查看状态:

[oracle@racnode1 ~]$ srvctl status database -d racdb

(三)检查状态

在root下执行命令,请配置环境变量,可省略完整路径。

export ORACLE_HOME=/u01/grid/product/11gr2

export PATH=$ORACLE_HOME/bin:$PATH

(1).详细输出资源全名称并检查状态

crsctl status resource -t

crsctl status resource

(2).常用srvctl命令

指定dbname上某个实例

srvctl start|stop|status instance -d <dbname> -i <instance_name>

(3).显示RAC下所有实例配置与状态

srvctl status|config database -d <dbname>

(4).显示所有节点的应用服务(VIP,GSD,listener,ONS)

srvctl start|stop|status nodeapps -n<node_name>

(5).ASM进程服务管理

srvctl start|stop|status|config asm -n <nodename>[-i <asm_inst_name>] [-o<oracle_home>]

srvctl config asm -a

srvctl status asm -a

(6).可以获取所有的环境信息:

srvctl getenv database -d <dbname> [-i<instance_name>]

(7).设置全局环境和变量:

srvctl setenv database -d<dbname> -t LANG=en

(8).在OCR中删除已有的数据库信息

srvctl remove database -d <dbname>

(9).向OCR中添加一个数据库的实例:

srvctl add instance -d <dbname> -i<instance_name> -n <node1>

srvctl add instance -d <dbname> -i<instance_name> -n <node2>

(10).检查监听的状态

srvctl status listener

srvctl config listener -a

(11)SCAN配置信息

srvctl config scan

(12)SCAN listener状态信息

srvctl status scan

小结:crsctl命令是一个集群级别命令,可以对所有集群资源进行统一启动、停止等管理操作

srvctl命令是一个服务级别命令,可以对单一服务资源进行统一启动、停止等管理操作

2、查看数据库实例、datafile、logfile、controfile、ASM实例

查看数据库实例

#su - oracle

[oracle@racnode1 ~]$ sqlplus / as sysdba

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS

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

orcl2 OPEN

查看datafile、logfile、controfile

SQL> select TS#,STATUS,NAME from v$datafile;

TS# STATUS NAME

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

0 SYSTEM +DATA/testdb/datafile/system.256.911229287

1 ONLINE +DATA/orcl/datafile/sysaux.257.911229291

2 ONLINE +DATA/ orcl /datafile/undotbs1.258.911229293

4 ONLINE +DATA/ orcl /datafile/users.259.911229293

6 ONLINE +DATA/ orcl /datafile/example.264.911229559

5 ONLINE +DATA/ orcl /datafile/undotbs2.265.911230235

查看logfile:

SQL> desc v$logfile;

Name Type Nullable Default Comments

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

GROUP# NUMBER Y

STATUS VARCHAR2(7) Y

TYPE VARCHAR2(7) Y

MEMBER VARCHAR2(513) Y

IS_RECOVERY_DEST_FILE VARCHAR2(3) Y

SQL> select GROUP#,STATUS,MEMBER from v$logfile;

GROUP#         STATUS                                                 MEMBER

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

2 +FRA/orcl/onlinelog/group_2.262.997887279

2 +CRS/orcl/onlinelog/group_2.258.997887279

1 +FRA/orcl/onlinelog/group_1.261.997887277

1 +CRS/orcl/onlinelog/group_1.257.997887277

3 +FRA/orcl/onlinelog/group_3.265.997887443

3 +CRS/orcl/onlinelog/group_3.259.997887443

4 +FRA/orcl/onlinelog/group_4.266.997887443

4 +CRS/orcl/onlinelog/group_4.260.997887445

8 rows selected

查看controlfile:

SQL> desc v$controlfile;

Name         Type         Nullable Default Comments

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

STATUS     VARCHAR2(7)     Y

NAME         VARCHAR2(513)     Y

IS_RECOVERY_DEST_FILE     VARCHAR2(3)     Y

BLOCK_SIZE     NUMBER         Y

FILE_SIZE_BLKS     NUMBER         Y

SQL> select NAME,STATUS from v$controlfile;

NAME STATUS

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

+FRA/orcl/controlfile/current.260.997887273

+CRS/orcl/controlfile/current.256.997887273

查看ASM实例

[grid@racnode1 ~]$ sqlplus / as sysasm

SQL> select instance_name,status from v$instance;

INSTANCE_NAME     STATUS

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

+ASM1         STARTED

[grid@racnode2 ~]$ sqlplus / as sysasm

SQL> select instance_name,status from v$instance;

INSTANCE_NAME     STATUS

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

+ASM2         STARTED

[grid@racnode1 ~]$ sqlplus / as sysasm

查看集群负载情况:    

SQL> select inst_id, count(*) from gv$session group by inst_id;

INST_ID COUNT(*)

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

1 41

2 39

查看用户在哪个节点:

SQL> select instance_name from v$instance;

INSTANCE_NAME

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

orcl2

查看RAC集群名称:

[root@racnode1 ~]# /u01/app/11.2.0/grid/bin/cemutlo -n

racnode-cluster

其他:crs 等同 has ["crsctl start crs" = "crsctl start has"]

/u01/app/11.2.0/grid/bin/crsctl start crs -- root启动集群实例

/u01/app/11.2.0/grid/bin/crsctl stop crs    -- root关闭集群实例

srvctl start database -d orcl                -- oracle启动数据库

srvctl stop database -d orcl                    -- oracle关闭数据库

crsctl status resource -t                        -- root、grid 查看资源状态

/u01/app/11.2.0/grid/bin/crs_stat -t -v     -- oracle10g查看资源命令,11g仍可用。

3、ASM基本操作

asmcmd常用命令格式

[grid@racnode1 ~]$ asmcmd

ASMCMD> help

查看asm磁盘组

[grid@racnode1 ~]$ asmcmd -p

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建ASMCMD [+] > exit

四、整个安装过程中,可能常见的问题整理

1、安装前预检查配置信息报错:

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

如果没有配置DNS(只在hosts文件里标明),检测/etc/resolv.conf会失败的,可以忽略该警告,直接 ignore 即可,不影响安装,或配置dns服务,重新检测。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

2、安装grid软件 SSH互信问题导致无法进行下一步

ssh互信配置

3、安装grid软件 [INS-40912]错误

忽略即可

4、安装grid 环境检查报错或警告; 如果最后一列中有yes,则选择Fix & Check Again,运行其中的脚本

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

这个警告,点击"more details"查看如下:

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

选择Ignore All.

5、执行root.sh报错

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

找不到共享库。

racnode1:

# yum install compat-libcap1*

racnode2:

# yum install compat-libcap1*

然后, racnode1 执行root.sh

然后, racnode2 执行root.sh

6、 INS-20802 Oracle Cluster Verifaction Utility failed。 可以skip。点击"Skip"

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

提示:INS-32091,Software Installation was successful.But some configuration assistants failed,were

cancelled or skipped. Are you sure you want to continue?

选择"Yes"。

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Oracle安装过程检查报错

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

8、设置ASMSNMP密码 报错

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

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

Vmware Workstation实现CentOS6.10_x64 下ORACLE RAC 11.2.0.4的搭建

待续……