mysql主从之slave-skip-errors和sql_slave_skip_counter
一般来说,为了保险起见,在主从库维护中,有时候需要跳过某个无法执行的命令,需要在slave处于stop状态下,执行 set global sql_slave_skip_counter=1以跳过命令。但在测试和开发环境下,有时候为了快速解决不影响开发,需要使用set global sql_slave_skip_counter=N,其意思即为在start slave时,从当前位置起,跳过N个event。每跳过一个event,则N--.
这一点还是很好验证的,测试过的就有明确体会了,不想测试的可参考下http://www.cnblogs.com/yhlx/articles/3740598.html。
除了跳过N个event外,还有一个很重要的参数是slave-skip-errors,其有四个可用值,分别为:off、all、ErorCode、ddl_exist_errors。
根据各个值得字面意思即可知道它们的用法,但是其中ddl_exist_errors值却比较特别,它代表了一组errorCode的组合,分别是:
1007:数据库已存在,创建数据库失败
1008:数据库不存在,删除数据库失败
1050:数据表已存在,创建数据表失败
1050:数据表不存在,删除数据表失败
1054:字段不存在,或程序文件跟数据库有冲突
1060:字段重复,导致无法插入
1061:重复键名
1068:定义了多个主键
1094:位置线程ID
1146:数据表缺失,请恢复数据库
但是还要注意的是,该值只在mysql cluster版的mysqld中才可用,而在mysql Server版的mysqld中不可用。
使用这个参数除了http://blog.csdn.net/wulantian/article/details/38369259和http://bugs.mysql.com/bug.php?id=39393提及的bug外,更严重的是它会让不该忽略的操作也被忽视,进而导致业务不正确,尤其是如果从库提供和主库一样严重程度的业务时,比如实时风控和程序化操作基于的实时盈亏预警,为此有些厂商甚至都出现过几百万的索赔。
相关文章
- Spark SQL metaData配置到Mysql
- MySQL学习笔记_8_SQL语言基础复习
- (9) MySQL主主复制架构使用方法
- 【收藏】mysql:深究 sql 默认排序 order by
- SQL Server 数据导入Mysql详细教程
- Shell 小技巧的问题 mysql -e ,字符串替换telnet命令检测
- MySQL索引分析与优化
- 使用MySQL中的EXPLAIN解释命令来检查SQL
- 如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?
- MYSQL 基本SQL语句
- MySQL SQL_Mode
- ***mysql中查询今天、昨天、上个月sql语句
- MySQL批量执行SQL修改视图属主的办法
- 2022-11-05 mysql-派生表-解读
- 2022-08-10 mysql/stonedb-慢SQL-Q16-耗时追踪
- 2022-09-11 mysql列存储引擎-宣讲-第二讲-一条SQL在Tianmu引擎中的运行
- Mysql中的递归层次查询(父子查询,无限极查询)
- mysql子查询
- Mysql数据库里面的String类型依照数字来排序以及按时间排序的sql语句
- Mysql SQL查询今天、昨天、n天内、第n天的数据
- 硬盘空间满导致mysql ibd文件被删后提示Tablespace is missing for table 'db_rsk/XXX"
- mysql 连接数 设置 多少合适
- mysql导入导出sql文件
- 【Mysql】求两个表(查询结果)的差集
- 【Mysql系列】mysql执行sql脚本
- 【Mysql系列】SQL案例练习
- 【mysql系列】动态sql语句