MYSQL主从库不同步故障一例解决方法
程序员文章站
2023-12-15 20:57:04
于是: 1、在主库中创建一个临时库,将需要导入的表文件复制过来 2、执行 create database tmpdb; create table tmptable; cp...
于是:
1、在主库中创建一个临时库,将需要导入的表文件复制过来
2、执行
create database tmpdb;
create table tmptable;
cp mysql_date_file master_data_file //shell command 复制数据表文件到master data_dir下
insert into master.tmptable select * from tmpdb.tmptable;
执行完后,主库中数据导入正常
再看slave status
show slave status;
发现错误:not found tmpdb.tmptable (大致意思是这个,原来的错误信息没有记录下来)
匆忙中,看show master status 中master_log_pos 标记为$master_log_pos
然后在slave 上 change master to master_log_pos=$master_log_pos
然后再看show master status,发现有1162错误
到现在发现两边的数据不能同步了
。。。。。。
冥思苦想,不会重新做一遍主从库吧?
mysqlbinlog 我突然想到了它
于是mysqlbinlog --start-position=190000000 --stop-position=200000000 xxx.binlog|grep tmptable
找到了在slave上执行错误的sql
mysqlbinlog --start-position=190000000 --stop-position=200000000 xxx.binlog|grep tmptable > /tmp/tmpbinlog
vi /tmp/tmpbinlog (find tmptable)
找到错误sql的下一个# at (一串数字)标记为$next_pos
在slave 上 change master to master_log_pos=$next_pos
show slave status 显示:
slave_io_running: yes
slave_sql_running: yes
哈哈,完成同步。
如果中间碰到1062错误 在slave配置文件中设定slave-skip-errors=1062,重启slave
1、在主库中创建一个临时库,将需要导入的表文件复制过来
2、执行
create database tmpdb;
create table tmptable;
cp mysql_date_file master_data_file //shell command 复制数据表文件到master data_dir下
insert into master.tmptable select * from tmpdb.tmptable;
执行完后,主库中数据导入正常
再看slave status
show slave status;
发现错误:not found tmpdb.tmptable (大致意思是这个,原来的错误信息没有记录下来)
匆忙中,看show master status 中master_log_pos 标记为$master_log_pos
然后在slave 上 change master to master_log_pos=$master_log_pos
然后再看show master status,发现有1162错误
到现在发现两边的数据不能同步了
。。。。。。
冥思苦想,不会重新做一遍主从库吧?
mysqlbinlog 我突然想到了它
于是mysqlbinlog --start-position=190000000 --stop-position=200000000 xxx.binlog|grep tmptable
找到了在slave上执行错误的sql
mysqlbinlog --start-position=190000000 --stop-position=200000000 xxx.binlog|grep tmptable > /tmp/tmpbinlog
vi /tmp/tmpbinlog (find tmptable)
找到错误sql的下一个# at (一串数字)标记为$next_pos
在slave 上 change master to master_log_pos=$next_pos
show slave status 显示:
slave_io_running: yes
slave_sql_running: yes
哈哈,完成同步。
如果中间碰到1062错误 在slave配置文件中设定slave-skip-errors=1062,重启slave