MySQL主从复制出错案例一则

转载 2013年12月04日 00:28:59

有时候为了方面的导入数据,可以使用MyISAM存储引擎的表,直接把数据文件Copy一份放到对应的目录下,这样MySQL就能直接识别到,但是在主从复制的环境里这样做是有问题的,因为在从库上并没有这个表,从而导致后续的一些操作失败,比如在主库上执行导入数据的SQL语句,则在从库会报错如下:

mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: No
Last_Errno: 1146
Last_Error: Error ‘Table ‘banpingdb.blog_score’ doesn’t exist’ on query. Default database: ‘banpingdb’. Query: ‘replace INTO blog_score_result(id,score,avg)
SELECT b.id, min(s.comment), min(s.price) FROM blog_score s,a_blog b where s.name=b.biz_name
group by b.id’

同样的信息通过日志也一样会看到:

111215 19:17:54 [ERROR] Slave SQL: Error ‘Table ‘banpingdb.blog_score’ doesn’t exist’ on query. Default database: ‘banpingdb’. Query: ‘replace INTO blog_score_result(id,score,avg)
SELECT b.id, min(s.comment), min(s.price) FROM blog_score s,a_blog b where s.name=b.biz_name
group by b.id’, Error_code: 1146
111215 19:17:54 [Warning] Slave: Table ‘banpingdb.blog_score’ doesn’t exist Error_code: 1146
111215 19:17:54 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with “SLAVE START”. We stopped at log ’1-bin.000001′ position 130482476

这种错误处理也很简单,可以直接跳过,当然要评估可能产生的影响:

mysql> slave stop;
Query OK, 0 rows affected (0.22 sec)

mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> slave start;
Query OK, 0 rows affected (0.00 sec)

然后blog_score_result这个表的数据肯定不准确了,可以重新从主库导入数据,视应用的繁忙程度,要保证数据的一致性,先在主库上lock这个表,不让其他用户更新:

mysql> lock tables blog_score_result read;
Query OK, 0 rows affected (0.00 sec)

然后导出数据:

[root@banping 3306]# bin/mysqldump –default-character-set=utf8 banpingdb blog_score_result -u root -p>/tmp/blog_score_result.sql;

去从库导入数据:

[root@banping 3306]# bin/mysql –default-character-set=utf8 banpingdb -u root -p</tmp/blog_score_result.sql;
Query OK, 0 rows affected (0.00 sec)

到主库解锁这个表:

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)

这样就完成了数据一致性的操作。主从复制的同步也正常了。这种事情的处理要结合实际应用情况,不可照搬就是了。

Mysql主从复制(master-slave)实际操作案例

这篇文章主要介绍了Mysql主从复制(master-slave)实际操作案例,同时介绍了Mysql grant 用户授权的相关内容,需要的朋友可以参考下 在这一章节里, 我们来了...
  • alibert
  • alibert
  • 2016年03月18日 09:05
  • 382

小贝_mysql主从复制作用以及案例

mysql用户授权命令,mysql用户授权作用、mysql bin-log日志,开启mysql bin-log日志,操作mysql bin-log日志、mysql主从复制,mysql主从复制案例和作用...

Mysql中主从复制的原理、配置过程以及实际案例

Mysql中主从复制的原理、配置过程以及实际案例 Mysql中主从复制的原理、配置过程以及实际案例 1.什么是主从复制? 原理:主从分离,什么意思呢?我们不妨画个图看看。如图1所...

Mysql中主从复制的原理、配置过程以及实际案例

Mysql中主从复制的原理、配置过程以及实际案例 1.什么是主从复制? 原理:主从分离,什么意思呢?我们不妨画个图看看。如图1所示: 2.准备工作:预备两台服务器,我这里使用虚拟机安装了两个Ce...

mysql主从复制搭建.docx

  • 2017年11月13日 21:35
  • 367KB
  • 下载

生产环境主从复制出错

正准备下班的时候zabbix报警了,知道没有好事,擦,果不其然,发现从库复制报错。好吧,乖乖登陆服务器看看啥原因, show slave status状态如下: 好吧,初步感觉是无法执行函数,我的...

mysql5.6主从复制

  • 2014年11月19日 15:52
  • 116KB
  • 下载

使用Spring实现读写分离(MySQL实现主从复制)

1. 背景 我们一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案, 其中一个是主库,负责写入数据,我们称之为:写库; 其它都是从库,...
  • zoomyj
  • zoomyj
  • 2016年01月30日 09:40
  • 3279
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL主从复制出错案例一则
举报原因:
原因补充:

(最多只允许输入30个字)