mysql 5.7 mts_mysql5.7 中启用MTS后error log中大量Note日志分析

2ff34e647e2e3cdfd8dca593e17d9b0a.png

mysql5.7,启用基于logical_clock的多线程复制,发现error日志增长很快,查看日志发现大量关于多线程复制的Note级别日志。1

2

3

4

5

6

7

8

9

10

11

12

13

14

152018-07-03T03:22:01.638371+08:00 8941 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 298; events assigned = 3043329; worker queues filled over ove

rrun level = 0; waited due a Worker queue full = 0; waited due the total size = 0; waited at clock conflicts = 725810947700 waited (count) when Workers occupied = 5346 wait

ed when Workers occupied = 0

2018-07-03T03:24:22.589147+08:00 8941 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 141; events assigned = 3044353; worker queues filled over ove

rrun level = 0; waited due a Worker queue full = 0; waited due the total size = 0; waited at clock conflicts = 725810947700 waited (count) when Workers occupied = 5346 wait

ed when Workers occupied = 0

2018-07-03T03:27:00.554437+08:00 8941 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 158; events assigned = 3045377; worker queues filled over ove

rrun level = 0; waited due a Worker queue full = 0; waited due the total size = 0; waited at clock conflicts = 725818557700 waited (count) when Workers occupied = 5346 wait

ed when Workers occupied = 0

2018-07-03T03:32:00.079699+08:00 8941 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 300; events assigned = 3047425; worker queues filled over ove

rrun level = 0; waited due a Worker queue full = 0; waited due the total size = 0; waited at clock conflicts = 725846344900 waited (count) when Workers occupied = 5346 wait

ed when Workers occupied = 0

2018-07-03T03:34:04.567887+08:00 8941 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 124; events assigned = 3048449; worker queues filled over ove

rrun level = 0; waited due a Worker queue full = 0; waited due the total size = 0; waited at clock conflicts = 725852036800 waited (count) when Workers occupied = 5346 wait

ed when Workers occupied = 0

通过日期可以看到,日志的打印频率大概在3分钟左右。error log是mysql 出现问题时的重要分析日志,大量的note日志可能很快就把重要日志信息埋没,给分析日志信息带来了不便。而且日志量随时间递增,还必须有rotate机制,不然占用大量磁盘空间。那么这个日志的打印频率能不能调低一些呢?

我看了下源码这块的实现(rpl_slave.cc 4800)1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29*ptr_ev= NULL; // announcing the event is passed to w-worker

if (rli->is_parallel_exec() && rli->mts_events_assigned % 1024 == 1)

