mysql pos点是什么,MySQL 5.6 主从报错一例
原标题:MySQL 5.6 主从报错一例
作者:八怪(高鹏) 中亦科技数据库专家
1. 问题现象
版本:MySQL 5.6,采用传统 binlog file & pos 方式配置的主从复制结构。
实例重启后,主从复制报错如上图所示。
2. 错误含义
错误分为2部分。
第一部分
Client requested master to start replication from position > file size;
第一部分
这部分来源于主库的DUMP线程函数
mysql_binlog_send
->sender.run
->Binlog_sender::init
->Binlog_sender::check_start_file
if((file= open_binlog_file(&cache, m_linfo.log_file_name, &errmsg)) < 0)
{
set_fatal_error(errmsg);
return1;
}
size= my_b_filelength(&cache);
end_io_cache(&cache);
mysql_file_close(file, MYF(MY_WME));
if(m_start_pos > size)
{
set_fatal_error( "Client requested master to start replication from "
"position > file size");
return1;
}
关键就是m_start_pos和size两个值,其中m_start_pos来源于从库需要读取的位点。而size则是本binlog文件的大小,那么很容易理解如果io线程需要的pos点比本binlog文件的大小还要大,那么自然不对。
第二部分
这部分也来源于DUMP线程
mysql_binlog_send
->sender.run
->Binlog_sender::init
-> while(!has_error && !m_thd->killed)
#如果正常这里开始循环读取binlog event,如果前面出错则直接继续后面逻辑
#如果有读取错误则报错
my_snprintf(error_text, sizeof(error_text),
"%s; the first event '%s' at %lld, "
"the last event read from '%s' at %lld, "
"the last byte read from '%s' at %lld.",
m_errmsg,
m_start_file, m_start_pos, m_last_file, m_last_pos,
log_file, my_b_tell(&log_cache));
这里我们主要看看m_start_pos和m_last_pos,实际上m_start_pos就是和前面报错一致的来自从库需要读取的位点信息,而m_last_pos来自dump线程,就是最后读取的位置,显然这里一次都没有读取,因此位置为最开始的pos 4。
3. 可能的原因
分析后觉得最有可能原因应该和sync_binlog 有关。
如果我们没有设置为1,那么可能os cache没有刷盘,如果主库服务器直接crash重启很容易就遇到这种问题。
稍微google查询了一下发现很大部分出现这种错误都是由于服务器crash且sync_binlog 没设置为 1导致的。
这也证明我们的说法。
最后查看问题数据库的主库确实没有设置为双1。
那么通过这个小案例,我们已经更加深刻体会到设置双1的重要性。
Enjoy MySQL :)返回搜狐,查看更多
责任编辑:
mysql pos点是什么,MySQL 5.6 主从报错一例相关推荐
- MySQL 5.6 主从报错一例
1. 问题现象 版本:MySQL 5.6,采用传统 binlog file & pos 方式配置的主从复制结构. 实例重启后,主从复制报错如上图所示. 2. 错误含义 错误分为2部分. 第一部 ...
- mysql 主从报错
mysql 主从报错 mysql> change master to master_host='10.1.2.3', master_user='slave', master_password= ...
- mysql5.7 delimiter_percona MYSQL 5.7.13 5.7.14 MYSQLDUMP 导入报错delimiter (修改MYSQLDUMP代码)...
percona MYSQL 5.7.13 5.7.14 MYSQLDUMP 导入报错delimiter (修改MYSQLDUMP代码) 重庆八怪 2016-09-26 15:12:22 浏览1094 ...
- mysql主从报错_Mysql主从报错锦集
前言 在发生故障切换后,经常遇到的问题就是同步报错,下面是最近收集的报错信息. 记录删除失败 在master上删除一条记录,而slave上找不到 Last_SQL_Error: Could not e ...
- mysql无法插入行_在mysql中数据才插入20多行就报错,求救啊!!!
mysql的建表语句如下:CREATETABLE`auth_function`(`id`varchar(255)NOTNULL,`name`varchar(255)DEFAULTNULL,`descr ...
- mysql scope runtime_Maven依赖scope属性详解-一个报错引发的问题 - 老郭种树
ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the cont ...
- mysql的groupby原理是啥_mysql数据库groupby报错原理是什么?
mysql数据库groupby报错原理是什么? 八一xiaobayi 2020-03-18 09:05:04 mysql> select count(9),floor(rand(0)*2) as ...
- mysql adminer 导入csv_mysql导入csv的4种报错的解决方法
以此悼念我今天踩过的4个坑-- 坑一:local的错 报错: error 3948 (42000): loading local data is disabled; this must be enab ...
- mysql 1005 - can't create table_关于创建数据表报错一例(ERROR 1005 Can’t create table (errno: 121))...
问题描述 曾遇到创建数据表报错问题,报错如下: ERROR 1005 (HY000) at line 18: Can't create table 'db1.t2' (errno: 121) 通过日志 ...
最新文章
- 人工智能正在激活互联网类脑系统,2018年,云脑将成为新热点
- 24、Java Swing JTabbedPane:选项卡组件
- Python-OpenCV 笔记8 -- PIL.Image和OpenCV图像格式转换
- java 可以直接当自定义标示符_第2章 Java基本语法.ppt
- VIVADO时序约束及STA基础
- java 泛型示例_Java泛型示例教程–泛型方法,类,接口
- 深入理解JVM(4)——如何优化Java GC
- 《测绘综合能力》——地籍测绘
- JAVA核酸预约检测管理系统毕业设计 开题报告
- ajax几种回调函数
- java 线程 假死_JVM假死问题如何定位?
- 【转】 HMC与VIOS对新LPAR提供存储与网络虚拟化的支持
- Linux ps命令简介
- 最新公司级 OKRs 案例
- 终于在国庆前找到工作了!(面试全过程真实记录)
- educoder数据结构与算法 图 第2关:实现图的深度优先遍历
- 跳格子/贪心算法例题详解:LeetCode605.种花问题
- 为什么我要放弃竖屏的短视频?自媒体时代,拍横屏视频能赚钱吗?
- jquey javascript 绑定点击事件(click事件无反应,因js获取不到当前的点击项)
- Oracle function函数赋权
热门文章
- OpenCV与c语言图像融合
- Php 表单转json,form转json实现方法
- 2020下半年新机最新消息_2020年下半年新机看点汇总:最看好的还是麒麟1020处理器!...
- python turtle基本语法_Python 基础语法-turtle篇
- spring applicationContext.xml最全约束
- mysql 取绝对值_自学MySQL第六天
- Django连接mysql数据库浅析
- Jenkins中的邮件设置
- pythonlist基本操作_Python list 常用操作
- python项目面试_Python面试中最常见的25个问题-结束