
由于各种原因,mysql主从架构经常会出现数据不一致的情况出现,大致归结为如下几类
1:备库写数据
2:执行non-deterministic query
3:回滚掺杂事务表和非事务表的事务
4:binlog或者relay log数据损坏
数据不同步给应用带来的危害是致命的,当出现主从数据不一致的情况,常见的应对方法是先把从库下线,然后找个半夜三更的时间把应用停掉,重新执行同步,如果数据库的体积十分庞大,那工作量可想而知,会让人崩溃。本文介绍使用percona-toolkit工具对mysql主从数据库的同步状态进行检查和重新同步。
一:安装percona-toolkit
从库修改后,比如插入个id=5,那么当主再插入个id=5时,并且id是primary key,这不就出错了么。
所以还得看你在从库插入的是否相关的东东,你也可以在从库建立一个新的数据库,里面放些和主从不相关的测试表,并且在里面 *** 作数据,这些没有关系,不会产生什么影响,如果就是简单的主从结构的话。
--主机开两个窗口,一个进入mysql,一个是shell
--主机阻断写 *** 作
mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (000 sec)
mysql>
mysql>
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin000002 | 1529881 | openser | mysql,test |
+------------------+----------+--------------+------------------+
1 row in set (000 sec)
--另外一个窗口导出主机数据库
mysqldump -u root -p123456 --opt -R openser > openser20121203sql
--刚才的窗口主机解锁
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (000 sec)
mysql>
--打包数据文件到从机
drop database openser;
create database openser;
mysql -u root -p123456 openser < openser20121127sql
--从机 *** 作
SLAVE STOP;
reset slave;
CHANGE MASTER TO MASTER_HOST='1921682126',
MASTER_USER='repl_user',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin000002',
MASTER_LOG_POS=1529881;
start slave;
show slave status\G
以上就是关于如何使用Percona Toolkit解决Mysql主从不同步问题全部的内容,包括:如何使用Percona Toolkit解决Mysql主从不同步问题、MySQL在从库修改数据会影响主从同步吗、mysql通过什么保证主从数据的同步等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)