主从故障处理--session 级别参数复制错误

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

  接受新项目,主从数据库复制同步错误,Error Code  1292 (invalid datatype)

    报错SQL:update wave set IS_WAVED = 0,LEVEL = 1,SOURCE_TB_NAME = null,SOURCE_ID = null,UPDATE_TIME = '2013-03-10 02:13:36.0' where PLAYER_ID = 80406 and TYPE = 0;

    时间格式肯定不对,

    查看服务器SQL_MODE 发现为空。这就奇怪啦,默认情况下MySQL会将其转换为正确格式;

    查看master该条记录情况,没有发生变化,由于Myisam存储引擎的原因,在该SQL执行错误时没有进行回滚删除binlog内容,(以后还是用Innodb吧!!)

    mysqlbinlog解析binlog

    mysqlbinlog --start-datetime="2013-04-11 08:37:56" --stop-datetime="2013-04-11 08:45:56" localhost-bin.001882 > /tmp/1.txt

    发现该类似的语句全部执行成功,为什么唯独这个错误的 时间格式没有转换呢?

    在binlog中发现以下线索:

    SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
    SET @@session.sql_mode=2097152/*!*/;

    可以确定的错以上是由某工具或框架设定的。

    下面我们看看这个session中 sql_mode的值;

    set sql_mode=2097152;

    mysql> show variables like '%sql_mode%';
+---------------+---------------------+
| Variable_name | Value               |
+---------------+---------------------+
| sql_mode      | STRICT_TRANS_TABLES |
+---------------+---------------------+

    在session中 sql_mode 被设置为 STRICT_TRANS_TABLES (具体解释可参考:http://weipengfei.blog.51cto.com/1511707/1173816

    这个时候就可以让slave 跳过这些session设置就可以啦。

    治本的办法是改动程序,但对于一个已经三年的项目,且没有固定人员负责的项目,DBA该如何权衡呢?






本文转自 位鹏飞 51CTO博客,原文链接http://blog.51cto.com/weipengfei/1178782,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL 前端开发 关系型数据库
MySQL only_full_group_by 1055 报错的三种解决方案,临时关闭有影响吗?
当我们迁移到 MySQL 5.7+ 的版本时,常会碰到 `ERROR 1055 only_full_group_by` 错误,这是 5.7 之后 `SQL_MODE` 默认打开了严格模式导致的错误。说明你代码里有地方写的不严谨。
1459 0
|
存储 NoSQL 数据库
无主复制系统(1)-节点故障时写DB概述
单、多主复制的思路都是:客户端向某主节点发写请求,而DB系统负责将写请求复制到其他副本。
106 0
|
架构师 关系型数据库 MySQL
事务已提交,数据却丢了,赶紧检查下这个配置!!! | 数据库系列
有个星球水友提问: 沈老师,我们有一次MySQL崩溃,重启后发现有些已经提交的事务对数据的修改丢失了,不是说事务能保证ACID特性么,想问下什么情况下可能导致“事务已经提交,数据却丢失”呢?
675 0
事务已提交,数据却丢了,赶紧检查下这个配置!!! | 数据库系列
|
SQL MySQL 关系型数据库
手动注册binlog文件造成主从异常
一、问题来源 有一个朋友@水米田 问我,基于POSITION的主从。他做了如下的操作 将备份的一些binlog文件加入到了目录中 修改index文件,加入了这些binlog文件 flush binary logs 然后整个主从环境大量延迟。
1162 0
|
存储 SQL Go
SqlServer 禁止架构更改的复制中手动修复使发布和订阅中分别增加的字段同步
原文:SqlServer 禁止架构更改的复制中手动修复使发布和订阅中分别增加的字段同步 由于之前的需要,禁止了复制架构更改,以至在发布中添加一个字段,并不会同步到订阅中,而现在又在订阅中添加了一个同名字段,怎么使这发布和订阅的两个字段建立同步关系呢? 下面就测试更改:此次发布类型为事务复制的可更新订阅,其他类型的发布没有测试。
1126 0
|
SQL 存储 监控
SQL Server 事务复制分发到订阅同步慢
原文:SQL Server 事务复制分发到订阅同步慢 最近发现有一个发布经常出现问题,每几天就出错不同步,提示要求初始化。重新调整同步后,复制还是很慢!每天白天未分发的命令就达五六百万条!要解决慢的问题,需要了解从发布数据库到订阅数据库中,有哪些操作,才知道哪个步骤同步缓慢。
2281 0
|
SQL Go 数据库
SQL Server日志文件过大 大日志文件清理方法 不分离数据库
原文:SQL Server日志文件过大 大日志文件清理方法 不分离数据库 SQL Server日志文件过大    大日志文件清理方法 ,网上提供了很多分离数据库——〉删除日志文件-〉附加数据库 的方法,此方法风险太大,过程也比较久,有时候也会出现分离不成功的现象。
2811 0

热门文章

最新文章