自动检查oracle数据库是否正常运行
检查oracle数据库是否正常运行利用操作系统命令,检查oracle数据库是否正常运行Linux + oracle + shell + crontab处理逻辑,通过shell连接数据库,若能输出对应的结果,表示数据库运行正常,脚本可以在服务器或客户端中设置A. 创建instance_check_sql.sql文件,运行后会生成checklist.txt文件B. 创建oracle_conn...
检查oracle数据库是否正常运行
利用操作系统命令,检查oracle数据库是否正常运行
Linux + oracle + shell + crontab
0. 如果直接复制我的代码,请注意以下几个地方
A . 环境变量,有些地方要去掉空格
B . Sed后面有`符号 ,Hostname前后有符号
因为CSDN不让直接编辑,对于小菜,应该注意这2点
处理逻辑,通过shell连接数据库,若能输出对应的结果,表示数据库运行正常,脚本可以在服务器或客户端中设置
A. 创建instance_check_sql.sql文件,运行后会生成checklist.txt文件
B. 创建oracle_connect_check.sh文件,利用crontab去呼叫这个shell,oracle_connect_check.sh会调用instance_check_sql.sql文件
C. 创建oracle_instance_check.sh文件,查看instance_check_sql.sql是否正常输出,可以把oracle_instance_check.sh合并到oracle_connect_check.sh文件后面
1. 在linux系统中,先创建文件夹
mkdir -p /root/zenglingxin/oracle
cd /root/zenglingxin/oracle
2. 使用touch命令,在/root/zenglingxin/oracle文件下,创建instance_check_sql.sql文件
使用vim打开instance_check_sql.sql文件,插入如下代码
spool /root/zenglingxin/oracle/checklist.txt
set echo on
select 1000000008 from dual;
spool off;
exit
3. 使用touch命令,在/root/zenglingxin/oracle文件下,创建oracle_connect_check.sh文件
使用vim打开oracle_connect_check.sh文件,插入如下代码
#!/bin/bash
#zenglingxin
zlxora=/root/zenglingxin/oracle
export ORACLE_BASE=/oracle
export ORACLE_HOME= $ ORACLE_BASE/product/12.2.0/dbhome
export ORACLE_SID=BESTERP
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH= $ ORACLE_HOME/bin: $ PATH
echo> $ zlxora/checklist.txt
sqlplus connecttest/“a1b2.123”@orcl @$zlxora/instance_check_sql.sql
4. 使用touch命令,在/root/zenglingxin/oracle文件下,创建oracle_instance_check.sh文件
使用vim打开oracle_instance_check.sh文件,插入如下代码
#!/bin/bash
#zenglingxin
zlxmail=/root/zenglingxin/mail
sleep 25
ps auxf | grep -v grep|grep “oracle_connect_check.sh” | awk ‘{print $2}’ | xargs kill -9
dualsize=``sed -n ‘5,5p’ /root/zenglingxin/oracle/checklist.txt `
checksize=1000000008
if [ $dualsize -eq $checksize ]
then
echo “good job”
else
source $zlxmail/mail_check_oracle_instance.sh
fi
这里的代码解释
sleep,这个是要加的,如果不加休眠时间,crontab有可能会先0.01秒运行完oracle_instance_check.sh,而不是先运行完oracle_connect_check.sh
kill -9,这个是有必要的,如果不加,等到数据库连接不上时,crontab任务不会结束,一直死在那里
sed -n,截取checklist.txt中的第5行值
if,判断checklist.txt中的第5行值是否为1000000008
5. 在数据中创建connecttest用户,密码为a1b2.123,给与connect权限
6. 使用touch命令,在/root/zenglingxin/mail文件下,创建mail_check_oracle_instance.sh
先创建文件夹/root/zenglingxin/mail
mkdir -p /root/zenglingxin/mail
使用vim打开mail_check_oracle_instance.sh文件,插入如下代码
#!/bin/bash
#zenglingxin
echo "Dears
输入你警告信息
谢谢
来自机器人的自动检查
“|mail -s "hostname
无法连接数据库” m13632593273@163.com
7. 设置邮件发送功能,请看下一个篇
8. 设置crontab任务
*/5 * * * * /root/zenglingxin/oracle/oracle_connect_check.sh
*/5 * * * * /root/zenglingxin/oracle/oracle_instance_check.sh
每5分钟检查一次
9. 修改创建的文件为可执行文件
cd /root/zenglingxin
chmod +x -R *
更多推荐
所有评论(0)