MySQL运维实战(二)之 巧用P_S解决账号host访问的荣耀王者之路

背景

  • 一个MySQL实例中,如何验证一个账号上面是否还有访问?
  • 一个MySQL实例中,如何验证某个业务ip是否还有访问?

倔强青铜级别

  • 打开general log
优点: 全量
缺点: 性能差

秩序白银级别

  • 打开slow log,设置long_query_time = 0
优点: 全量
缺点: 性能比较差

荣耀黄金级别

  • tshark | tcpdump | tcpcopy
tshark -i any dst host ${ip} and dst port 3306 -l -d tcp.port==3306,mysql -T fields -e frame.time -e 'ip.src'  -e 'mysql.query' -e 'mysql.user' -e 'mysql.schema'

优点:全量*95%
缺点:性能比较差,使用不方便

尊贵铂金级别

  • 使用P_S
* 使用案例

dba:performance_schema> select USER,EVENT_NAME,COUNT_STAR,now() as time from events_statements_summary_by_user_by_event_name where EVENT_NAME in ('statement/sql/select','statement/sql/update','statement/sql/delete','statement/sql/insert','statement/sql/replace') and COUNT_STAR > 0;
+------+----------------------+------------+---------------------+
| USER | EVENT_NAME           | COUNT_STAR | time                |
+------+----------------------+------------+---------------------+
| dba  | statement/sql/select |        143 | 2017-09-04 18:02:33 |
| repl | statement/sql/select |         10 | 2017-09-04 18:02:33 |
+------+----------------------+------------+---------------------+
2 rows in set (0.00 sec)

dba:performance_schema> select HOST,EVENT_NAME,COUNT_STAR,now() as time from events_statements_summary_by_host_by_event_name where EVENT_NAME in ('statement/sql/select','statement/sql/update','statement/sql/delete','statement/sql/insert','statement/sql/replace') and COUNT_STAR > 0;
+-----------+----------------------+------------+---------------------+
| HOST      | EVENT_NAME           | COUNT_STAR | time                |
+-----------+----------------------+------------+---------------------+
| localhost | statement/sql/select |         22 | 2017-09-04 18:02:35 |
+-----------+----------------------+------------+---------------------+
1 row in set (0.00 sec)

  • 对比
优点:全量,性能基本无影响
缺点:无法抓到对应的SQL

永恒钻石级别

  • 巧用P_S
将每1分钟,5分钟,10分钟的P_S快照映射到对应的table,永久存下来,进行统计分析

优点:全量,性能基本无影响,且时间更加细粒度化
缺点:无法抓到对应的SQL,需要额外开发成本

最强王者

  • 巧用P_S + tshark
1. P_S分段,找到具体有访问的时间段 $time
2. 在$time时间段内,去用tshark 抓取SQL相关info

时间: 2024-11-03 05:39:55

MySQL运维实战(二)之 巧用P_S解决账号host访问的荣耀王者之路的相关文章

MySQL运维实战(一)之 系统变量潜规则

Agenda 踩坑经历 测试用例 结论 实战用途 一.踩坑经历 设置了slow log 的时间,但是抓不到正确的sql 设置了read_only ,为啥还有写入进来 设置了sql_safe_update , 为啥还能全表删除 测试方法的不对,导致设置了read_only后,有的时候可以insert,有的时候不可以insert 太多这样的问题, 所以打算一窥究竟 二.测试用例 测试设置参数后,是否会生效 2.1 官方文档说明 https://dev.mysql.com/doc/refman/5.7

《Splunk智能运维实战》——2.3 找出最常访问的网页

2.3 找出最常访问的网页 在第1章导入的数据样本中,其中一个包含了Web服务器的访问日志.这些日志的源类型为access_combined,并且详述了Web应用程序的用户访问的所有页面.我们特别感兴趣哪个页面的浏览次数最多,以便我们了解电子商务Web应用程序的使用情况.它也能帮助我们改进Web应用程序,比如将访问量很少的网页移除,或者重新设计应用程序,使之更高效. 本节将编写一个Splunk搜索语句,来找到给定时间内最常访问的网页. 做好准备 本节操作需运行Splunk Enterprise服

