Mysql数据库主从不同步解决案例

问题说明:做了Mysql的主从,还没做主从分离,导致同事在mysql从服务器执行了写入操作,引起不同步(show slave status\G;Slave_SQL_Running: No)

解决方法:

1,

Mysql > slave stop;
Mysql > set global sql_slave_skip_counter =1 ;
Mysql > slave start;
Mysql > show slave status\G

因为插入的数据不止是1条,操作太慢且麻烦

2,

在主查询show master status\G,再从这个点执行

change master to master_host=‘master_ip‘, master_user=‘user‘, master_password=‘pwd‘,  master_port=3306,  master_log_file=‘mysql-bin.00000*‘,  master_log_pos=000000***;

数据会丢的更多。

因此,还是选择第一种方法,不过set global sql_slave_skip_counter=500 把这个数值调大,一次跳过去500条,一直循环那4条语句,直到

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

造成结果:这样操作的结果是丢失一些数据,不过少点,另外其中某一个表不同步了(因为有跳过从本来应该执行的语句),接下来解决这个问题,选择数据库插入频率很小的时候做,最好这时候不要有数据写入,以免影响生产环境(下面只是举例子说明解决步骤)

3,

用Navicat for MySQL登录主库,下面操作都是在主库进行

1,在主库查询“SELECT COUNT(*) FROM date.table;”知道现在这个表有多少行,作为最后验证,选择“复制表”,复制后的表名称为 table_name_copy,复制的表数据也不会同步的

2,把复制的表导出,选择“转储SQL文件----结构和数据”,保存到硬盘上面

3,删除这个复制的表table_name_copy。在数据库右键选“运行SQL文件”,把刚才导出的数据再导入进去

现在的结果是刚导入的表table_name_copy主从肯定是同步的

4,关键的一步,继续查主库“SELECT COUNT(*) FROM date.table;” 看数据表有没有写入内容,如果没有写入,赶紧F2把table的名字改一下,3秒钟时间

table_name(数据对,没同步)改为table_name1

table_name_copy(趁着数据没写入table_name,已同步)改为table_name

再次“SELECT COUNT(*) FROM date.table;”查询,看有没有插入数据

5,总结,主从不同步会造成查询的数据不一致,做这个动作之前要和用这个表的人商量,保证不出现意外。主从做好了,要么做读写分离,要么控制权限,从只能查,没其他权限,这样才不会出问题

Mysql数据库主从不同步解决案例

时间: 2024-10-10 17:36:49

Mysql数据库主从不同步解决案例的相关文章

mysql数据库主从不同步解决办法

参考:http://blog.51cto.com/13407306/2067333 重新做主从,完全同步?(该方法适用于主从库数据相差较大,或者要求数据完全统一的情况?) 1.先进入主库,进行锁表,防止数据写入 (完事后记得解锁 unlock tables )使用命令:?mysql -uroot -proot_neu -P33061 -S /tmp/mysql_33061.sockmysql> flush tables with read lock;? 注意:该处是锁定为只读状态,语句不区分大小

解决mysql 数据库主从不同步

今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist;   查看下进程是否Sleep太多.发现很正常. show master status; 也正常. mysql> show master status; +-------------------+----------+--------------+-------------------------------+ | File              | Position | Binlo

mysql数据库主从不同步的解决方法

故障描述: 进入从数据库 mysql> show slave status\G; 结果如下: ... Slave_IO_Running: Yes Slave_SQL_Running: No Last_Errno: 1062 ... 原因: 程序可能在slave上进行了写操作 可能是slave机器重启后,事物回滚造成的 多数是第二种造成的 解决方法一:忽略错误后继续同步 该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况 mysql> slave stop;m

mysql数据库主从同步

环境: Mater:   CentOS7.1  5.5.52-MariaDB  192.168.108.133 Slave:   CentOS7.1  5.5.52-MariaDB  192.168.108.140 1.导出主服务数据,将主备初始数据同步 master: //从master上导出需要同步的数据库信息 mysqldump -u*** -p*** --database test > test.sql //将master上的备份信息传输到slave上 scp /root/test.sq

Mysql主从(主从不同步解决办法,常见问题及解决办法,在线对mysql做主从复制)

一.主从不同步解决办法 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. show master status; 也正常. mysql> show master status; +-------------------+----------+--------------+-------------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore

谈谈Mysql数据库主从同步延迟分析及解决方案

一.MySQL的数据库主从复制原理 MySQL主从复制实际上基于二进制日志,原理可以用一张图来表示: 分为四步走: 1. 主库对所有DDL和DML产生的日志写进binlog: 2. 主库生成一个 log dump 线程,用来给从库I/O线程读取binlog: 3. 从库的I/O Thread去请求主库的binlog,并将得到的binlog日志写到relay log文件中: 4. 从库的SQL Thread会读取relay log文件中的日志解析成具体操作,将主库的DDL和DML操作事件重放. 关

MySQL数据库主从同步部署

MySQL数据库主从同步部署: 环境 Mater:   CentOS6.4  mysql5.5.38  192.168.107.133 Slave:   CentOS6.4  mysql5.5.38  192.168.107.135 1.导出主服务数据,将主备初始数据同步 master: //从master上导出需要同步的数据库信息 mysqldump -u*** -p*** --database test > test.sql //将master上的备份信息传输到slave上 scp /roo

linux下mysql数据库主从同步配置

说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说明:在两台MySQL服务器192.168.21.128和192.168.21.129上分别进行如下操作 备注: 作为主从服务器的MySQL版本建议使用同一版本! 或者必须保证主服务器的MySQL版本要高于从服务器的MySQL版本! 一.配置好IP.DNS .网关,确保使用远程连接工具能够连接

烂泥:学习mysql数据库主从同步复制原理

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 说明本篇文章部分转载自互联网. MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能.更高可靠性要求的场合.与之对应的是另一个同步技术是MySQL Cluster,但因为MySQL Cluster配置比较复杂,所以使用者较少. MySQL的Replication是一个异步复制的过程(mysql5.1.7以上版本分为异步复制和半同步两种模式),它是从一个Mysql