本文以VMware虚拟机作为测试环境,搭建包含两个节点的RAC集群。VMware虚拟磁盘作为共享存储盘,磁盘分配容量大小仅供参考。

由于安装过程以大量截图方式进行说明,建议在PC端浏览。

环境说明

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

准备工作

创建共享磁盘

搭建RAC集群需要共享空间作为注册盘和投票盘及数据文件的存储,使用添加VMware硬盘的方式创建共享磁盘。

1. 添加硬盘
在这里插入图片描述
2. 选择磁盘类型
在这里插入图片描述
3. 创建新的虚拟磁盘
在这里插入图片描述
4. 指定磁盘容量

勾选立即分配所有磁盘空间,并存储为单个文件。
在这里插入图片描述
5. 指定磁盘文件存放位置
在这里插入图片描述
6. 硬盘高级设置

选择创建的磁盘,并打开高级设置,勾选“独立”模式和“永久”属性。
在这里插入图片描述
分别创建其他磁盘后,磁盘文件如下图所示:
在这里插入图片描述
配置完毕后的虚拟机设备信息如下:
在这里插入图片描述

这里创建了两个1GB的注册盘(orc),一个1GB的投票盘(votingdisk),一个5GB的数据盘(data),一个2GB的备份盘(backup)。
虚拟设备节点分别是:SCSI1:0/SCSI1:1/SCSI1:2/SCSI1:3/SCSI1:4

修改虚拟机vmx文件

在虚拟机的vmx文件中添加配置信息。

scsi1.sharedBus= "virtual"
disk.locking= "false"
diskLib.dataCacheMaxSize= "0"
diskLib.dataCacheMaxReadAheadSize= "0"
diskLib.DataCacheMinReadAheadSize= "0"
diskLib.dataCachePageSize= "4096"
diskLib.maxUnsyncedWrites= "0"

配置网络适配器

为虚拟机添加两个网络适配器。一个网卡用于对外提供服务(Public NIC),另一个网卡用于集群内部通信(Private NIC)。所以,第一个网络适配器选择桥接模式,第二个网络适配器选择仅主机模式。
在这里插入图片描述

网络规划

配置项主机节点1主机节点2
主机名rac1rac2
Public 网卡名称eth2
Public IP192.168.6.101192.168.6.102
Private 网卡名称eth3
Private IP192.168.80.101192.168.80.102
Virtual IP192.168.6.201192.168.6.202
Scan IP192.168.6.105

安装操作系统

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

系统设置

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

关闭并禁用防火墙

1. 关闭防火墙

service iptables stop

2. 禁止防火墙开机启动

chkconfig iptables off

3. 关闭SELinux

setenforce 0

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

创建用户和组

/usr/sbin/groupadd -g 1010 oinstall
/usr/sbin/groupadd -g 1020 asmadmin
/usr/sbin/groupadd -g 1021 asmdba
/usr/sbin/groupadd -g 1022 asmoper
/usr/sbin/groupadd -g 1031 dba
/usr/sbin/groupadd -g 1032 oper
useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
useradd -u 1101 -g oinstall -G dba,asmdba,oper oracle

创建目录结构

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/

配置内核参数

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

kernel.msgmnb = 65536 
kernel.msgmax = 65536 
kernel.shmmax = 68719476736 
kernel.shmall = 4294967296 
kernel.shmmni = 4096 
kernel.sem = 250 32000 100 128 
fs.aio-max-nr = 1048576 
fs.file-max = 6815744 
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

配置shell限制

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

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

配置login

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

session    required     pam_limits.so

安装软件包

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

mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom/

2. 添加安装源

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

3. 重新生成元数据缓存

yum clean all
yum makecache

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

yum-config-manager --disable public_ol6_UEKR4
yum-config-manager --disable public_ol6_latest

4. 安装需要的软件包

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

安装并配置ASM

1. 安装ASM软件包

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

2. 配置ASM

[root@rac1 rpm]# oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
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

安装集群
在这里插入图片描述
选择高级安装
在这里插入图片描述
选择语言
在这里插入图片描述
填写SCAN信息。SCAN名称为/etc/hosts文件中配置的scan-ip,SCAN端口为默认的1521。去掉GNS配置勾选。
在这里插入图片描述
点击下一步,对SCAN进行验证。
在这里插入图片描述

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

