博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
半夜一次数据导入导出主从同步及解决方案
阅读量:7106 次
发布时间:2019-06-28

本文共 1527 字,大约阅读时间需要 5 分钟。

由于公司新服务器在北京要上线,LAMP环境和性能调优已经做好。接下来就是导出数据导入之后主从同步数据。本来以为很简单的事,因为各种各样的小事故差不多搞了一个通宵,这里分享一下:

第一、凌晨锁表,进行导出操作使用命令(这里我导出函数,存储过程和事件):

mysqldump -uroot -p --opt -R --events --tirggers mall > /data/mall_$(date +%Y%m%d_%H%M).sql

第二、把生成的.sql文件放到另一个机房的机器上面然后用进行还原:

mysql -uroot -p mall<mall.sql

第三、解锁,然后在my.cnf定义主从文件(这里忽略)

第四、主从同步:主要问题:

类似情况描述(因为那个时候凌晨,我已经没有时间 慢慢截图,大致的错误描述是这样的)

0910 22:47:18 [ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236)
090910 22:47:18 [ERROR] Got fatal error 1236: 'Client requested master to start replication from impossible position' from master when reading data from binary log
090910 22:47:18 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000008', position 753871857

大概的意思就是说在主从同步的时候,数据出现了偏差,需要我们查看日志去慢慢找出,第一次报错的地方进行同步:(开始的时候试过重新查看msater status的值重新做不成功,好吧慢慢看二进制日志了)

第五、执行:

[root@im_offlog2b mysql]# mysqlbinlog --start-position=753871857 mysql-bin.000008 〉less.txt文件

然后查看第一次报错的地方:

这里可以看到最近一次报错是在107开始的,所以我们重新定义。position的值为 107  mysl-bin.0000008,再重新执行一次主从就可以了。

本来以为大功告成的,已启动查看的时候又报错,我晕:

明显的提醒是主键报错,可能是导入过程的时候,重复导入。或者网络影响的,我原来的思路是看那个表的主键报错,直接从主库上面导入表过来,但是发现一堆的表报错不可能那样来了,干错直接跳过这个错误,因为只是主键的话不太会影响数据的完整性:

在重库my.cnf加上:

 slave_skip_errors = 1062  slave_skip_errors = all   

然后重启从库:

show slave status\G发现已经成功了。

算了一下时间,1点钟起床倒数据,倒完之后传数据,然后导入数据,已经是2点多,然后订一个闹铃5点钟,(但是发现自己没有睡着,)5点钟起床后继续弄同步,花费了将近一个小时。6点钟又躺下,9点上班。

其实年轻的时候多吃点苦无所谓。不要再最能吃苦的时候选择安逸(送一句自己最喜欢的话)

本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1572703,如需转载请自行联系原作者
你可能感兴趣的文章
EOS开发快速上手指南
查看>>
nodejs express wechat 实现微信消息功能
查看>>
我的友情链接
查看>>
only a DBA can import a file exported by another DBA 错误解决方法
查看>>
EIGRP实验-路由更新
查看>>
SQL Server 2008 Express 安装或卸载时提示“重启计算机失败"的解决办法
查看>>
IT职场人生系列之八:行业与公司类型
查看>>
如何在 Linux 中安装、配置和使用 Fish Shell?
查看>>
桥接和路由模式区别
查看>>
我的友情链接
查看>>
9位优美乘积式
查看>>
关于帮客户节约成本的一些想法
查看>>
java多线程学习(一)
查看>>
jquery的indexeddb简单使用
查看>>
Centos7+Open***使用用户及密码验证登陆
查看>>
Mac 下Nginx80端口无法子启动问题
查看>>
Hive入门到剖析(一)
查看>>
sed命令
查看>>
Abstract Class yii\base\ErrorHandler
查看>>
jmeter
查看>>