{

time_t my_now= my_time(0);

if ((my_now - rli->mts_last_online_stat) >=

mts_online_stat_period)

{

sql_print_information("Multi-threaded slave statistics%s: "

"seconds elapsed = %lu; "

"events assigned = %llu; "

"worker queues filled over overrun level = %lu; "

"waited due a Worker queue full = %lu; "

"waited due the total size = %lu; "

"waited at clock conflicts = %llu "

"waited (count) when Workers occupied = %lu "

"waited when Workers occupied = %llu",

rli->get_for_channel_str(),

static_cast

(my_now - rli->mts_last_online_stat),

rli->mts_events_assigned,

rli->mts_wq_overrun_cnt,

rli->mts_wq_overfill_cnt,

rli->wq_size_waits_cnt,

rli->mts_total_wait_overlap,

rli->mts_wq_no_underrun_cnt,

rli->mts_total_wait_worker_avail);

rli->mts_last_online_stat= my_now;

我们从两个if语句可以看到,这个信息的打印受三个条件的控制:rli->is_parallel_exec() 这是个inline函数,它判断是否在使用多线程复制

rli->mts_events_assigned % 1024 == 1 多线程执行的event个数刚刚超过1024个。也就是说按evnet个数来算,每隔1024个event打印一次。

最后还有个时间限制:(my_now - rli->mts_last_online_stat) >= mts_online_stat_period,距离上一次统计超过既定的间隔mts_online_stat_period。这个变量是60*2 ,代码里写死了。1

2

3

4/*

Statistics go to the error log every # of seconds when --log-warnings > 1

*/

const long mts_online_stat_period= 60 * 2;

由此可以判断,这个日志打印频率最少为2分钟,没法改了。但上面的代码注释中给了提示,当–log-warnings > 1时,这个统计间隔才生效,意味着可以通过修改日志打印级别来控制。

自mysql5.7.2,log-warnings被废弃,引用了新的变量log_error_verbosity。这个变量有三个值:1、2、3,默认是3. 他们的意义是:

1 – Errors Only

2 – Errors and warnings

3 – Errors, warnings, and notes

我们可以修改这个变量为2 ,不再打印Note信息。1set global log_error_verbosity=2;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js比较数字相等

示例代码&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8" /><title>js比较数字相等</title></head><body><script type"text/javascript">//设置误差范围值--机…

Nginx 怎么给一台服务器,配置两个域名?详细的解说+截图教程

一、 环境、条件准备 一台云服务器&#xff08;我的是腾讯的centos7&#xff09; 至少两个域名。&#xff08;我的是simuhunluo.xyz和simuhunluo.top。这两个域名之间没有任何关系&#xff0c;我是在阿里用两个账号分别注册的。&#xff09; 云服务器上面已经搭建了ngin…

怎样从frm ibd恢复mysql_怎样从frm,ibd恢复MYSQL

2015-07-01 回答method #1 – create work tables1. start up clean/fresh instance of mysql with innodb_file_per_table enabled.2. now, we need to find the table id that mysql is currently set at, as well as the table id for the table we need to recover.note:st…

extjs6 mvvm_ZK 6中的MVVM初探

extjs6 mvvmMVVM与MVC 在上一篇文章中&#xff0c;我们已经看到Ajax框架ZK如何采用CSS选择器启发的Controller来在View中连接UI组件并监听它们的事件。 在此ZK MVC模式下&#xff0c; View中的UI组件无需绑定到任何Controller方法或数据对象。 使用选择器模式作为将View状态和事…

多线程 调用 axis 报错_java笔记录(三、多线程)

1、进程和线程&#xff1a;进程&#xff1a;正在进行的程序。每一个进程执行都有一个执行顺序&#xff0c;该顺序是一个执行路径&#xff0c;或者叫一个控制单元。线程&#xff1a;进程内部的一条执行路径或者一个控制单元。两者的区别&#xff1a;一个进程至少有一个线程进程在…

使用PropertyPlaceholderConfigurer读取属性文件

1.简介 通常&#xff0c;当我们考虑将多个应用程序部署到生产环境之前在其中部署服务器时&#xff0c;可以在外部属性文件中配置特定于环境的参数 。 它可能是数据库详细信息&#xff0c;对于测试服务器和生产服务器而言&#xff0c;这是不同的。 因此最好选择将数据库配置文件…

第二天:Swift手势操控弹性按钮

参考链接:https://www.jianshu.com/p/f080ede0f3a8 1 import UIKit2 3 fileprivate let buttonH: CGFloat 2004 5 class ViewController: UIViewController, UIGestureRecognizerDelegate {6 7 IBOutlet weak var segmentControl: UISegmentedControl!8 var randomBtn…

asp获取mysql数据报错_ASP.NET在删除掉数据库文件后报错处理

在开发asp.net mvc程序时&#xff0c;默认时我们会使用LocalDB, 我们有时会以为删除掉App_Data目录就可以自动新建数据库&#xff0c;但是我们在网站重新启动后(进入Account)就会发现报如下错误&#xff1a;The ASP.NET Simple Membership database could not be initialized. …

按插入顺序排序的map

LinkedHashMap HashMap是无序的&#xff0c;HashMap在put的时候是根据key的hashcode进行hash然后放入对应的地方。所以在按照一定顺序put进HashMap中&#xff0c;然后遍历出HashMap的顺序跟put的顺序不同。单纯的HashMap是无法实现排序的。 区别&#xff1a; 1.HashMap里面存入…

lua excel to mysql_在Lua程序中使用MySQL的教程

http://www.jb51.net/article/66972.htmhttps://www.2cto.com/database/201501/372767.html常用sql语句&#xff1a;mysql -h localhost -u 用戶名 -p密碼 //連接數據庫use desk_show; //使用數據庫show tables; …

java实践_Java怪异实践

java实践总览 Java中有许多实践使我感到困惑。 这里只是一些。 使用-Xmx和-Xms 选项-Xmx广泛用于设置最大内存大小。 如Java HotSpot VM Options中所述&#xff0c;以-X开头的选项是非标准的&#xff08;不保证所有VM实施都支持该选项&#xff09;&#xff0c;并且在以后的JDK…

函数参数:

函数参数&#xff1a;一、位置参数:按顺序一一对应赋值 def stu(name,age,course,country) stu("刘老根",25,"linux","CN")二、关健参数&#xff1a;在实参中使用 号赋值&#xff08;可以不按顺序&#xff09; def stu(name,a…

mysql group by 重复_mysql – 使用GROUP BY删除重复项的查询

id_specific_price id_product-------------------------------1 22 23 24 35 36 37 3需要删除重复项,预期结果&#xff1a;id_specific_price id_product-------------------------------3 27 3SELECT *FROM ps_specific_priceWHERE id_specific_price NOT IN(SELECT MAX(id_s…

您的JAX-RS API并非天生就等于:使用动态功能

这次&#xff0c;我们将讨论一些有关JAX-RS 2.0 API的内容&#xff0c;并涉及该规范的一个非常有趣的方面&#xff1a; 动态功能以及它们的有用性。 传统上&#xff0c;当配置和部署JAX-RS 2.0 API&#xff08;使用Application类&#xff0c;从servlet引导或通过RuntimeDelega…

ionic2 安装与cordova打包

1.安装&#xff1a; cnpm install -g cordova ionic ionic start name cd name cnpm install 2、环境配置&#xff1a; http://www.cnblogs.com/changyaoself/p/6544082.html 这里是具体配置。 测试环境&#xff1a; cordova platform list 如下才可以&#xff1a; 3、添加…

mysql vacuum_PostgreSQL DBA快速入门(四) - 体系架构

PostgreSQL在开源关系型数据库市场是最先进的数据库。他的第一个版本在1989年发布&#xff0c;从那时开始&#xff0c;他得到了很多扩展。根据db-enginers上的排名情况&#xff0c;PostgreSQL目前在数据库领域排名第四。 本篇博客&#xff0c;我们来讨论一下PostgreSQL的内部架…

(ab)使用Java 8 FunctionalInterfaces作为本地方法

如果您使用Scala或Ceylon甚至JavaScript等更高级的语言进行编程&#xff0c;则“嵌套函数”或“本地函数”是您非常常见的习惯用法。 例如&#xff0c;您将编写诸如fibonacci函数之类的东西&#xff1a; def f() {def g() "a string!"g() "– says g" …

mysql的配置实现远程访问_MySQL 远程连接配置的正确实现 | 学步园

此文章主要向大家描述的是MySQL远程连接配置的实际操作步骤&#xff0c;以及在其实际操作中值得我们大家注意的相关事项的描述&#xff0c; 以下就是具体方案的描述&#xff0c;希望在你今后的学习中会有所帮助。MySQL远程配置GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED…

oracle 用户账户被锁处理

一、以管理员身份登录 SQL> conn sys/sys as sysdba; &#xff08;分号是必须的但是我是以system登录的所在这不应该写conn sys/sys as sysdba应该写conn system/orcl as sysdba;&#xff09;Connected. 二、解锁被锁用户SQL> alter user scott account unlock;User alte…

总结mysql的基础语法_mysql 基础sql语法总结 (二)DML

二、DML(增、删、改)1)插入数据第一种写法&#xff1a;INSERT INTO 表名 (列名1&#xff0c;列名2&#xff0c;&#xff0c;......)VALUES(列值1&#xff0c;列值2&#xff0c;......)第二种写法&#xff1a;INSERT INTO 表名 VALUES(列值1&#xff0c;列值2&#xff0c;......…