本文以VMware虚拟机作为测试环境,搭建包含两个节点的RAC集群。VMware虚拟磁盘作为共享存储盘,磁盘分配容量大小仅供参考。
由于安装过程以大量截图方式进行说明,建议在PC端浏览。

环境说明

  • 虚拟机软件:VMware Workstation 15 Pro
  • 虚拟机操作系统:Oracle Linux 6.10 64位
  • 数据库版本:Oracle 11gR2

    准备工作

    创建共享磁盘

    搭建RAC集群需要共享空间作为注册盘和投票盘及数据文件的存储,使用添加VMware硬盘的方式创建共享磁盘。
    1. 添加硬盘
    [转]VMware Oracle RAC安装及搭建指南 - 图1
    2. 选择磁盘类型
    [转]VMware Oracle RAC安装及搭建指南 - 图2
    3. 创建新的虚拟磁盘
    [转]VMware Oracle RAC安装及搭建指南 - 图3
    4. 指定磁盘容量
    勾选立即分配所有磁盘空间,并存储为单个文件。
    [转]VMware Oracle RAC安装及搭建指南 - 图4
    5. 指定磁盘文件存放位置
    [转]VMware Oracle RAC安装及搭建指南 - 图5
    6. 硬盘高级设置
    选择创建的磁盘,并打开高级设置,勾选“独立”模式和“永久”属性。
    [转]VMware Oracle RAC安装及搭建指南 - 图6
    分别创建其他磁盘后,磁盘文件如下图所示:
    [转]VMware Oracle RAC安装及搭建指南 - 图7
    配置完毕后的虚拟机设备信息如下:
    [转]VMware Oracle RAC安装及搭建指南 - 图8
    这里创建了两个1GB的注册盘(orc),一个1GB的投票盘(votingdisk),一个5GB的数据盘(data),一个2GB的备份盘(backup)。
    虚拟设备节点分别是:SCSI1:0/SCSI1:1/SCSI1:2/SCSI1:3/SCSI1:4

    修改虚拟机vmx文件

    在虚拟机的vmx文件中添加配置信息。
    1. scsi1.sharedBus= "virtual"
    2. disk.locking= "false"
    3. diskLib.dataCacheMaxSize= "0"
    4. diskLib.dataCacheMaxReadAheadSize= "0"
    5. diskLib.DataCacheMinReadAheadSize= "0"
    6. diskLib.dataCachePageSize= "4096"
    7. diskLib.maxUnsyncedWrites= "0"

    配置网络适配器

    为虚拟机添加两个网络适配器。一个网卡用于对外提供服务(Public NIC),另一个网卡用于集群内部通信(Private NIC)。所以,第一个网络适配器选择桥接模式,第二个网络适配器选择仅主机模式。
    [转]VMware Oracle RAC安装及搭建指南 - 图9

    网络规划

    | 配置项 | 主机节点1 | 主机节点2 | | —- | —- | —- | | 主机名 | rac1 | rac2 | | Public 网卡名称 | eth2 | | | Public IP | 192.168.6.101 | 192.168.6.102 | | Private 网卡名称 | eth3 | | | Private IP | 192.168.80.101 | 192.168.80.102 | | Virtual IP | 192.168.6.201 | 192.168.6.202 | | Scan IP | 192.168.6.105 | |

安装操作系统

下载并在虚拟机中安装OracleLinux 6.10,安装过程略。

系统设置

操作系统安装完成后,需要进行一些必要的设置,以顺利安装Oracle软件。

关闭并禁用防火墙

1. 关闭防火墙

  1. service iptables stop

2. 禁止防火墙开机启动

  1. chkconfig iptables off

3. 关闭SELinux

  1. setenforce 0

4. 禁用SELinux
修改/etc/sysconfig/selinux文件,并设置SELINUX=disabled

创建用户和组

  1. /usr/sbin/groupadd -g 1010 oinstall
  2. /usr/sbin/groupadd -g 1020 asmadmin
  3. /usr/sbin/groupadd -g 1021 asmdba
  4. /usr/sbin/groupadd -g 1022 asmoper
  5. /usr/sbin/groupadd -g 1031 dba
  6. /usr/sbin/groupadd -g 1032 oper
  7. useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
  8. useradd -u 1101 -g oinstall -G dba,asmdba,oper oracle

