shell脚本监控数据库状态并自启

需求:
1、每隔2秒检查一次数据库实例状态和监听状态
2、如果发现数据库实例或者监听down,那么自己启动

适用于oracle 12c以下、 linux bash shell

#!/bin/bash

dbstart()
{
sqlplus -S / as sysdba>/dev/null<<EOF
set echo off feedback off heading off;
startup;
exit;
EOF
}

while true
do
dbstatus=`
sqlplus -S / as sysdba<<EOF|grep -v "^$"
set echo off feedback off heading off;
select status from v\\$instance;
exit;
EOF`


if [[ $dbstatus == "OPEN" ]];then
echo "db open      " `date` >>check.log
else
echo "db shutdown  " `date`>>check.log
dbstart;
fi

if ps -ef|grep tnslsnr|grep -v grep>/dev/null;then
echo "listener ok  " `date`>>check.log
else
echo "listener down" `date`>>check.log
lsnrctl start>/dev/null
fi

echo "##################################">>check.log
sleep 2;
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值