Unison + Inotify 实时同步数据问题

前段时间采用Unison + Inotify 进行网站文件系统双向实时同步,数据库采用 MariaDB 进行 Dual-Master 双向同步。搭配Cloudflare的API宕机切换(脚本实现),意在打造高可用/实时同步的网站系统。但是在日后维护过程中发现这种方案并不理想,将遇到的问题总结如下,希望能提供一些参考或者有朋友能提供解决方案

Unison + Inotify

Unison + Inotify 进行实时双向同步会导致 WordPress 在更新插件/主题/系统时出现错误,导致网站不能访问。停用Inotify之后再次更新可正常进行。

MariaDB Dual-master

双主模式在实施之前就已经看到有朋友在网上说极易出错导致不能同步。在实施之后发现确实如此,发现出错后进行手工同步再启用不了多久又报错。

结语

人力不足的情况下只能采用主从服务器,使用rsync及mysql dump/ mysql脚本进行同步。在服务端客户提交的资料只有一个表格,实时将所提交的表格内容发送到邮箱即可,即使切换服务器也能确保内容不会丢失。如果有足够的时间再进行研究,找出具体原因进行解决;或者数据库方面考虑percona集群,文件同步方面暂时能想到的方案为更新时停用Inotify,更新完成后再启用(这样能保证上传更新的附件能及时同步)。

参考资料

  • Mariadb Dual-master:http://msutic.blogspot.com/2015/02/mariadbmysql-master-master-replication.html
  • Unison + Inotify 同步文件:http://www.php512.com/?p=448

Leave a Reply

Your email address will not be published. Required fields are marked *