全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 7393|回复: 17

[经验] 捣鼓了两天两夜,完成了双后端文件+mysql实时同步

[复制链接]
发表于 2011-2-28 17:52:31 | 显示全部楼层 |阅读模式
84因为我超载下掉我唯一的后端的vps#1后,就找了pt和clubuptime两家,pt下机好慢,拖了两天,cbt实时下机的好,费尽口舌让84恢复了我的机器,把三个前端暂时关了,上马开弓,

先是mysqldump和rsync到了cbt,没什么好讲的,
主要讲讲我犯的错误
做mysql同步的时候废了不少时间,贴出我的参考文章
http://yangzb.javaeye.com/blog/747174
http://ourmysql.com/archives/61
最初以为root可以远程连接的,
进mysql,show slave status 才知道root无远程权限,基础知识不好,别笑话啊
于是新建了个bak用户,所有权限,还是不行
看了/var/lib/mysql/puss.err错误日志
才知道仍需要一个replicate权限,grant了,
还是不行,郁闷了,再看了很多文章,单单修改my.cnf和重启mysql是不够的,需要删除/var/lib/mysql下的master.info文件
这个文件会在第一次启用从机同步主机的时候生成,不管是失败还是成功都会出现,在修改my.cnf里的主机信息的时候如果不删除master.info文件,是无法生效的
改完以后,mysql;reset slave;start slave,过了不多时间,数据就全部抓过来了,登录phpmyadmin测试了一下,哈,成功了。
单向做好了,双向也就得心应手了。show processlist看了一下,两机的通知和同步进程都在,测试也成功了

文件的热备选择的是sersync(http://code.google.com/p/sersync/),这东西真的不错,实时监控文件操作来同步,还能过滤不需要的文件类型和目录(缓存就不需要),以及设置监听器(比如只监听文件增加)
初次运行先-r执行一次全额同步,完成以后设置好conxml.xml,贴出我自己改的参考一下(wp + arras主题)
    <filter start="true">
        <exclude expression="(.*)\.zip"></exclude>
        <exclude expression="(.*)\.gz"></exclude>
        <exclude expression="^domains/xxx.com/public_html/wp-content/cache/*"></exclude>
        <exclude expression="^domains/xxx.com/public_html/wp-content/themes/arras-theme/library/cache/*"></exclude>
    </filter>
    <inotify>
        <delete start="true"/>
        <createFolder start="true"/>
        <createFile start="false"/>
        <closeWrite start="true"/>
        <moveFrom start="false"/>
        <moveTo start="true"/>
        <attrib start="false"/>
        <modify start="false"/>
    </inotify>
设置好我用screen来启动sersync,为的是可以随时会来看看sesynce是不是正常运行,并且tail -f rsync的log文件,
尝试上传了一个文件,从机很快跟着就有了,log也滚动显示了接受的字节数

这样就完成了搭建两台环境一模一样的双向互备后端了,不管哪个后端有改动,另一个后端也会跟着改动;修改前端指向ip,权重一样,并加了故障转移
发现pt虽然是八核供用,但是磁盘io稍逊,后来需要yum安装一个软件,负载就一直不断的增加没有停止,service nginx stop又没有相应,只能去前端先下掉ip

这样,可以不怕vps宕机网站就要下线了,负载都<1,而且毕竟在不同的公司不同的机房,同时宕机的可能性应该很小。。。宕了就及时在上线一台后端,分担幸存机子的负载
平时我还可以选择连线速度比较快的后端去更新内容,修改本地hosts即可,更新完几乎是双后端及时同步,哇哈哈,太给力了

算算总成本cbt 15 + pt 15 + n个前端(都是类似84的流量变态的廉价vps) 大概50
这样整套估计每天七八十万pv也能从容应对

评分

参与人数 4威望 +24 收起 理由
tc101 + 20 精品文章
yugongtian + 1 看似辛苦不够详细,打字累给给分。。。 ...
Captain + 2 原创内容
河蟹社会 + 1 原创内容

查看全部评分

发表于 2011-2-28 17:53:27 | 显示全部楼层
支持顶不错UP推
发表于 2011-2-28 17:54:08 | 显示全部楼层
这个方法是好,其实还有2个方法的
1。直接利用新版phpmyadmin的同步功能。
2。直接实时2进制同步date目录
发表于 2011-2-28 17:57:30 | 显示全部楼层
对于流量大点的话 会不会很费流量
 楼主| 发表于 2011-2-28 17:58:25 | 显示全部楼层
原帖由 ekucn 于 2011-2-28 17:54 发表
这个方法是好,其实还有2个方法的
1。直接利用新版phpmyadmin的同步功能。
2。直接实时2进制同步date目录


phpmyadmin不是同步一次而已嘛?还能实时同步的?

2。直接实时2进制同步date目录
这个不太明白,用什么工具,怎么就是date目录了???

[ 本帖最后由 stick 于 2011-2-28 17:59 编辑 ]
 楼主| 发表于 2011-2-28 17:59:07 | 显示全部楼层
原帖由 279646202 于 2011-2-28 17:57 发表
对于流量大点的话 会不会很费流量



前端有缓存,图片永久缓存, html内容过缓存期才会再请求
发表于 2011-2-28 18:02:18 | 显示全部楼层

回复 5# 的帖子

实时2进制同步date目录
就是直接把数据库路径,就是那个date目录。指向到类似dropbox这种同步工具的文件夹里面。(dropbox支持2进制差异同步,还有些别的工具也支持)
缺点就是你的独服或者vps要多占30-40mb内存。
 楼主| 发表于 2011-2-28 18:05:56 | 显示全部楼层
原帖由 ekucn 于 2011-2-28 18:02 发表
实时2进制同步date目录
就是直接把数据库路径,就是那个date目录。指向到类似dropbox这种同步工具的文件夹里面。(dropbox支持2进制差异同步,还有些别的工具也支持)
缺点就是你的独服或者vps要多占30-40mb内存。 ...


懂了,只是这样子是同步到dropbox的主机上?还是可以实时镜像到另一台安装了dropbox的vps?
发表于 2011-2-28 18:10:12 | 显示全部楼层

回复 8# 的帖子

你用dropbox可以同步在dropbox的主机上,另一台装了dropbox只要一个帐号同时也会产生一个副本(总共3份)
你用别的工具就要两个vps了
 楼主| 发表于 2011-2-28 18:12:55 | 显示全部楼层
原帖由 ekucn 于 2011-2-28 18:10 发表
你用dropbox可以同步在dropbox的主机上,另一台装了dropbox只要一个帐号同时也会产生一个副本(总共3份)
你用别的工具就要两个vps了


两个vps还是防宕机必需的
双机互备还是直接用mysql本身的功能好,
用dp还要多一个环节的网络开销,延时必定会长一些
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-30 17:53 , Processed in 0.083953 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表