创建目录结构

  1. mkdir -p /u01/app/11.2.0/grid
  2. mkdir -p /u01/app/grid
  3. mkdir /u01/app/oracle
  4. chown -R grid:oinstall /u01
  5. chown oracle:oinstall /u01/app/oracle
  6. chmod -R 775 /u01/

配置内核参数

在配置文件/etc/sysctl.conf添加以下内容:

  1. kernel.msgmnb = 65536
  2. kernel.msgmax = 65536
  3. kernel.shmmax = 68719476736
  4. kernel.shmall = 4294967296
  5. kernel.shmmni = 4096
  6. kernel.sem = 250 32000 100 128
  7. fs.aio-max-nr = 1048576
  8. fs.file-max = 6815744
  9. net.ipv4.ip_local_port_range = 9000 65500
  10. net.core.rmem_default = 262144
  11. net.core.rmem_max = 4194304
  12. net.core.wmem_default = 262144
  13. net.core.wmem_max = 1048586
  14. net.ipv4.tcp_wmem = 262144 262144 262144
  15. net.ipv4.tcp_rmem = 4194304 4194304 4194304

配置shell限制

修改/etc/security/limits.conf配置文件,对grid和oracle用户分别设置。

  1. grid soft nproc 2047
  2. grid hard nproc 16384
  3. grid soft nofile 1024
  4. grid hard nofile 65536
  5. oracle soft nproc 2047
  6. oracle hard nproc 16384
  7. oracle soft nofile 1024
  8. oracle hard nofile 65536

配置login

/etc/pam.d/login文件最后添加一行内容:

  1. session required pam_limits.so

安装软件包

1. 挂载操作系统安装光盘

  1. mkdir -p /mnt/cdrom
  2. mount /dev/cdrom /mnt/cdrom/

2. 添加安装源

  1. vi /etc/yum.repos.d/dvd.repo
  2. [dvd]
  3. name=dvd
  4. baseurl=file:///mnt/cdrom
  5. gpgcheck=0
  6. enabled=1

3. 重新生成元数据缓存

  1. yum clean all
  2. yum makecache

如果无法连接官方安装源,可禁用。

  1. yum-config-manager --disable public_ol6_UEKR4
  2. yum-config-manager --disable public_ol6_latest

4. 安装需要的软件包

  1. yum install gcc gcc-c++ glibc* glibc-devel* ksh libgcc* libstdc++* libstdc++-devel* make sysstat

安装并配置ASM

1. 安装ASM软件包

  1. rpm -ivh kmod-oracleasm-2.0.8-16.el6_10.x86_64.rpm
  2. rpm -ivh oracleasmlib-2.0.12-1.el6.x86_64.rpm
  3. rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm

2. 配置ASM

  1. [root@rac1 rpm]# oracleasm configure -i
  2. Configuring the Oracle ASM library driver.
  3. This will configure the on-boot properties of the Oracle ASM library
  4. driver. The following questions will determine whether the driver is
  5. loaded on boot and what permissions it will have. The current values
  6. will be shown in brackets ('[]'). Hitting <ENTER> without typing an
  7. answer will keep that current value. Ctrl-C will abort.
  8. Default user to own the driver interface []: grid
  9. Default group to own the driver interface []: asmadmin
  10. Start Oracle ASM library driver on boot (y/n) [n]: y
  11. Scan for Oracle ASM disks on boot (y/n) [y]: y
  12. Writing Oracle ASM library driver configuration: done

配置完成后,确认已经为启用状态。

[root@rac1 rpm]# oracleasm configure
ORACLEASM_ENABLED=true
ORACLEASM_UID=grid
ORACLEASM_GID=asmadmin
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"

3. 创建磁盘分区

[root@rac1 rpm]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): 
Using default value 130
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

重复上述步骤,对其他磁盘进行分区。
全部执行完成后,查看分区。