mysql运维之二进制日志。(east_sun原创参考文档centos 7)

mysql运维之二进制日志.(east_sun参考文档centos 7) 1.二进制日志开启 服务器的二进制日志(binary log简称binlog)是备份的最重要因素之一,它们对于基于时间点的恢复操作是必要的,并且通常比数据要小,所以更容易进行频繁的备份.MySQL 二进制日志是非常重要的,所以DBA们应该尽可能将二进制日志和数据库文件分开存储. 二进制日志主要作用有三个:1.基于备份恢复数据 2.数据库主从复制3.挖掘分析SQL语句. 首先我们需要知道如何开启二进制日志.在centos 7

MySQL运维案例分析:Binlog中的时间戳

背景 众所周知,在Binlog文件中,经常会看到关于事件的时间属性,出现的方式都是如下这样的. #161213 10:11:35 server id 11766 end_log_pos 263690453 CRC32 0xbee3aaf5 Xid = 83631678 我们清楚地知道,161213 10:11:35表示的就是时间值,但除此之外呢?还能知道它的什么信息呢? 案例分析 先从一个典型的案例入手来讲述其中的细节,比如曾经在Galera Cluster碰到的一个问题,可以先看一段Binlo

OpenStack 部署运维实战

OpenStack 部署运维实战 OpenStack 简介 OpenStack 是一个开源的 IaaS 实现,它由一些相互关联的子项目组成,主要包括计算.存储.网络.由于以 Apache 协议发布,自 2010 年项目成立以来,超过 200 个公司加入了 OpenStack 项目,其中包括 AT&T.AMD.Cisco.Dell.IBM.Intel.Red Hat 等.目前参与 OpenStack 项目的开发人员有 17,000+,来自 139 个国家,这一数字还在不断增长中. OpenStac

Elasticsearch hadoop使用示例 & 运维实战之集群规划 &presto-elasticsearch connector

elasticsearch-hadoop使用示例 在elasticsearch-hadoop的具体使用中碰到了几个问题,有必要记录一下,避免下次遇到时又要重新研究. 利用spark读取es数据源的简单示例 import org.elasticsearch.spark.sql._ val esOptions = Map("es.nodes"->"192.168.1.2,192.168.1.3", "es.scroll.size"->&q

《Splunk智能运维实战》——导读

前 言 在这个以科技为中心的世界里,各式各样的机器产生了大量的数据.Splunk因此推出了业内领先的大数据智能运维平台--Splunk Enterprise.这个强大的平台能让用户将机器数据转化为可操作的.非常重要的运维智能. 本书融合了各种实用方法,旨在提供指导和实用知识,以便使读者掌握Splunk Enterprise 6的各种功能,从数据中提取出强大而重要的运维智能. 本书通过简单易学.循序渐进的操作技巧,教授读者如何有效地收集.分析并创建所在环境的运营数据报表.这些技巧将展示如何加快智能

网易OpenStack部署运维实战

OpenStack自 2010 年项目成立以来,已经有超过 200 个公司加入了 OpenStack 项目,目前参与 OpenStack 项目的开发人员有 17,000+,而且这些数字还在增加,作为一个开源的IaaS实现,目前在企业的应用越来越普遍,网易公司私有云团队分享了他们在基于OpenStack 开发的一套云计算管理平台的实战经验,期待和广大的OpenStack 使用者进行交流. 本文为您介绍了网易公司基于 OpenStack 开发的一套云计算管理平台,以及在开发.运营.维护过程中遇到的问

美图秀秀DBA谈MySQL运维及优化

随着MySQL应用的不断普及和自身发展,如何更好的优化MySQL和使用MySQL,依然是一个比较有挑战的问题,尤其是在业务快速增长的场景下.本次分享主要介绍一些通用的运维优化实践和问题,以及未来的一些方向.  目录 MySQL的优势和劣势 数据库规范化 Sharding拆分 数据库备份 性能优化 从每个月的db engines排名可以看到,关系数据库依然占主导地位,nosql的种类和可选择空间更大,总共283种数据库,里面大多数也是NoSQL. 如何选择数据库,从以下几个因素考虑: 应用场景:O