知识大全 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出现错误解决一例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在L
MySql配置主从复制读写分离 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! myini配置文件
MYSQL数据库主主同步实战 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! MYSQL支持单向异
案例类别VAS网络系统类型CMODE系统版本硬件SUN软件所有版本案例标题CMODE放号中的数据库出现LOCK的处理方法故障现象启动sam_cmode进程不能正常处理工单故障描述启动以sam_cm
MYSQL的master/slave数据同步配置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
UNIX设置MySql数据同步实现复制功能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! mys
解决HIS集群系统的性能问题一例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要 我院在年
解决Restarting死进程QMN0问题一例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一
随着我县水库养殖集约化程度的提高,大多采取高密度精养,放养密度及单位水体产量大幅度提高,水环境越来越恶化,但鱼病预防工作没有同步跟上和加强,再加上水库面积较大,水太深,水库常年无法消毒,寄生虫、细菌和
随着我县水库养殖集约化程度的提高,大多采取高密度精养,放养密度及单位水体产量大幅度提高,水环境越来越恶化,但鱼病预防工作没有同步跟上和加强,再加上水库面积较大,水太深,水库常年无法消毒,寄生虫、细菌和