我的互为备份的两台机子启动时怎么占用了大量的内存里cache空间?我如果把一台服务停掉,重起另外一台就没有这个问题,请问这是什么原因,应该如何解决?
是否因为太多的连接并且读写过于频繁,而我只有一个mysql服务的原因?
yejr 回复于:2004-12-26 14:19:07
可能是同步的时间太频繁了,而且数据量大导致的.
mxblovemusic 回复于:2004-12-27 01:33:24
谁能告诉我应该如何减低内存中的cache
北京野狼 回复于:2004-12-27 16:55:38
引用:原帖由 "mxblovemusic" 发表: 我的互为备份的两台机子启动时怎么占用了大量的内存里cache空间?我如果把一台服务停掉,重起另外一台就没有这个问题,请问这是什么原因,应该如何解决?
是否因为太多的连接并且读写过于频繁,而我只有一个mysql..........
我一直想知道怎么做到两个机器的数据库互为备份
能不能说说
yejr 回复于:2004-12-27 19:12:55
跟普通的同步类似,都定义server-id和master-server等相关的参数即可
北京野狼 回复于:2004-12-27 21:43:35
引用:原帖由 "yejr"]跟普通的同步类似,都定义server-id和master-server等相关的参数即可 发表:
那同一段记录,这边update了,那边delete了,那个同步那个
北京野狼 回复于:2004-12-27 22:40:31
引用:原帖由 "北京野狼" 发表:
mysql同步是基于日志的
那同一段记录,这边update了,那边delete了,那个同步那个
yejr 回复于:2004-12-27 22:44:33
看看同步时的先后顺序了 :)
yejr 回复于:2004-12-27 22:45:12
如果出现'脏'数据,就会报错的,那时候只好手工处理一次了
北京野狼 回复于:2004-12-28 00:53:07
引用:原帖由 "yejr"]如果出现'脏'数据,就会报错的,那时候只好手工处理一次了 发表:
老兄,你这不是说梦话吗?
又不是主从关系,那一天脏数据得有几十万个,怎么可能互相同步?
设置什么顺序也没有用,
yejr 回复于:2004-12-28 10:23:51
没人叫你非要做互备不可.
icebolt 回复于:2004-12-28 12:31:46
作同步,没必要作互备份呀,两台机子都操纵主mysql就可以了
北京野狼 回复于:2004-12-28 13:09:12
引用:原帖由 "yejr"]没人叫你非要做互备不可. 发表:
我只是在论坛上,包括web服务器版,看到有很多人说互备这个问题,
楼主也是说自己实现互备。
我只是实在不理解,现在技术怎么先进到这种程度
yejr 回复于:2004-12-28 20:25:57
数据库只能尽量减少'脏'数据的产生,但是如果认为或者程序的不完善产生的就应该调整程序了,不可能什么都想依赖数据库来做这些的.
双机互备确实很简单,自己做一下就知道了.
北京野狼 回复于:2004-12-28 20:43:18
引用:原帖由 "yejr" 发表: 数据库只能尽量减少'脏'数据的产生,但是如果认为或者程序的不完善产生的就应该调整程序了,不可能什么都想依赖数据库来做这些的.
双机互备确实很简单,自己做一下就知道了.
怎么调整程序?
两个数据库既然互备,应用程序怎么知道该往那个数据库进行写操作。
你告诉我对与互备的两个数据库,应用程序往那个数据库进行写
yejr 回复于:2004-12-28 21:16:36
双机互备一般用意是作为热备份的替代.
既然是"双机",那么程序里肯定可以指定只往哪个机器写数据,即使在同一台机器上,也必然有2个不同的端口什么的.
当然,使用dns轮询的情况比较特殊,但是似乎很少有对数据库服务器做dns论询的吧,即使做了,也一样可以指定只往某个服务器写数据的.
北京野狼 回复于:2004-12-28 21:43:38
引用:原帖由 "yejr" 发表: 双机互备一般用意是作为热备份的替代.
既然是"双机",那么程序里肯定可以指定只往哪个机器写数据,即使在同一台机器上,也必然有2个不同的端口什么的.
当然,使用dns轮询的情况比较特殊,但是似乎很少有对数据库服务器?.........
我就是不理解做互备干什么。你这样的话干吗不做主从互备有什么意义
数据库服务器做dns论询太可怕了吧,有那个系统的数据库是在外网的?
在内网就算做均衡也用不找dns轮询
yejr 回复于:2004-12-28 22:01:39
我做互备只是出于技术上的兴趣,实际中我估计不会这么做的.
有次一个网友跟我讨论这个问题,他是来做类似镜像的功能的,2个服务器一个在网通,一个在电信,要使双方的数据尽量保持一致,因此才这么做的.
北京野狼 回复于:2004-12-28 22:04:19
引用:原帖由 "yejr" 发表: 我做互备只是出于技术上的兴趣,实际中我估计不会这么做的.
有次一个网友跟我讨论这个问题,他是来做类似镜像的功能的,2个服务器一个在网通,一个在电信,要使双方的数据尽量保持一致,因此才这么做的.
既然另一个根本不能写,那还叫什么互备?
数据只有一致和不一致,好像没有什么尽量保持一致的说法。
算了,不讨论这个问题了。谢谢
mxblovemusic 回复于:2004-12-29 01:41:53
希望大家能够回答我的问题:怎么减少cache。谢谢
北京野狼 回复于:2004-12-29 10:24:46
引用:原帖由 "mxblovemusic"]希望大家能够回答我的问题:怎么减少cache。谢谢 发表:
不能给世界上不存在的系统,提供帮助
双眼皮的猪 回复于:2004-12-30 14:04:03
互相备份,不一定是为了load balance,也可以是仅仅做个备份而已...
存在即合理....
当然单向的比较合适...如果只是备份的话...
北京野狼 回复于:2004-12-30 16:16:36
引用:原帖由 "双眼皮的猪" 发表: 互相备份,不一定是为了load balance,也可以是仅仅做个备份而已...
存在即合理....
当然单向的比较合适...如果只是备份的话...
不存在的也是合理的。
那你讲讲,怎么配置的互相备份,怎么实现
同一段记录,这边update了,那边delete了
双眼皮的猪 回复于:2005-01-01 14:12:13
我做过,也成功了,双向复制不过是打开两放的log-bin,写写配置文件而已,没什么别的....
我有篇文档写了...很简单的做法...您可以了解一下...
btw:如果您做过,就知道其实很简单。至于怎么实现的,则是有两个线程,sql thread和I/O thread的结果...您可以看看为mysql做replication哪个人的文档....并有部分代码...
我只是应用,怎么实现,则是mysql组织的事情...我的文章里也说过这个...
您看看,最后,想说一句,不喜欢你这咄咄逼人的语气...
我的blog上有该文章:
http://blog.csdn.net/lalphbet/archive/2004/12/21/223749.aspx
北京野狼 回复于:2005-01-02 16:48:58
引用:原帖由 "双眼皮的猪" 发表: 我做过,也成功了,互相备份不过是打开两放的log-bin,写写配置文件而已,没什么别的....
我有篇文档写了...很简单的做法...您可以了解一下...
btw:如果您做过,就知道其实很简单。至于怎么实现的,则是有两个线?.........
我真是想知道,你的数据库两边都能自由读写,而且实现双向同步?
最近手便服务器都不用mysql暂时没有办法自己试验.
北京野狼 回复于:2005-01-04 13:57:56
引用:原帖由 "双眼皮的猪" 发表: 我做过,也成功了,互相备份不过是打开两放的log-bin,写写配置文件而已,没什么别的....
我有篇文档写了...很简单的做法...您可以了解一下...
btw:如果您做过,就知道其实很简单。至于怎么实现的,则是有两个线?.........
今天刚有空仔细看了一下你的文章,没看出任何同一个表互相备份的信息。
不知道大家是不是都在梦中做的互相
yejr 回复于:2005-01-04 19:29:30
哈哈,自己做一次不就知道了,只需要2台机器或者1台机器的2个端口便可,没什么困难的.
不做当然想象不出来到底行不行了.
北京野狼 回复于:2005-01-04 20:41:39
引用:原帖由 "yejr" 发表: 哈哈,自己做一次不就知道了,只需要2台机器或者1台机器的2个端口便可,没什么困难的.
不做当然想象不出来到底行不行了.
不用做,我也知道不行。
要不你再给我一篇怎么配置的文档
yejr 回复于:2005-01-04 21:16:16
呵呵,很抱歉,我比较擅长do it,而不是在这里say sth.
北京野狼 回复于:2005-01-04 21:57:13
引用:原帖由 "yejr"]呵呵,很抱歉,我比较擅长do it,而不是在这里say sth. 发表:
擅长做的人都很令人佩服
不过您回复了那么多,肯定你也没做成功过
yejr 回复于:2005-01-05 17:17:02
呵呵,如果我告诉你我做过2次,不知道你会有什么反映.
第一次属于摸索,半天时间就做完了,而且双边mysql]版本不同,且操作系统是从freebsd4.7到redhat9.0的双向同步.
第二次是redhat9.0和7.3之间的mysql4.1.7双向同步,只用了1个小时.
北京野狼 回复于:2005-01-05 18:07:27
引用:原帖由 "yejr" 发表: 呵呵,如果我告诉你我做过2次,不知道你会有什么反映.
那我就不理解你,我都问你7,8边能不能两边同时写,会不会出现脏数据。
总是不肯回答。
yejr 回复于:2005-01-05 20:58:36
我确实没有明确的回答,但是从我的回复中不难看出:
1. 肯定可以2边同时写数据
2. 出现'脏'数据的可能性还是不小的
3. 出现'脏'数据的解决方案也不是不存在的
为了测试'脏'数据的问题,我还特地做了相关测试,确实会存在'脏'数据,但是既然做互备了,就肯定要考虑到这个问题,在应用程序级别上就应该做相关的分离了,而且这个也是很简单就能做到的.
总结一下:双机互备完全那可行,但是为了数据的完整性最好还是只往其中一个机器上写数据,另一个读; 或者根据数据库或者数据表来决定该往哪边写数据,这就最大限度避免了上述问题.
最后,建议你还是自己做一下吧试验.
北京野狼 回复于:2005-01-05 21:21:22
引用:原帖由 "yejr" 发表: 我确实没有明确的回答,但是从我的回复中不难看出:
1. 肯定可以2边同时写数据
2. 出现'脏'数据的可能性还是不小的
3. 出现'脏'数据的解决方案也不是不存在的
为了测试'脏'数据的问题,我还特地做了相关测试,确实会..........
谢谢,你是第一个回答说可以两边同时写。
同时写那就是实现真正意义上的互备了,但是随便就
出现'脏'数据还叫什么互备。
只往其中一个机器上写数据,那就更没什么意义了
yejr 回复于:2005-01-06 08:57:26
无话可说.
wangyih 回复于:2005-01-06 13:43:14
数据库做互相同步完全就是扯淡,只要两边一同时写,立刻就完蛋。
根本就不存在这样的技术
双眼皮的猪 回复于:2005-01-17 14:58:14
对有些人表示强烈鄙视...
stonerose 回复于:2005-02-22 14:10:55
引用:原帖由 "北京野狼" 发表:
那同一段记录,这边update了,那边delete了,那个同步那个
哪台修改了,另一台也修改。目的是保证两台机器的数据一致。
stonerose 回复于:2005-02-22 14:27:36
引用:原帖由 "wangyih" 发表: 数据库做互相同步完全就是扯淡,只要两边一同时写,立刻就完蛋。
根本就不存在这样的技术 怎么是扯谈?你做过吗?
大雪飞扬 回复于:2005-02-25 14:31:05
呵呵,看了大家的讨论,感觉:
1、数据库间同步在两边同时进行修改操作是会出现“脏”数据,这一点需要靠应用程序来解决。
2、配置成一个读,一个写,应该是一个不错的解决方案
wangyih 回复于:2005-02-25 21:18:37
引用:原帖由 "大雪飞扬" 发表: 呵呵,看了大家的讨论,感觉:
1、数据库间同步在两边同时进行修改操作是会出现“脏”数据,这一点需要靠应用程序来解决。
2、配置成一个读,一个写,应该是一个不错的解决方案
兄弟一个读,一个写那还是互备吗?
aiwei 回复于:2005-03-13 22:30:30
在理论上互备是可以的(小弟是根据Mysql 的HOWTO来理解),但实际上我做的互备只维持了20几个小时就崩掉了.郁闷
jim.ma 回复于:2005-03-19 21:11:07
:shock:
...........看到后面怎觉得不太像讨论技术了。
第八天 回复于:2005-05-18 18:19:08
真正意义上的双机互备是不支持的!这里是mysql官方文档的说法:
MySQL replication currently does not support any locking protocol between master and slave to guarantee the atomicity of a distributed (cross-server) update. In other words, it is possible for client A to make an update to co-master 1, and in the meantime, before it propagates to co-master 2, client B could make an update to co-master 2 that will make the update of client A work differently than it did on co-master 1. Thus, when the update of client A makes it to co-master 2, it will produce tables that are different than what you have on co-master 1, even after all the updates from co-master 2 have also propagated. This means that you should not co-chain two servers in a two-way replication relationship unless you are sure that your updates can safely happen in any order, or unless you take care of mis-ordered updates somehow in the client code
tiandexiao 回复于:2005-08-13 09:45:57
我也不知道如何解决这样的问题噢。
|