mysql数据对比工具
导读:笔者最近在采用 trino 代替旧有方案进行媒体接口数据拉取。需通过将 trino 拉取的数据入到测试库,并与旧方案拉取到生产库中的数据进行对比从而验证逻辑准确性。在进行数据对比时为提高效率因此...
2024.11.15前面已经介绍了监控端部署slowquery工具部分,今天主要介绍被监控端的部署方面内容。
一、脚本定时推送慢查询日志1、脚本内容
进入到slowquery/client_agent_script目录下,把slowquery_analysis.sh脚本拷贝到生产MySQL主库上做慢日志分析推送,脚本如下:
#!/bin/bash#改成你的运维管理机MySQL地址(用户权限最好是管理员)slowquery_db_host="xx.xx.xx.94"slowquery_db_port="3306"slowquery_db_user="slowquery"slowquery_db_password="xxxx"slowquery_db_database="slowquery" #改成你的生产MySQL主库地址(用户权限最好是管理员)mysql_client="/usr/local/mysql/bin/mysql"mysql_host="xx.xx.xx.69"mysql_port="3306"mysql_user="slowquery"mysql_password="xxxx" #改成你的生产MySQL主库慢查询目录和慢查询执行时间(单位秒)slowquery_dir="/data/log/"slowquery_long_time=2slowquery_file=`mysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "show variables like ‘slow_query_log_file‘"|grep log|awk ‘{print $2}‘` pt_query_digest="pt-query-digest" #改成你的生产MySQL主库server_idmysql_server_id=1 #collect mysql slowquery log into slowquery database$pt_query_digest --user=$slowquery_db_user --password=$slowquery_db_password --port=$slowquery_db_port --review h=$slowquery_db_host,D=$slowquery_db_database,t=mysql_slow_query_review --history h=$slowquery_db_host,D=$slowquery_db_database,t=mysql_slow_query_review_history --no-report --limit=100% --filter=" \$event->{add_column} = length(\$event->{arg}) and \$event->{serverid}=$mysql_server_id " $slowquery_file > /tmp/slowquery_analysis.log ##### set a new slow query log ###########tmp_log=`mysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "select concat(‘$slowquery_dir‘,‘slowquery_‘,date_format(now(),‘%Y%m%d%H‘),‘.log‘);"|grep log|sed -n -e ‘2p‘` #config mysql slowquerymysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "set global slow_query_log=1;set global long_query_time=$slowquery_long_time;"mysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "set global slow_query_log_file = ‘$tmp_log‘; " #delete log before 7 dayscd $slowquery_dirfind ./ -name ‘slowquery_*‘ -mtime +7|xargs rm -f ;####END####ps:常见报错:
Pipeline process 5 (iteration) caused an error: DBD::mysql::st execute failed: Data truncated for column ‘checksum‘ at row 1 [for Statement " insert INTO `slowquery`.`mysql_slow_query_review`Terminating pipeline because process 4 (iteration) caused too many errors.解决:
mysql> alter table mysql_slow_query_review modify checksum varchar(100) not null ;mysql> alter table mysql_slow_query_review_history modify checksum varchar(100) not null;mysql> alter table mysql_slow_query_review_history modify serverid_max smallint(4) null;2、设置定时任务(10分钟一次)
*/10 * * * * /bin/bash /home/scripts/slowquery_analysis.sh > /dev/null 2>&1二、访问慢查询界面1、启动httpd
systemct restart httpd2、访问
地址:http://服务器IP/slowquery/slowquery.php
到这里我们就可以通过web页面来看有哪些慢sql了,但是我们不可能时时去看着这个界面,所以我们还得配置一下告警推送,后面会再介绍下告警方面的配置,感兴趣的朋友可以关注下~
导读:笔者最近在采用 trino 代替旧有方案进行媒体接口数据拉取。需通过将 trino 拉取的数据入到测试库,并与旧方案拉取到生产库中的数据进行对比从而验证逻辑准确性。在进行数据对比时为提高效率因此...
2024.11.15前言MySQL 数据库最常见的两个瓶颈是CPU和I/O的瓶颈。CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候,磁盘I/O瓶颈发生在装入数据远大于内存容量的时候。MySQL数据库性能遇到...
2024.11.15Prometheus 监控Mysql服务器及Grafana可视化1、安装mysql服务2、配置mysql主从服务3、安装mysql_exporter节点收集数据4、配置promethus采集mysql...
2024.11.14千里之堤,溃于蚁穴。一个在完美的架构,因为一个慢Sql,会导致系统直接崩溃。总结了一些解决慢sql的方法,供参考。一、慢sql优化订阅每日慢日志,优先解决调用次数多的慢sql,因慢sql优化的知识点非...
2024.11.15简介需要注意的是,配置之后,每次启动都会执行一遍sql文件。但一般要求只执行一次。所以在sql语句中,处理好如果已存在的处理方式。如建表语句中加入:if not exist 判断建表。1、文件目录2、...
2024.11.14