前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用shell脚本得到MySQL实例列表

使用shell脚本得到MySQL实例列表

作者头像
jeanron100
发布2018-07-26 15:18:20
9790
发布2018-07-26 15:18:20
举报

之前从主机,实例,业务,集群几个维度来完善了运维平台的元数据信息,把流程贯穿起来,也确实看到了一些好处,但是有一个点很重要,也是我们容易忽略的:有些元数据我们也无法确认是不是完整,准确。大体有三个维度:

1)目前系统中遗漏的实例信息

2)目前系统中错误的实例信息

3)目前系统中已经过期的信息(比如系统下线,但是元数据没有及时变更)

因为数据是收上来了,但是到底差了多少,目前来说还无法判断。

所以意识到这个问题之后,我们需要一些行动来完善。一种方式是全量的扫描,然后全量刷新,这样我们就知道哪些信息做了刷新,优点是思路很清晰,做没做一目了然,但是缺点也很明显,有些控制过度;另外一种方式是全量扫描,增量刷新,即刷新那些确实变化的,那么一个哲学问题就出来了,我们怎么知道扫描抓取的信息和原来的不一样,这个问题先放一下,留在以后说。

所以主动抓取的方式不是很优雅,而且对业务的依赖和侵入性较高,打个比方你去租房子,假如中介反复来问你,要不要租房子,你肯定也会烦,但是如果你明确了你需要租房子的需求,再去找中介,这个事情的效率和价值就会是指数级的提升。元数据的信息维护也是类似的道理,比较优雅的方式是通过客户端主动推送,或者通过流程的方式来做数据流转。不应该是系统来反向主动抓取,一来有延迟,二来效率也不高。

如果在初期的时候,很多不完善不规范,或者确实实施有潜在痛点的情况下,这个事情可以先做,意义就是我们保证我们收集的信息是完整,准确的,我们先做好了,保证业务线能用起来,之后可以再来要求其他人来配合和支持。

我相信这个事情认真做起来,会有很多的意外收获。

所以目前的一个需求就会是先收集目前服务器上已有的数据库实例,和已有的元数据做比对。

有几个问题就会马上呈现出来,一个是因为历史原因,有些数据库实例的socket文件路径不规范,还有不少服务器有单机多实例的情况。所以假设我们拿到了一个服务器列表是100台服务器,那么数据库实例可能是150或者200以上。

要做梳理,我们就需要明确实例的基本信息,所以我写了一个初步的脚本,从进程的描述信息中抓取实例的信息,然后过滤得到需要的一些属性,比如端口和socket配置。有了这些信息,就可以尝试遍历一个列表文件来逐个比对了。

脚本内容如下:

ps -ef|grep mysql |grep -w mysqld|grep -v grep > mysqllist_ps.tmp

awk -F'--' '{for (i=2;i<=NF;i++) {printf $i" "}printf "\n"}' mysqllist_ps.tmp > mysqllist.lst

while read line

do

array=$line

port_str='port='

socket_str='socket='

for arr_tmp in ${array[*]}; do

if [[ $arr_tmp =~ $port_str ]];then

port_tmp=`echo $arr_tmp|sed 's/port=//g'`

fi

if [[ $arr_tmp =~ $socket_str ]];then

socket_tmp=`echo $arr_tmp|sed 's/socket=//g'`

fi

done

if [ -z "$port_tmp" ];then

port_tmp=3306

fi

echo $port_tmp $socket_tmp

done < mysqllist.lst

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档