由于有项目说原来红旗HA 4.1上监控Oracle有问题,在进行大量数据备份或操作的时候,会自动发生切换,但这个时候Oracle是正常的。
考虑到原来的脚本一直使用的都是pid进程监控的方法,可能Oracle的部分进程出现问题后,并不会马上影响Oracle的服务,一段时间后他就自动恢复了。但这对于HA来说,觉得他已经出现问题了。
基于这样的故障,重新写了一下脚本:点击下载
脚本详细内容如下:
oraclemon/start.sh
因为exblog不能支持部分字符,请直接从这里下载后查看:
点击下载
引用到的另外两个文件(放在和start.sh同一个目录下)
runstatus.sh
whenever sqlerror exit sql.sqlcode;
connect $1/$2;
quit;
EOF
runplsql.sql
quit;
※附录
1、根据实际情况修改(以下都是在/rfha/scripts/oracle/目录下进行)
1)oracleexec/dbshut,关闭Oracle的脚本
2)oraclemon/start.sh文件注意的地方有:
ORACLE_PASSWD=”oracle” # SQL user passwd for monitor密码
ORACLE_OWNER=”oracle” # Oracle Owner
ORACLE_SID=”orcl” # Oracle SID
都修改完后,导入到系统中
如果没有关闭HA,脚本会在下次有问题的时候再生效。
2、监控顺序
讲解一下当前监控脚本的顺序
首先会监控进程中的pid,没有问题的话,继续。
如果进程的pid出现问题,则会去查找lsnr的状态,若没有问题,则会对Oracle登陆进行检查,都没有问题,再进行Oracle查询检查。都正常,则继续进行下去,不会进行切换。但如果其中一个出现问题(无论是lsnr、Oracle登陆、Oracle查询),则都会发生HA切换。
3、额外配置
1)如果觉得Oracle的查询太简单,可以修改/rfha/scripts/oracle/oraclemon/runplsql.sql,然后重新把配置导入系统。
2)如果不想实行lsnr、Oracle登陆、Oracle查询等监控,可以把
LISTENERCHECK=1
WRITEREADCHECK=1
其中的1设置为0
3)如果希望lsnr、Oracle登陆、Oracle查询全部都失效才发生切换的话,可以修改/rfha/scripts/oracle/oraclemon/start.sh中,
把除了最后一句”exit 2″外的,其他”exit 2″都改为”check=0″,即可。
[转]BASH for 循环小结
[转]Dash与Bash的语法区别
Oracle Database 10g R2/11g R2 Win/Linux 版本迅雷下载【中转】
Asianux 3.0 安装Oracle 11g R2界面失去响应的问题
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/114493.html