急救 listener 掉

[复制链接]
查看11 | 回复7 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
有TNS-12505和12514 错误
如果有可能 根据 如下需求写一段SHELL 脚本
需求如下
Unix上的监听挂死问题永远都不应该被扩大化---特别是如果这种挂死只是间歇的。实际上,当我们每次遇到监听挂死的时候,必须首先想到的是重新启动监听(这将终止当前连接正在做的动作)。所有我们必须做的是,定制一个job,自动重新启动监听。可以在CRON里定制一个job,每1-2秒tnsping一下监听,测试监听的有效性,在必要的时候重新启动监听。这种job几乎不占用CPU资源。这种算法的伪代码如下:

tnsping listener
if return code isthen
do nothing and tnsping the listener later.
else
do a PS and grep for tnslsnr PID
kill -9 listener_pid
lsnrctl start
resume cron job
end.
上面 是假的 代码写个SHELL脚本
针对aix 4.3
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
有問題嗎?照寫一個不就行了?你哪裡不懂得寫?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
shell 不会写 需要一个直接在AIX上能运行的脚本谢谢各位了
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
一點都不會嗎?可以看看shell的基礎知識啊。
我公司有一個,但是你是要修改的。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
现在急需用客户催的太紧了
谢谢 oracle-plus 兄弟
可以发到我的邮箱里
[email protected]
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
. $HOME/orashell
if [ -f /oracleplus/lsncheck.lst ]; then
rm /oracleplus/lsncheck.lst;
fi
echo checking listener start time : `date` > /oracleplus/lsncheck.lst
`tnsping $oraplus | grep OK >> /oracleplus/lsncheck.lst &`
#其中,上面的$oraplus需要你定義自己的聯接串。
sleep 3
test `cut -c1,2 /oracleplus/lsncheck.lst | grep OK`
if (($? != 0)); then
pid=`ps -ef | grep -v grep | grep tnslsnr | awk '{print $2}'`
if [ "X$pid" != "X" ]; then
if kill $pid; then
echo kill tnslsnr successfully !!
else
echo kill tnslsnr failed !!
fi
fi
lsnrctl start
else
echo listener is OK !!
fi
exit

不過這個是在unix上的腳本。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
谢谢 oracle-plus 兄弟正是需要在 unix 下的
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
http://blog.itpub.net/post/13/14096
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行