使用shell脚本检测数据库连接访问情况

简介:     最近要迁移几套环境,涉及的数据库有Oracle,MySQL,数量还不少,能够达到的目标就是整合后的服务器缩减幅度达到70%,这样一种迁移场景,就涉及到很多的网络连接情况,如果本身业务优先级高,涵盖的是全局业务,那么这个影响就会无限放大。
    最近要迁移几套环境,涉及的数据库有Oracle,MySQL,数量还不少,能够达到的目标就是整合后的服务器缩减幅度达到70%,这样一种迁移场景,就涉及到很多的网络连接情况,如果本身业务优先级高,涵盖的是全局业务,那么这个影响就会无限放大。所以对于网络连接情况的监控也尤为重要。
    其实对于这方面的内容,严格来说,DBA能够根据防火墙信息列表筛查到对应的应用服务器IP,然后交由负责的专人来负责跟进就可以了,但是这个时候因为重重原因,我要ipositive一些。这件事情就希望我能够有自己的信息,不至于到了后面,数据库迁移过去了,应用连不上去,然后大家再花一些时间来确认是之前就如此,还是因为修改不当导致。其实这种事情想想就挺闷的。
    那么我就positive一些,怎么样得到客户端的数据库连接情况呢,这个过程中就要重点关注数据库的连接情况,一种思路就是查看监听日志,另外一种思路就是抓取网络的访问情况。
我们两者结合一下,可以提前收集这些访问的信息。
简单想想,刷开膀子来干,脚本内容如下:
function get_conn_info
{
ORACLE_HOME=`cat /etc/oratab | tail -1 | awk -F: '{print 2}'`  DB_LISTEN_PORT=`grep -i PORTORACLE_HOME/network/admin/listener.ora|awk -F\( '{print $5}'|sed -e 's/PORT//g' -e 's/=//g' -e 's/)//g'`
for TMP_PORT in $DB_LISTEN_PORT
do
netstat -nalp|grep ESTABLISHED|awk '{print $5 "  " $4}'|grep $TMP_PORT|awk -F: '{print $4}'| sort|uniq|sed /^[[:space:]]*$/d|awk -v TMP_PORT=$TMP_PORT '{print $1" "TMP_PORT}'
done
}


get_conn_info  > conn_info.lst
while true
do
get_conn_info  > tmp_conn_info.lst
sdiff conn_info.lst tmp_conn_info.lst|grep \> |awk '{print $2" "$3}' >> diff.lst
sleep 60
done
我们从$ORACLE_HOME/network/admin下分析listener.ora,得到一个端口列表,比如1521,1522,1523等
然后拿着这些端口信息去和网络访问中的记录去做匹配,如果有匹配的记录,就记录下来,如果有新增的信息记录,就写入一个临时文件,把结果整合起来,这样得到的列表就是一个持续更新的IP信息列表,当然这个频率我根据目前的业务情况做了改变,很多连接都是长连接,有部分是短连接,所以我就把这个频率做了调整。目前是1分钟收集一次。
查看得到的连接信息列表,这样哪个端口访问的,哪台服务器都是一目了然。
$ less conn_info.lst
10.11.1.158 1522
10.11.128.169 1523
10.11.133.82 1523
10.11.2.140 1525
10.11.2.145 1526
目录
打赏
0
0
0
0
16
分享
相关文章
会议室管理系统源码(含数据库脚本)
会议室管理系统源码(含数据库脚本)
71 0
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
实现MySQL数据库的定时自动备份脚本。
拿走,不谢,这个脚本配方(指引)保证你的数据库数据像蛋糕店一样地天天更新,还能确保老旧的蛋糕(数据)不会堆积满仓库。这下可好,数据安全有保障,数据库管理员也能轻松一点,偶尔闲下来的时候,煮杯咖啡,看个剧岂不美哉?别忘了偶尔检查一下你的自动备份是否正常工作,以防万一蛋糕机器出了点小差错。
151 20
|
2月前
|
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
79 17
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
208 3
|
2月前
|
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
84 4
jsp CRM客户管理系统(含数据库脚本以及文档)
jsp CRM客户管理系统(含数据库脚本以及文档)
96 10
|
3月前
|
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
228 25
Java汽车租赁系统源码(含数据库脚本)
Java汽车租赁系统源码(含数据库脚本)
75 4

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问