数据库agent

来源:这里教程网 时间:2026-03-01 16:22:20 作者:

其实这个已经没什么好说的了,一般的数据库管理都有agent,每个人有每个人的需求,可能做的也都不太一样。这个东西面试时候也没什么好问的吧,也不是纯小白,稍微管理过一些数据库的都有这个需求,只不过集群量大小问题,大的集群可能会有些特殊需求

我的观点是一切涉及数据库的手工操作,都通过agent执行,dba不直接操作数据库,所有外围其他系统,都是通过调用接口通过agent操作数据库,所以agent应该是all in one的东西,所有的运维脚本,监控分析脚本全部整合到agent中,尽可能的整合,不存在其他单独的脚本。

工单的执行和高可用是相对独立的系统,目前还没法统一走agent。

我的agent功能:

1 配置文件中设置数据库类型,连接信息。

     todo 现在的数据库信息是写在文件中,应该修改成自动发现的方式,不需要配置,链接信息密码的安全性需要更改。

2 收集数据库的信息

    上传实例信息,参数设置,状态,主从关系等,表大小信息,磁盘使用信息 ,数据库大小,表大小,分区表信息,没有主键的表,非innodb表,集群拓扑等,当然你的大事务监控,锁等待告警,对比实例参数与文件参数区别。现在的任务分类只分了,频繁执行和非频繁执行任务,结果上传可以上传到接口或保存到数据库中。

 后续改进,服务侧设置每个收集任务的策略,可以设置收集或停止收集,设置每个任务的上传方式

3 os 信息收集

 是否开启swap ,raid卡信息,fs 文件系统信息,numa设置,os脏页设置

4 数据库实例的操作,提供对应的接口

    实例的安装,启动,停止,升级,清理,复制启停,查看复制状态,设置主从关系,获取版本信息,清理日志,查看error log,等所有的日常运维命令,都可以通过接口进行远程执行。

5 限制资源使用,cpu使用,内存使用。

 限制agent资源使用,目前主要是cpu,memory使用限制,可以方便添加其他限制。

6备份恢复

 后端设置备份策略,agent获取备份策略,开始本地执行备份任务,以及自动恢复实例任务

7监控告警的部署

定期检测告警是否设置,工作是否正常,对于新的实例,在创建后,自动添加监控告警agent。

8binlog relaylog 获取到本地进行解析处理

服务端功能:

1 根据agent上传的内容,进行统计告警,参数设置,集群拓扑结构等

2 设置备份策略,信息收集上传策略

3 调用agent接口,操作agent

4 维护cmdb表结构信息。

5 集群的安装部署,通过接口的方式调用实例的创建,复制关系的设置

agent封装的操作

The commands are listed below.
  install <role>
  start
  shutdown
  upgrade
  version
  startslave
  stopslave
  stopio
  stopsql
  startio
  startsql
  restartslave
  isreadonly
  setreadonly
  setwriteble
  showslavestatus
  showmasterstatus
  kill <id>
  backup
  backuptables <tables>
  flushlogs
  purgelogs <toLog>
  waitutil <targetgtid>
  setreplpos <pos>
  changemaster <master>,<port>
  delayrepl <seconds>
  filterrepl <replicationdb>
  removefilter <>
  utilsqlafter <targetgtid>
  showblock
  showprocesslist
  showbigtrx
  showmaster
  showslaves
  showmasterstatus
  showerror
  showrole
  showvar <pattern>
  setvar <name>,<value>
  comparevar
  showlogs
  showos
  showerrant
  showdbs
  showusers
  showgrant <user>
  createdb <dbname>,<rw_net>,<ro_net><owner><product>
  dropdb <dbname>
  grant <user>,<db>,<privileges>,<nets>
  parsebinlog <logfile>,<startTime>,<endTime>
  execute <sqlfile>
  skipgtid <gtid>
  initos
  search

相关推荐