配置集群节点信息,这里添加第二个节点的主机名和虚IP名称。
在这里插入图片描述
在这里插入图片描述
点击下一步时,提示INS-06006错误。需要进一步配置SSH连接。
在这里插入图片描述
填写操作系统口令,并勾选“重用用户主目录中存在的私有密钥和公共密钥”,点击设置开始建立连接。
在这里插入图片描述
建立连接时,由于网卡接口名称不一致提示INS-40927警告信息。
在这里插入图片描述
解决办法:修改/etc/udev/rules.d/70-persistent-net.rules文件,使得两个主机的网卡名称对应,并将其中多余的网卡接口删除。确保两台主机eth2在同一网段,eth3在同一网段。

指定网络接口
在这里插入图片描述
选择ASM自动存储管理
在这里插入图片描述
通过前面的配置,这里安装程序已经可以正确的识别到共享磁盘了。选择OCR1、OCR2、VOTINGDISK,并指定磁盘组名称为OCR,冗余方式为外部。
在这里插入图片描述
指定ASM口令,测试环境为方便记忆,对所有账户使用同一口令,实际生产环境建议使用不同口令。
在这里插入图片描述
故障隔离选择不使用IPMI
在这里插入图片描述
操作系统组设置
在这里插入图片描述
安装程序使用之前在环境变量中配置的路径作为安装目录。
在这里插入图片描述
产品清单目录
在这里插入图片描述
执行安装前检查
在这里插入图片描述
查看检查结果并执行修复脚本,这里会列出不满足的安装条件,以及缺失的软件包。
在这里插入图片描述
即使在/etc/sysctl.conf中配置了kernel.sem内核参数,安装程序还是认为不满足条件。其中的原因有待确认,这里选择了忽略。
在这里插入图片描述
生成概要,保存响应文件。
在这里插入图片描述
开始安装。
在这里插入图片描述
执行远程操作时,可能耗时较长,请耐心等待。
在这里插入图片描述
执行远程操作结束后,准备执行Root脚本。
在这里插入图片描述

按照提示顺序,分别在两台主机上执行对应的脚本。
在这里插入图片描述
执行脚本时,可能遇到的问题及解决方法如下:

问题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

在两台节点上执行完配置脚本后,点击确定,安装程序继续完成剩余安装。
在这里插入图片描述
安装即将结束时,提示INS-20802错误,查看详细资料和日志。
在这里插入图片描述
选择跳过完成安装。
在这里插入图片描述
集群安装完成。
在这里插入图片描述

安装后的检查

执行检查命令前需将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程序。
在这里插入图片描述
查看Disk Groups选项卡,可以看到执行安装程序时添加的OCR磁盘组。
在这里插入图片描述
点击Create创建DATA磁盘组。
在这里插入图片描述
创建闪回恢复区磁盘组。
在这里插入图片描述
添加后的磁盘组情况:
在这里插入图片描述

安装Oracle database

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

启动安装程序

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

如果安装程序界面出现乱码,处理方式与安装grid时的处理方式相同,参见前文。

因为仅作测试,这里取消接收安全更新勾选。
在这里插入图片描述
仅安装数据库软件。
在这里插入图片描述
RAC数据库安装
在这里插入图片描述
配置SSH连接
在这里插入图片描述
选择语言
在这里插入图片描述
选择企业版数据库
在这里插入图片描述
忽略INS-20702错误
在这里插入图片描述
配置操作系统组
在这里插入图片描述
开始安装
在这里插入图片描述
按照提示顺序,在两个节点上执行对应的脚本。
在这里插入图片描述
完成安装
在这里插入图片描述

创建集群数据库

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

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

选择RAC数据库。
在这里插入图片描述
创建一个新的数据库。
在这里插入图片描述
自定义数据库创建过程。
在这里插入图片描述
填写全局数据库名和SID,并选择所有节点。
在这里插入图片描述
配置企业管理器和磁盘备份计划。
在这里插入图片描述
为账户设置口令。
在这里插入图片描述
选择存储位置。
在这里插入图片描述
在选择磁盘组界面发现DATA和FRA磁盘组尚未挂载。
在这里插入图片描述
此时,切换至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磁盘组。
在这里插入图片描述
数据库组件配置。
在这里插入图片描述
设置字符集。
在这里插入图片描述
设置数据库存储,这里直接点Next。
在这里插入图片描述
勾选生成数据库创建脚本选项,点击Finish开始创建过程。
在这里插入图片描述
查看并保存摘要。
在这里插入图片描述
接下来会生成创建脚本。
在这里插入图片描述
在这里插入图片描述

然后开始数据库创建过程,此过程非常耗时,请耐心等待。
在这里插入图片描述
安装过程中,可以在界面上显示的路径下,查看安装日志。

创建完成后,会显示数据库的关键信息,包含企业管理器的访问地址。
在这里插入图片描述

结束

至此,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连接到数据库了。

如果这篇文章对你有帮助,可否留下一个赞,谢谢!!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