[root@rac1 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdc  /dev/sdc1  /dev/sdd  /dev/sdd1  /dev/sde  /dev/sde1  /dev/sdf  /dev/sdf1

4. 创建ASM磁盘

[root@rac1 rpm]# oracleasm createdisk OCR1 /dev/sdb1
Writing disk header: done
Instantiating disk: failed
Clearing disk header: done

创建失败时,需重启系统后重试。
其他sdc,sdd,sde,sdf以相同方式执行。

[root@rac1 ~]# oracleasm createdisk OCR2 /dev/sdc1 
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk VOTINGDISK /dev/sdd1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk DATA /dev/sde1      
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk BACKUP /dev/sdf1
Writing disk header: done
Instantiating disk: done

5. 查看磁盘信息

[root@rac2 rpm]# oracleasm listdisks
BACKUP
DATA
OCR1
OCR11
VOTINGDISK

复制虚拟机文件

将虚拟机目录进行复制,得到第二个主机后,启动第二台虚拟主机再进行后续配置。
复制虚拟机后,需要为第二个主机网络适配器重新生成MAC地址,并且将系统网络配置中的网卡地址修改为新生成的MAC地址。

配置IP和主机名

两台主机的IP和主机名,参照前文网络规划中的内容进行配置。
1. 修改IP地址
修改/etc/sysconfig/network-scripts/ifcfg-Auto_eth2配置文件,对Public IP进行配置。

  • rac1主机:

    IPADDR=192.168.6.101
    PREFIX=24
    GATEWAY=192.168.6.203
    
  • rac2主机:

    IPADDR=192.168.6.102
    PREFIX=24
    GATEWAY=192.168.6.203
    

    修改/etc/sysconfig/network-scripts/ifcfg-Auto_eth3配置文件,对Private IP进行配置。

  • rac1主机:

    IPADDR=192.168.80.101
    PREFIX=24
    
  • rac2主机:

    IPADDR=192.168.80.102
    PREFIX=24
    

    rac2设置IP后仍不能与宿主机通信,需修改/etc/udev/rules.d/70-persistent-net.rules文件。将多余的网口配置删除,只保留MAC和ifcfg-Auto_eth2和ifcfg-Auto_eth3文件中MAC相同两条记录。并确保各网卡的MAC地址与虚拟机网络适配器中生成的MAC地址相同。

2. 配置hostname
调整两台主机的主机名。

  • rac1主机:

    hostname rac1
    
  • rac2主机:

    hostname rac2
    

    修改/etc/sysconfig/network配置文件。

  • rac1主机:

    NETWORKING=yes
    HOSTNAME=rac1 
    GATEWAY=192.168.80.101
    NOZEROCONF=yes
    
  • rac2主机:

    NETWORKING=yes
    HOSTNAME=rac2 
    GATEWAY=192.168.80.102 
    NOZEROCONF=yes
    

    3. 配置hosts
    修改/etc/hosts文件。

    192.168.6.101 rac1
    192.168.6.102 rac2
    192.168.6.201 rac1-vip
    192.168.6.202 rac2-vip
    192.168.80.101 rac1-priv
    192.168.80.102 rac2-priv
    192.168.6.105 scan-ip
    

    rac1和rac2主机均需添加。

    用户环境变量配置

    1. grid用户

    [root@localhost sysconfig]# su - grid
    [grid@localhost ~]$ vi .bash_profile
    

    增加以下内容:

    export TMP=/tmp
    export TMPDIR=$TMP
    export ORACLE_SID=+ASM1  # RAC1
    export ORACLE_SID=+ASM2  # RAC2
    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
    

    其中ORACLE_SID变量在不同节点分别配置。
    2. oracle用户

    [root@localhost sysconfig]# su - oracle
    [oracle@localhost ~]$ vi .bash_profile
    

    增加以下内容:

    export TMP=/tmp
    export TMPDIR=$TMP
    export ORACLE_SID=orcl1  # RAC1
    export ORACLE_SID=orcl2  # RAC2
    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_SID变量在不同节点分别配置。
    执行source .bash_profile命令使配置生效。

    SSH互信

    1. oracle用户
    切换至oracle用户,在两个主机上生成密钥文件,生成过程中全部回车:

    ssh-keygen -t rsa
    ssh-keygen -t dsa
    

    在rac1主机执行,以下命令需逐行执行:

    ssh rac1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    ssh rac1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    scp ~/.ssh/authorized_keys rac2:~/.ssh/
    chmod 600 ~/.ssh/authorized_keys
    

    在rac2主机执行:

    chmod 600 ~/.ssh/authorized_keys
    

    2. grid用户
    切换至oracle用户,以grid用户相同的方式进行配置。

    虽然这里配置了主机互信,但是在安装过程中仍然有可能会提示错误,可跳过此步骤通过安装程序进行主机互信设置。

安装Grid Infrastructure(GI)网格套件

下载安装文件

通过官网下载地址下载database和grid安装程序,得到压缩包。

  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip
  • linux.x64_11gR2_grid.zip

将压缩包上传至rac1主机并解压,其中database上传至oracle用户目录下,grid上传至grid用户目录下。

安装cvuqdisk

在Oracle RAC两个节点上安装cvuqdisk,否则,集群验证时程序就无法发现共享磁盘。

[root@rac1 ~]# cd /home/grid/grid/rpm/
[root@rac1 rpm]# rpm -ivh cvuqdisk-1.0.7-1.rpm 
准备中...                          ################################# [100%]
Using default group oinstall to install package
正在升级/安装...
   1:cvuqdisk-1.0.7-1                 ################################# [100%]

执行安装前检查

登录grid用户,切换目录至grid的安装程序目录,并执行以下命令:

./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose

如果提示文件权限不足,请为相应的文件添加可执行权限。

chmod u+x filename

根据输出内容,安装缺失的软件包。其中部分软件包在操作系统的ISO文件中可以找到。

i386的版本在Linux 6已经变更为i686,如果已经安装了对应的版本,可忽略检查结果。

安装Grid

设置DISPLAY变量

[root@localhost ~]# export DISPLAY=:0.0
[root@localhost ~]# xhost +

执行安装程序

./runInstaller

安装图形界面乱码问题解决:在/home/grid/grid/stage/Components/oracle.jdk/1.5.0.17.0/1/DataFiles目录下找到all.jar文件,并用文件打包器打开,在/jdk/jre/lib/fonts/目录下添加fallback目录,并将zysong.ttf添加到该目录下。重新执行runInstaller安装程序后,界面以支持中文显示。 1.png

安装集群
[转]VMware Oracle RAC安装及搭建指南 - 图10
选择高级安装
[转]VMware Oracle RAC安装及搭建指南 - 图11
选择语言
[转]VMware Oracle RAC安装及搭建指南 - 图12
填写SCAN信息。SCAN名称为/etc/hosts文件中配置的scan-ip,SCAN端口为默认的1521。去掉GNS配置勾选。
[转]VMware Oracle RAC安装及搭建指南 - 图13
点击下一步,对SCAN进行验证。
[转]VMware Oracle RAC安装及搭建指南 - 图14

如果提示scan ip已经分配,则修改/etc/hosts文件,为scan-ip分配一个未使用的IP地址。退出安装程序并重启。

配置集群节点信息,这里添加第二个节点的主机名和虚IP名称。
[转]VMware Oracle RAC安装及搭建指南 - 图15
[转]VMware Oracle RAC安装及搭建指南 - 图16
点击下一步时,提示INS-06006错误。需要进一步配置SSH连接。
[转]VMware Oracle RAC安装及搭建指南 - 图17
填写操作系统口令,并勾选“重用用户主目录中存在的私有密钥和公共密钥”,点击设置开始建立连接。
[转]VMware Oracle RAC安装及搭建指南 - 图18
建立连接时,由于网卡接口名称不一致提示INS-40927警告信息。
[转]VMware Oracle RAC安装及搭建指南 - 图19
解决办法:修改/etc/udev/rules.d/70-persistent-net.rules文件,使得两个主机的网卡名称对应,并将其中多余的网卡接口删除。确保两台主机eth2在同一网段,eth3在同一网段。
指定网络接口
[转]VMware Oracle RAC安装及搭建指南 - 图20
选择ASM自动存储管理
[转]VMware Oracle RAC安装及搭建指南 - 图21
通过前面的配置,这里安装程序已经可以正确的识别到共享磁盘了。选择OCR1、OCR2、VOTINGDISK,并指定磁盘组名称为OCR,冗余方式为外部。
[转]VMware Oracle RAC安装及搭建指南 - 图22
指定ASM口令,测试环境为方便记忆,对所有账户使用同一口令,实际生产环境建议使用不同口令。
[转]VMware Oracle RAC安装及搭建指南 - 图23
故障隔离选择不使用IPMI
[转]VMware Oracle RAC安装及搭建指南 - 图24
操作系统组设置
[转]VMware Oracle RAC安装及搭建指南 - 图25
安装程序使用之前在环境变量中配置的路径作为安装目录。
[转]VMware Oracle RAC安装及搭建指南 - 图26
产品清单目录
[转]VMware Oracle RAC安装及搭建指南 - 图27
执行安装前检查
[转]VMware Oracle RAC安装及搭建指南 - 图28
查看检查结果并执行修复脚本,这里会列出不满足的安装条件,以及缺失的软件包。
[转]VMware Oracle RAC安装及搭建指南 - 图29
即使在/etc/sysctl.conf中配置了kernel.sem内核参数,安装程序还是认为不满足条件。其中的原因有待确认,这里选择了忽略。
[转]VMware Oracle RAC安装及搭建指南 - 图30
生成概要,保存响应文件。
[转]VMware Oracle RAC安装及搭建指南 - 图31
开始安装。
[转]VMware Oracle RAC安装及搭建指南 - 图32
执行远程操作时,可能耗时较长,请耐心等待。
[转]VMware Oracle RAC安装及搭建指南 - 图33
执行远程操作结束后,准备执行Root脚本。
[转]VMware Oracle RAC安装及搭建指南 - 图34
按照提示顺序,分别在两台主机上执行对应的脚本。
[转]VMware Oracle RAC安装及搭建指南 - 图35
执行脚本时,可能遇到的问题及解决方法如下:

问题1

执行root.sh脚本时,提示找不到libcap.so.1文件。

/u01/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

解决方法

[root@rac2 lib64]# ln -s /lib64/libcap.so.2.16 /lib64/libcap.so.1

重新执行sh root.sh前,需要先执行/u01/app/11.2.0/grid/crs/install/rootcrs.pl -deconfig -force进行撤销配置操作。

问题2

执行root.sh脚本时,输出到Adding daemon to inittab时,等待时间很长或者出现下面的错误。

CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.

解决方法

执行/u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose,重新执行sh root.sh脚本,在显示Adding daemon to inittab的时候,同时再打开一个终端并执行:

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

在两台节点上执行完配置脚本后,点击确定,安装程序继续完成剩余安装。
[转]VMware Oracle RAC安装及搭建指南 - 图36
安装即将结束时,提示INS-20802错误,查看详细资料和日志。
[转]VMware Oracle RAC安装及搭建指南 - 图37
选择跳过完成安装。
[转]VMware Oracle RAC安装及搭建指南 - 图38
集群安装完成。
[转]VMware Oracle RAC安装及搭建指南 - 图39

安装后的检查

执行检查命令前需将grid的程序路径添加到环境变量中。

export PATH=/u01/app/11.2.0/grid/bin:${PATH}

检查crs状态

[grid@rac1 ~]$ 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@rac1 ~]$ crs_stat -t -v
Name           Type           R/RA   F/FT   Target    State     Host        
----------------------------------------------------------------------
ora.DATA.dg    ora....up.type 0/5    0/     ONLINE    ONLINE    rac1        
ora....ER.lsnr ora....er.type 0/5    0/     ONLINE    ONLINE    rac1        
ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    rac1        
ora.asm        ora.asm.type   0/5    0/     ONLINE    ONLINE    rac1        
ora.eons       ora.eons.type  0/3    0/     ONLINE    ONLINE    rac1        
ora.gsd        ora.gsd.type   0/5    0/     OFFLINE   OFFLINE               
ora....network ora....rk.type 0/5    0/     ONLINE    ONLINE    rac1        
ora.oc4j       ora.oc4j.type  0/5    0/0    OFFLINE   OFFLINE               
ora.ons        ora.ons.type   0/3    0/     ONLINE    ONLINE    rac1        
ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac1        
ora....C1.lsnr application    0/5    0/0    ONLINE    ONLINE    rac1        
ora.rac1.gsd   application    0/5    0/0    OFFLINE   OFFLINE               
ora.rac1.ons   application    0/3    0/0    ONLINE    ONLINE    rac1        
ora.rac1.vip   ora....t1.type 0/0    0/0    ONLINE    ONLINE    rac1        
ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac2        
ora....C2.lsnr application    0/5    0/0    ONLINE    ONLINE    rac2        
ora.rac2.gsd   application    0/5    0/0    OFFLINE   OFFLINE               
ora.rac2.ons   application    0/3    0/0    ONLINE    ONLINE    rac2        
ora.rac2.vip   ora....t1.type 0/0    0/0    ONLINE    ONLINE    rac2        
ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    rac1

