我们知道在某些停机测试场景, 是需要人为禁用 crs/has 的自启动的, 防止过程中主机反复重启对数据库集群造成影响.
使用 crsctl disable/enable crs 命令可以禁用 / 启用 crs 的自启动, 但没有命令去查看当前自启动状态, 虽然命令可以反复执行, 但看不到实际状态总归还是让人不放心.
我在 Linux 测试环境下试了几个 Oracle RAC 版本:
- Oracle RAC 10.2.0.5
- Oracle RAC 11.2.0.4
- Oracle RAC 12.1.0.2
发现对于 Oracle RAC 10.2.0.5 来说:
使用 root 用户 crsctl disable/enable crs 时, 改变的是这个文件的值:
- --10.2.0.5
- [root@rac1-server ~]# /s01/oracle/product/10.2.0/crs_1/bin/crsctl disable crs
- [root@rac1-server ~]# more /etc/oracle/scls_scr/rac1-server/root/crsstart
- disable
- [root@rac1-server ~]# /s01/oracle/product/10.2.0/crs_1/bin/crsctl enable crs
- [root@rac1-server ~]# more /etc/oracle/scls_scr/rac1-server/root/crsstart
- enable
对于 Oracle RAC 11.2.0.4 和 Oracle RAC 12.1.0.2 来说:
使用 root 用户 crsctl disable/enable crs 时, 改变的是这个文件的值:
- --11.2.0.4
- [root@db01 ~]# /opt/App/11.2.0/grid/bin/crsctl disable crs
- CRS-4621: Oracle High Availability Services autostart is disabled.
- [root@db01 ~]# more /etc/oracle/scls_scr/db01/root/ohasdstr
- disable
- [root@db01 ~]# /opt/App/11.2.0/grid/bin/crsctl enable crs
- CRS-4622: Oracle High Availability Services autostart is enabled.
- [root@db01 ~]# more /etc/oracle/scls_scr/db01/root/ohasdstr
- enable
- --12.1.0.2
- [root@oemapp1 ~]# /App/12.1.0.2/grid/bin/crsctl disable crs
- CRS-4621: Oracle High Availability Services autostart is disabled.
- [root@oemapp1 ~]# more /etc/oracle/scls_scr/oemapp1/root/ohasdstr
- disable
- [root@oemapp1 ~]# /App/12.1.0.2/grid/bin/crsctl enable crs
- CRS-4622: Oracle High Availability Services autostart is enabled.
- [root@oemapp1 ~]# more /etc/oracle/scls_scr/oemapp1/root/ohasdstr
- enable
基本上可以认定是 10.2.0.5 版本, 都是去对应 crsstart 这个文件的值. 11.2.0.4 和 12.1.0.2 版本都是去对应 ohasdstr 这个文件值.
对于主流的小机环境:
对于 AIX 系统, 跟 Linux 的配置文件路径没有区别;
而对于 SUN Solaris 和 HP-UX, 需要注意配置文件的路径有所区别 (/etc/oracle/.. -> /var/opt/oracle/..):
- --10.2.0.5
- /var/opt/oracle/scls_scr/$hostname/root/crsstart
- --11.2.0.4
- /var/opt/oracle/scls_scr/$hostname/root/ohasdstr
相关案例:
最近某客户 AIX 的一套 10g RAC, 现场运维 DBA 反映说是之前主机重启, crs 不会自启动, 每次都需要人工启动 crs. 但协助排查发现其配置文件 crsstart 的值已经是 enable, 且查到该配置文件的修改日期在 7 年前. 说明配置是自启动的, 而且 7 年没有人动过这个配置, 比较诡异, 最终是让其尝试 disable 再 enable 的方式, 同时观察到配置文件的修改日期也会正常变, 且在后续一次主机重启的维护中发现 crs 已经可以正常自启动. 目前还无法解释为何之前无法自启动, 先记录下这个现象.
来源: https://www.cnblogs.com/jyzhao/p/10009473.html