知识大全 MYSQL主从同步故障一例及解决过程

Posted

篇首语:我们要像海绵一样吸收有用的知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 MYSQL主从同步故障一例及解决过程相关的知识,希望对你有一定的参考价值。

MYSQL主从同步故障一例及解决过程!  以下文字资料是由(历史新知网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  公司里有两个mysql服务器做主从同步 某天Nagios发来报警短信 mysqla is down 赶紧联系机房 机房的人反馈来的信息是 HARDWARE ERROR 后面信息省略 让机房记下错误信息后让他们帮忙重启下看是不是能正常起来 结果竟然正常起来了 赶紧导出所有数据

  问题又出现了 nagios 又报警 mysql_AB error 检查从库

  show slave status \\G; 果然

  Slave_IO_Running: Yes

  Slave_SQL_Running: No

  而且出现了 错误 还提示

  Last_SQL_Error: Error Duplicate entry for key PRIMARY on query Default database: bug Query: insert into misdata (uid mid pid state mtime) values ( )

  很显然 由于主库重启导致 从库数据不同步而且主键冲突 查看error 日志发现error日志文件变得好大 比以前大了将近好几倍

  tail f mysql_error log 最开始查看到的是这条信息

  发现这条信息

  [ERROR] Slave SQL: Error Duplicate entry for key PRIMARY on query Default database: ufo Query: insert into misdata (uid mid pid sta

  te mtime) values ( ) Error_code:

   : : [Warning] Slave: Duplicate entry for key PRIMARY Error_code:

   : : [ERROR] Error running query slave SQL thread aborted Fix the problem and restart the slave SQL thread with SLAVE START We stopped at log ufolog

   position

  报错和上面的意思差不多

  最先想到的就是首先手动同步一下 从库上首先 stop slave;停止同步

  进入主库锁表

  FLUSH TABLES WITH READ LOCK

  mysql> show master status;

  + + + + +

  | File              | Position  | Binlog_Do_DB | Binlog_Ignore_DB |

  + + + + +

  | ufo | |              |                  |

  + + + + +

   row in set ( sec)

  进入从库

  mysql>change master to master_host= master_user= slave

  master_password= xxx

  master_port=

  master_log_file= ufo

  master_log_pos= ;

  完成上面这些后

  start slave;

  回到主库

  unlock tables; 解锁

  回到从库 查看

  show slave status \\G;

  发现正常了 长处了一口气 可是还没过一分钟 发现又开始报错了 还是最开始那个错误 这是怎么回事

  于是又想到了跳过错误的办法 (不过我不太喜欢用这种方法)马上进入从库

  stop slave;

  set global sql_slave_skip_counter= ; ( 是指跳过一个错误)

  slave start;

  再show slave status \\G;查看

  还是报错 只不过 原来的 变成了 连续执行了几次后

  除了上面的数值 在变 错误依然还在

  郁闷了 看来只能先强制跳过 错误了 于是修改从库的/etc/f文件

  在里面的[mysqld]下面加入了一行

  slave skip errors = (忽略所有的 错误)

  重启下从库的mysql /etc/init d/mysqld restart

  再 show slave status \\G;一下发现正常了 但是我知道这时的数据可能已经不同步了

  再次查看一下日志 让我感到意外的是tail f mysql_error log 出现大量的

  

   : : [Warning] Statement may not be safe to log in statement format Statement: delete from `system_message_ ` where `to_uid` = ORDER BY `id` ASC LIMIT

  

  日志里面有大量的这种警告 意思应该是statement 格式不安全 用vim 打开他看了一下 发现好多这类警告 我说为什么错误日志怎么变这么大了呢!!

  statement format 应该是 binlog的一种格式 进入从库查看一下

  show global variables like binlog_format ;

  果然当前的格式为statement

  我需要把格式改为 mixed格式

  修改从库的 my cfg

  在[mysqld]下面加入下面这行

  binlog_format=mixed

  然后重启mysql服务 发现错误日志里的 警告 都停止了 这回清静多了~~

  我突然想起一件事 记得有朋友说过 RBR 模式可以解决很多因为主键冲突导致的主从无法同步情况 想到这里我就想要不要把 slave skip errors = 去掉再试试

  于是就进入到f 里在注释掉了 slave skip errors =

  再次重新启动 mysql服务

  进入从库

  show slave status \\G;

  

  Slave_IO_Running: Yes

  Slave_SQL_Running: Yes

  

  恢复了!!!有观察了一段时间没有出现问题这才放心

  看来导致 mysql 主从复制出错的原因还真不少修复的办法也不止一个 binlog的格式也是其中之一

cha138/Article/program/MySQL/201311/29391

相关参考

知识大全 Linux下C连接MySQL出现错误解决一例

Linux下C连接MySQL出现错误解决一例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在L

知识大全 MySql配置主从复制读写分离

MySql配置主从复制读写分离  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  myini配置文件

知识大全 MYSQL数据库主主同步实战

MYSQL数据库主主同步实战  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  MYSQL支持单向异

知识大全 工作中遇到的oracle故障分析和处理一例

  案例类别VAS网络系统类型CMODE系统版本硬件SUN软件所有版本案例标题CMODE放号中的数据库出现LOCK的处理方法故障现象启动sam_cmode进程不能正常处理工单故障描述启动以sam_cm

知识大全 MYSQL的master/slave数据同步配置

MYSQL的master/slave数据同步配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 UNIX设置MySql数据同步 实现复制功能

UNIX设置MySql数据同步实现复制功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  mys

知识大全 解决HIS集群系统的性能问题一例

解决HIS集群系统的性能问题一例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要  我院在年

知识大全 解决Restarting死进程QMN0问题一例

解决Restarting死进程QMN0问题一例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一

大水面养殖鲢鳙鱼肠炎病治疗一例

随着我县水库养殖集约化程度的提高,大多采取高密度精养,放养密度及单位水体产量大幅度提高,水环境越来越恶化,但鱼病预防工作没有同步跟上和加强,再加上水库面积较大,水太深,水库常年无法消毒,寄生虫、细菌和

大水面养殖鲢鳙鱼肠炎病治疗一例

随着我县水库养殖集约化程度的提高,大多采取高密度精养,放养密度及单位水体产量大幅度提高,水环境越来越恶化,但鱼病预防工作没有同步跟上和加强,再加上水库面积较大,水太深,水库常年无法消毒,寄生虫、细菌和