本文包含以下几个知识点:

1、rhel6中配置Oracle ASM。

2、KVM中安装配置RHCS。

3、RHCS中注册oracle资源。

4、禁用IPV6。

环境介绍:

这里的共享存储使用的是KVM的共享存储功能,分别使用了三个10G大小的虚拟磁盘。

主机名 IP 内存 硬盘 注释
server.exmaple.com 192.168.1.10 16G /dev/vda系统盘,/dev/vd{b,c,d}共享磁盘,用于创建ASM磁盘 DNS服务器,管理RHCS节点,KVM
cs01.example.com 192.168.2.11 2G /dev/vda系统盘,/dev/vd{b,c,d}共享磁盘,用于创建ASM磁盘 RHCS节点1
cs02.example.com 192.168.2.12 2G /dev/vda系统盘,/dev/vd{b,c,d}共享磁盘,用于创建ASM磁盘 RHCS节点2
oracle.example.com 192.168.2.20 N/A /dev/vda系统盘,/dev/vd{b,c,d}共享磁盘,用于创建ASM磁盘 oracle逻辑主机名

一、KVM的配置:

具体的KVM安装配置过程请参考我的另一篇博文:RHEL6之KVM的安装配置。这里操作系统使用的是rhel6.1系统。这里具体描述下创建共享存储以及虚拟网络。

1、创建共享存储:

首先在虚拟系统管理器界面,右键点击localhost(QEMU),选择详情,会出现物理主机详情的界面:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第1张图片

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第2张图片

然后,点击存储,在存储池中创建卷,如图所示创建了三个ASM卷,接着打开任意一个虚拟机,在虚拟硬件详情里点击”添加硬件”,将上述的三个卷添加进去,如图:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第3张图片

点完成之后,在新添加的磁盘选项中,在”可共享”选项中打勾。在另外一台上,按照上述方法添加新硬盘,点完成后,会弹出以下对话框:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第4张图片

选择”是”即可,完成之后,共享存储就设置完毕,两节点开机后,就可以看到新加的三块虚拟硬盘。

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第5张图片

在KVM虚拟机中,可以在线添加硬盘,添加完毕后,不用重启系统就可以立即被识别。

2、创建虚拟网络:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第6张图片

在上图中点击”+”,出现创建新的虚拟网络画面:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第7张图片

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第8张图片

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第9张图片

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第10张图片

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第11张图片

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第12张图片

最后,点击完成即可。

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第13张图片

最后,ifconfig下会出现新的虚拟网络接口:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第14张图片

3、禁用IPV6:

首先编辑/etc/sysconfig/network文件,加入以下内容:

IPV6INIT=no

接着在/etc/modprobe.d目录下,创建disable-ipv6.conf文件,加入以下内容:

p_w_picpath

最后重启系统使其生效即可。关于上述几个语句的具体含义,请参考/usr/share/doc/initscripts-9.03.23/sysconfig.txt文件。

二、RHCS的安装:

在rhel6.1中,安装luci之后,不用再使用luci_admin命令执行初始化操作了,默认的访问地址还是https://ip:8084,直接使用root帐号登录即可。这里先建个cluster框架,暂时不注册oracle资源,待oracle安装完了之后,再向rhcs中注册oracle资源。

1、server上安装luci软件:

p_w_picpath

这个组里就一个luci软件包,所以在cs01和cs02上不需要安装。

2、cs01和cs02上安装集群软件:

p_w_picpath

p_w_picpath

3、编辑hosts文件,将三个节点的名称及IP加进去:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第15张图片

4、如果防火墙启用,则需要启用以下端口:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第16张图片

p_w_picpath

5、使用luci创建一个cluster:

(1)、构建cluster框架:

启动luci并登录rhcs的web管理界面,开始配置rhcs:

p_w_picpath

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第17张图片

p_w_picpath

点击上图中的Create按钮,创建集群:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第18张图片

在点击Create Cluster之前,确保两个节点上的ricci处于运行状态,否则会出现以下报错:

p_w_picpath

还有就是在初次使用的时候,必须在集群节点上设置ricci用户的密码,否则会出现以下错误:

p_w_picpath

p_w_picpath

经过一系列的配置重启节点后,如下图所示:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第19张图片

点击任意一个节点,就可以看到所有的cluster服务已经启动:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第20张图片

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第21张图片

(2)、创建Failover Domain:

点击”Failover Domain”选项卡,然后点击”Add”按钮:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第22张图片