检查集群节点

[grid@rac1 ~]$ olsnodes -n
rac1    1
rac2    2

检查监听器进程

[grid@rac1 ~]$ ps -ef|grep lsnr|grep -v 'grep'
grid     16577     1  0 01:54 ?        00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit
grid     16988     1  0 01:59 ?        00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit

查看ASM状态

[grid@rac1 ~]$ srvctl status asm -a
ASM 正在 rac1,rac2 上运行
ASM 已启用。

创建ASM磁盘组

运行/u01/app/11.2.0/grid/bin/asmca程序。
[转]VMware Oracle RAC安装及搭建指南 - 图40
查看Disk Groups选项卡,可以看到执行安装程序时添加的OCR磁盘组。
[转]VMware Oracle RAC安装及搭建指南 - 图41
点击Create创建DATA磁盘组。
[转]VMware Oracle RAC安装及搭建指南 - 图42
创建闪回恢复区磁盘组。
[转]VMware Oracle RAC安装及搭建指南 - 图43
添加后的磁盘组情况:
[转]VMware Oracle RAC安装及搭建指南 - 图44

安装Oracle database

完成ASM磁盘组配置后,接下来开始安装database软件。安装前,确保已经添加了DISPLAY变量,配置方法见前文。
启动安装程序

[root@rac1 grid]# su - oracle
[oracle@rac1 database]$ ./runInstaller -ignoreInternalDriverError

