IT技术博客大学习 共学习 共进步

MTU值的调整导致MySQL复制异常

SQL部落 2011-11-24 00:05:25 浏览 4,664 次

今天的故事简单有趣,你绝对没有遇到过。当我们把网卡的MTU值从默认的1500,调整为3000/6000/9000后,复制十分诡异,搞得我云里来雾里去的,先记录下:

以下命令可以动态修改MTU值及时生效,和查看状态的一些命令:

shell> ifconfig eth1 mtu 3000 up (永久生效可以增加MTU=XXXX到配置文件ifcfg-ethN中)

shell> ip link list eth1

shell> ethtool

shell> ping -s xxxx IP (当增大MTU后,-s值大于1500的ping都会失败)

增大MTU后,复制正常,但scp发生stalled.

增大MTU后,复制异常,scp发生stalled.

异常表现为:

1. 从库只复制过去了一条建库与语句;

2. show processlist和show slave status查看主从状态均正常,但是,当停止主库,show slave status时从库没有异常反应,只有当stop slave,再start slave,从库io_thread_running变为No;

3. 主库show processlist时观察到有Writing to net状态出现,然后该线程被关闭,从库各状态无任何异常。

4. 其中一次在6000复制失败后,将MTU值恢复为1500,突然发现从库有语句被复制过来并执行。

―-

MTU (Maximum Transfer Unit) ― 最大传输单元,之所以调整,是考虑到当有大数据量传输时,减少数据包的分段操作,以提高传输速度。后来发现,不能单方面调整,还需要考虑整个网络环境中各个interface的MTU,都需要保持一致才行,否则丢包是难免的。

建议继续学习

  1. mysql 主从配置中的server-id的作用 (阅读 7,663)
  2. 内存表在同步环境注意事项 (阅读 5,586)
  3. 也谈PostgreSQL的同步配置(Slony) (阅读 5,407)
  4. MySQL5.5数据库复制搭建报错之Could not initialize master info structure (阅读 5,284)
  5. PHP查询MySQL大量数据的内存占用分析 (阅读 4,924)
  6. MySQL复制的概述、安装、故障、技巧、工具 (阅读 4,264)
  7. mysql主从同步快速设置 (阅读 3,843)
  8. [MySQL优化案例] — slave延迟很大优化方法 (阅读 3,845)
  9. 如何监控主从之间的延时:seconds_behind_master OR mk-heartbeat (阅读 3,824)
  10. 自己动手实现Multi-Master Replication (阅读 3,823)