在RHCS体系中,Oracle的启动是按以下顺序进行的:
- VIP。
- 监听器。
- 逻辑卷(ISCSI共享出来的)。
- 文件系统(在逻辑卷上创建)。
- 数据库实例。
上边这些资源,在PCS里创建好以后,将其组合成一个单独的资源组,形成一个不可分割的整体。
1)PCS添加Oracle监听器资源
Oracle 的VIP资源在前边已经添加,那么接下来就从第2项监听器开始。为了方便安排各资源的启动顺序,可以先勾选已经存在的资源“db_vip”创建资源组“db_grp”,然后再创建监听器。
创建资源Oracle监听器比较关键的地方在于“sid”、“Optional Arguments”的“home”、”tns_admin”几个手动输入的地方,一定要跟Oracle的实际情况相一致,比如“tns_admin”,就必须完整填写文件“tnsname.ora”所在目录的全路径“/u01/app/oracle/product/19.3/db_01/network/admin”
,如图6-62所示。
图6- 62
2)PCS添加逻辑卷LVM资源
PCS Web管理后台添加资源LVM,“Type”选“LVM”,确认资源启动顺序,“volgrpname”的可在主机执行“vgscan”取得,选项中的“exclusive(排它)”将其修改成“true”,然后单击按钮“Create Resource”创建这个资源,如图6-63所示。
图6- 63
如果创建完资源LVM页面报错,提示“fail”,详细的报错可能为“The volume_list filter must be initialized in lvm.conf for exclusive activation without clvmd”(如图6-64)。
图6- 64
解决这个问题的办法是修改系统文件”/etc/lvm/lvm.conf”,找到被注释掉、以“volume_list”开头的行,将注释打开,将除ISCSI共享的逻辑卷组以外的填写到方括号内。作者的系统存在两个卷组,系统卷组为“centos”,因此修改后的文本行如下:
volume_list = [ “centos” ] |
两台主机都要,修改完毕,再在两台主机命令行下执行指令“dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)”,无需重启系统即可解决问题。一旦LVM资源创建成功,分别在两个主机的命令行运行“lvscan”,可验证创建过程中“exlusive”设定为“true”所起到的作用。因为“lvscan”执行后,某个主机的ISCSI共享逻辑卷的状态为“ACTIVE”,那么另一个主机对应的逻辑卷状态一定是“inactive”。
3)创建文件系统资源
创建过程中,三个必填参数“device”从主机执行“lvscan”输出直接复制,挂节点“directory”所填写的目录如果不存在于主机系统,也没有关系,单击按钮“Create Resource”后会在系统自动创建,如图6-65所示。
图6- 65
5)创建Oracle实例资源
登录运行资源组“db_grp”的主机系统(PCS Web管理后台或者系统命令行执行“pcs status”可确定该资源组所运行的主机),以“oracle”账号运行命令运行“dbca”,弹出图形方式的配置界面,单选“Create a database”后,鼠标单击按钮“Next”进行第2步,如图6-66所示。
图6- 66
在配置过程的第2步,数据库文件的存储位置与快闪区不要使用默认值,需要手动修改成ISCSI共享存储的挂节点“/oradata”,全局数据库名称设置成跟Oracle环境变量指定的“ORACLE_SID”相一致,然后单击“Next”进行第3步,如图6-67所示。
图6- 67
如果不存在意外,第3步为信息汇总窗口,单击按钮“Finish”开始正式创建Oracle数据库实例,如图6-68所示。
图6- 68
Oracle数据库实例创建完毕以后,不要手动去启动该实例,余下的事情交给PCS来处理。
切换到PCS Web管理后台,添加“oracle”实例这个资源。参数值、选项值必须与Oracle设定的环境变量相一致,鼠标单击“Create Resource”开始创建,如图6-69所示。
图6- 69
到此为止,与Oracle相关的资源已经全部添加到PCS的资源组“db_grp”,Oracle实例会被PCS自动拉起进行启动。在资源组“db_grp”所在的主机,存在许多以“ora_”开头的进程(如图6-70),说明Oracle实例已经被PCS所管控而无需人工干预实例的启动和停止。
图6- 70