如果安装程序界面出现乱码,处理方式与安装grid时的处理方式相同,参见前文。
因为仅作测试,这里取消接收安全更新勾选。
[转]VMware Oracle RAC安装及搭建指南 - 图45
仅安装数据库软件。
[转]VMware Oracle RAC安装及搭建指南 - 图46
RAC数据库安装
[转]VMware Oracle RAC安装及搭建指南 - 图47
配置SSH连接
[转]VMware Oracle RAC安装及搭建指南 - 图48
选择语言
[转]VMware Oracle RAC安装及搭建指南 - 图49
选择企业版数据库
[转]VMware Oracle RAC安装及搭建指南 - 图50
忽略INS-20702错误
[转]VMware Oracle RAC安装及搭建指南 - 图51
配置操作系统组
[转]VMware Oracle RAC安装及搭建指南 - 图52
开始安装
[转]VMware Oracle RAC安装及搭建指南 - 图53
按照提示顺序,在两个节点上执行对应的脚本。
[转]VMware Oracle RAC安装及搭建指南 - 图54
完成安装
[转]VMware Oracle RAC安装及搭建指南 - 图55

创建集群数据库

切换为oracle用户,并执行dbca命令创建集群数据库。

[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ dbca

选择RAC数据库。
[转]VMware Oracle RAC安装及搭建指南 - 图56
创建一个新的数据库。
[转]VMware Oracle RAC安装及搭建指南 - 图57
自定义数据库创建过程。
[转]VMware Oracle RAC安装及搭建指南 - 图58
填写全局数据库名和SID,并选择所有节点。
[转]VMware Oracle RAC安装及搭建指南 - 图59
配置企业管理器和磁盘备份计划。
[转]VMware Oracle RAC安装及搭建指南 - 图60
为账户设置口令。
[转]VMware Oracle RAC安装及搭建指南 - 图61
选择存储位置。
[转]VMware Oracle RAC安装及搭建指南 - 图62
在选择磁盘组界面发现DATA和FRA磁盘组尚未挂载。
[转]VMware Oracle RAC安装及搭建指南 - 图63
此时,切换至grid用户并连接至数据库,进行磁盘组挂载。

[grid@rac1 ~]$ sqlplus / as sysdba

查看当前磁盘组状态,其中DATA和FRA处于为DISMOUNTED状态。

SQL> select name,state from v$asm_diskgroup;
NAME                           STATE
------------------------------ -----------
OCR                            MOUNTED
FRA                            DISMOUNTED
DATA                           DISMOUNTED

以sysasm角色连接数据库。

SQL> conn / as sysasm

执行挂载磁盘组操作

SQL> alter diskgroup DATA mount;
Diskgroup altered.
SQL> alter diskgroup FRA mount;
Diskgroup altered.

此时,再次查看磁盘组状态均为MOUNTED状态。

SQL> select name,state from v$asm_diskgroup;
NAME                           STATE
------------------------------ -----------
OCR                            MOUNTED
FRA                            MOUNTED
DATA                           MOUNTED

回到界面后,可重新选择DATA磁盘组。
指定Flash Recovery Area,选择FRA磁盘组。
[转]VMware Oracle RAC安装及搭建指南 - 图64
数据库组件配置。
[转]VMware Oracle RAC安装及搭建指南 - 图65
设置字符集。
[转]VMware Oracle RAC安装及搭建指南 - 图66
设置数据库存储,这里直接点Next。
[转]VMware Oracle RAC安装及搭建指南 - 图67
勾选生成数据库创建脚本选项,点击Finish开始创建过程。
[转]VMware Oracle RAC安装及搭建指南 - 图68
查看并保存摘要。
[转]VMware Oracle RAC安装及搭建指南 - 图69
接下来会生成创建脚本。
[转]VMware Oracle RAC安装及搭建指南 - 图70
[转]VMware Oracle RAC安装及搭建指南 - 图71
然后开始数据库创建过程,此过程非常耗时,请耐心等待。
[转]VMware Oracle RAC安装及搭建指南 - 图72
安装过程中,可以在界面上显示的路径下,查看安装日志。
创建完成后,会显示数据库的关键信息,包含企业管理器的访问地址。
[转]VMware Oracle RAC安装及搭建指南 - 图73

结束

至此,Oracle 11gR2 RAC集群安装结束。
客户端使用scan-ip连接数据库时,如果遇到ORA-12545错误,可通过以下方式处理:
1. 用管理员身份连接数据库

sqlplus / as sysdba

2. 查看监听参数

SQL> show parameter listener;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
listener_networks                    string
local_listener                       string      (DESCRIPTION=(ADDRESS_LIST=(AD
                                                 DRESS=(PROTOCOL=TCP)(HOST=rac1
                                                 -vip)(PORT=1521))))
remote_listener                      string      scan-ip:1521

3. 修改listener参数
其中HOST分别为两台主机的vip,与/etc/hosts文件中的一致。

SQL> alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.6.201)(PORT=1521))))' sid='orcl1';
SQL> alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.6.202)(PORT=1521))))' sid='orcl2';

4. 客户端连接测试

C:\Users\Administrator>sqlplus sys/oracle@scan-ip/orcl as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 11月 27 15:59:26 2019
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL>

客户端已经可以通过scan-ip连接到数据库了。