Failover domain name:定义Failover域名称。
Prioritized:是否在Failover domain 中启用域成员优先级设置。
Restrict Failover to this domain’s member:是否在失败转移域成员中启用服务故障切换限制。
Do not fail back services in this domain:表示在这个域中使用故障切回功能,也就是说,主节点故障时,备用节点会自动接管主节点服务和资源,当主节点恢复正常时,集群的服务和资源会从备用节点自动切换到主节点。最后,在Failover domain membership的Member复选框中,选择加入此域的节点,在“priority”处将cs01的优先级设置为1,cs02的优先级设置为5。对于“priority”的值设置为1代表优先级最高的,随着数值的增加,节点优先级也依次降低。

(3),配置Fence设备:

点击Fence Devices选项卡再点击Add,如图:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第23张图片

这里使用的是SCSI_Fence,使用的是裸设备。

接着在各个节点中关联fence设备:

点击节点名称,然后选择Add Fence Method,设置名称,完成之后,再添加fence实例:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第24张图片

使用命令行查看fence设备信息:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第25张图片

p_w_picpath

(4)、使用命令查看rhcs相关信息:

p_w_picpath

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第26张图片

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第27张图片

三、Oracle的安装:

1、RHEL6中ASMlib的安装:

对于rhel6,oracle已经不提供ASMlib支持了。oracle只对自己的Oracle Enterprise Linux提供Oracle支持。在oracle linux中,默认已经将ASM模块编译进内核了,只需安装oracleasm-support软件即可使用。由于oracle提供的Unbreakable Enterprise Kernel内核与rhel6的内核完全兼容,所以在rhel6中只需安装kernel-uek开头的内核文件,然后再安装oracleasm-support软件即可使用ASM。

Oracle ASM软件以及Unbreakable Enterprise Kernel内核下载站点:http://public-yum.oracle.com/repo/OracleLinux/OL6/1/base/x86_64/,主要下载下图中的几个软件包,两个节点都进行安装:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第28张图片

对/dev/vd{b,c,d}进行分区操作:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第29张图片

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第30张图片

完成之后,在其中一个节点上使用oracleasm进行初始化并创建ASM磁盘:

p_w_picpath

最后,在另外一个点上扫描下asm磁盘即可:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第31张图片

2、Oracle数据库软件的安装:

这里不使用ASM磁盘组,安装的数据库版本是11.2.0.2。共享存储使用的是LVM。Oracle软件安装过程、监听创建过程以及建库过程全省略,请参考其他博文。

3、创建共享文件系统:

使用/dev/vd{b,c,d}三个虚拟硬盘创建LVM卷组oradata。

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第32张图片

接着,创建了一个逻辑卷组u02用于存放oracle数据。

四、注册oracle资源:

1、创建IP资源:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第33张图片

这个IP就是Oracle监听器的地址,对应的主机名是oracle.example.com.

2、创建LVM HA资源:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第34张图片

对这个做个解释:用于LVM HA的vg是oradata,其中划分了一个15G大小的u02用于存放oracle数据文件。

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第35张图片

LVM的HA切换是这样的,当前oradata存在于cs02上面,首先系统卸载u02文件系统,接着将/dev/oradata/u02设置为未激活状态,然后执行vgexport将oradata导出。在cs01上面,首先执行vgimport将oradata导入,接着将/dev/oradata/u02设置为激活状态,最后挂载到指定点。

3、创建文件系统资源:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第36张图片

这个资源依赖于上面的LVM-HA资源。

4、创建监听器资源:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第37张图片

这个agent调用的是/usr/share/cluster/oralistener.sh脚本。

5、oracle数据库实例资源:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第38张图片

这个agent调用的是/usr/share/cluster/orainstance.sh。

6、创建服务组:

这里创建了一个oracle服务组,上述创建的5个资源将其添加到oracle组里构成一个服务组。这个不好截取web界面,所以使用命令行界面:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第39张图片

上述的资源所调用的脚本都位于/usr/share/cluster目录下。创建完服务组之后,系统会自动启动它。当前oracle服务组已处于online状态:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第40张图片

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第41张图片

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第42张图片

针对于oracle.example.com这个IP地址,不能使用ifconfig查看,要使用下面的ip命令进行查看:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第43张图片

五、RHCS的命令行管理:

1、查看RHCS服务组状态:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第44张图片

2、切换服务组:

当前oracle运行于cs02上,将其切换至cs01上:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第45张图片

3、ccs命令的相关使用:

查看资源以及服务组信息:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第46张图片

查看当前的cluster配置信息:

p_w_picpath

这个命令实质上就是查看cluster.conf文件。

查看Failoverdomain信息:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第47张图片

查看fence信息:

Using KVM Configure Oracle HA With RHCS IN RHEL6.1_第48张图片

查看节点信息:

p_w_picpath

ccs这个命令也可以创建cluster,增加节点,创建资源、删除资源、修改资源等操作,其类似于在web管理界面的操作。

参考文献:

                Red Hat Enterprise Linux 6 Cluster Administration