我的互为备份的两台机子启动时怎么占用了大量的内存里cache空间
我的互为备份的两台机子启动时怎么占用了大量的内存里cache空间?我如果把一台服务停掉,重起另外一台就没有这个问题,请问这是什么原因,应该如何解决?
是否因为太多的连接并且读写过于频繁,而我只有一个mysql服务的原因?
我的互为备份的两台机子启动时怎么占用了大量的内存里cache空间?我如果把一台服务停掉,重起另外一台就没有这个问题,请问这是什么原因,应该如何解决?
是否因为太多的连接并且读写过于频繁,而我只有一个mysql服务的原因?
yejr 回复于:2004-12-26 14:19:07 |
可能是同步的时间太频繁了,而且数据量大导致的. |
mxblovemusic 回复于:2004-12-27 01:33:24 |
谁能告诉我应该如何减低内存中的cache |
北京野狼 回复于:2004-12-27 16:55:38 |
[quote:cd11e11cc7="mxblovemusic"]我的互为备份的两台机子启动时怎么占用了大量的内存里cache空间?我如果把一台服务停掉,重起另外一台就没有这个问题,请问这是什么原因,应该如何解决? 是否因为太多的连接并且读写过于频繁,而我只有一个mysql..........[/quote:cd11e11cc7] 我一直想知道怎么做到两个机器的数据库互为备份 能不能说说 |
yejr 回复于:2004-12-27 19:12:55 |
跟普通的同步类似,都定义server-id和master-server等相关的参数即可 |
北京野狼 回复于:2004-12-27 21:43:35 |
[quote:59f6a2ab2a="yejr"]跟普通的同步类似,都定义server-id和master-server等相关的参数即可[/quote:59f6a2ab2a] 那同一段记录,这边update了,那边delete了,那个同步那个 |
北京野狼 回复于:2004-12-27 22:40:31 |
[quote:aba8c8e98b="北京野狼"] mysql同步是基于日志的 那同一段记录,这边update了,那边delete了,那个同步那个[/quote:aba8c8e98b] |
yejr 回复于:2004-12-27 22:44:33 |
看看同步时的先后顺序了 :) |
yejr 回复于:2004-12-27 22:45:12 |
如果出现脏数据,就会报错的,那时候只好手工处理一次了 |
北京野狼 回复于:2004-12-28 00:53:07 |
[quote:a2b959ecba="yejr"]如果出现脏数据,就会报错的,那时候只好手工处理一次了[/quote:a2b959ecba] 老兄,你这不是说梦话吗? 又不是主从关系,那一天脏数据得有几十万个,怎么可能互相同步? 设置什么顺序也没有用, |
yejr 回复于:2004-12-28 10:23:51 |
没人叫你非要做互备不可. |
icebolt 回复于:2004-12-28 12:31:46 |
作同步,没必要作互备份呀,两台机子都操纵主mysql就可以了 |
北京野狼 回复于:2004-12-28 13:09:12 |
[quote:3dbcf7cad3="yejr"]没人叫你非要做互备不可.[/quote:3dbcf7cad3] 我只是在论坛上,包括web服务器版,看到有很多人说互备这个问题, 楼主也是说自己实现互备。 我只是实在不理解,现在技术怎么先进到这种程度 |
yejr 回复于:2004-12-28 20:25:57 |
数据库只能尽量减少脏数据的产生,但是如果认为或者程序的不完善产生的就应该调整程序了,不可能什么都想依赖数据库来做这些的. 双机互备确实很简单,自己做一下就知道了. |
北京野狼 回复于:2004-12-28 20:43:18 |
[quote:16b7a99873="yejr"]数据库只能尽量减少脏数据的产生,但是如果认为或者程序的不完善产生的就应该调整程序了,不可能什么都想依赖数据库来做这些的. 双机互备确实很简单,自己做一下就知道了.[/quote:16b7a99873] 怎么调整程序? 两个数据库既然互备,应用程序怎么知道该往那个数据库进行写操作。 你告诉我对与互备的两个数据库,应用程序往那个数据库进行写 |
yejr 回复于:2004-12-28 21:16:36 |
双机互备一般用意是作为热备份的替代. 既然是"双机",那么程序里肯定可以指定只往哪个机器写数据,即使在同一台机器上,也必然有2个不同的端口什么的. 当然,使用dns轮询的情况比较特殊,但是似乎很少有对数据库服务器做dns论询的吧,即使做了,也一样可以指定只往某个服务器写数据的. |
北京野狼 回复于:2004-12-28 21:43:38 |
[quote:0dfde7f461="yejr"]双机互备一般用意是作为热备份的替代. 既然是"双机",那么程序里肯定可以指定只往哪个机器写数据,即使在同一台机器上,也必然有2个不同的端口什么的. 当然,使用dns轮询的情况比较特殊,但是似乎很少有对数据库服务器?.........[/quote:0dfde7f461] 我就是不理解做互备干什么。你这样的话干吗不做主从互备有什么意义 数据库服务器做dns论询太可怕了吧,有那个系统的数据库是在外网的? 在内网就算做均衡也用不找dns轮询 |
yejr 回复于:2004-12-28 22:01:39 |
我做互备只是出于技术上的兴趣,实际中我估计不会这么做的. 有次一个网友跟我讨论这个问题,他是来做类似镜像的功能的,2个服务器一个在网通,一个在电信,要使双方的数据尽量保持一致,因此才这么做的. |
北京野狼 回复于:2004-12-28 22:04:19 |
[quote:2b7967d4f6="yejr"]我做互备只是出于技术上的兴趣,实际中我估计不会这么做的. 有次一个网友跟我讨论这个问题,他是来做类似镜像的功能的,2个服务器一个在网通,一个在电信,要使双方的数据尽量保持一致,因此才这么做的.[/quote:2b7967d4f6] 既然另一个根本不能写,那还叫什么互备? 数据只有一致和不一致,好像没有什么尽量保持一致的说法。 算了,不讨论这个问题了。谢谢 |
mxblovemusic 回复于:2004-12-29 01:41:53 |
希望大家能够回答我的问题:怎么减少cache。谢谢 |
北京野狼 回复于:2004-12-29 10:24:46 |
[quote:49a4956ab1="mxblovemusic"]希望大家能够回答我的问题:怎么减少cache。谢谢[/quote:49a4956ab1] 不能给世界上不存在的系统,提供帮助 |
双眼皮的猪 回复于:2004-12-30 14:04:03 |
互相备份,不一定是为了load balance,也可以是仅仅做个备份而已... 存在即合理.... 当然单向的比较合适...如果只是备份的话... |
北京野狼 回复于:2004-12-30 16:16:36 |
[quote:084fa0693e="双眼皮的猪"]互相备份,不一定是为了load balance,也可以是仅仅做个备份而已... 存在即合理.... 当然单向的比较合适...如果只是备份的话...[/quote:084fa0693e] 不存在的也是合理的。 那你讲讲,怎么配置的互相备份,怎么实现 同一段记录,这边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 |
[quote:d1c6bedce1="双眼皮的猪"]我做过,也成功了,互相备份不过是打开两放的log-bin,写写配置文件而已,没什么别的.... 我有篇文档写了...很简单的做法...您可以了解一下... btw:如果您做过,就知道其实很简单。至于怎么实现的,则是有两个线?.........[/quote:d1c6bedce1] 我真是想知道,你的数据库两边都能自由读写,而且实现双向同步? 最近手便服务器都不用mysql暂时没有办法自己试验. |
北京野狼 回复于:2005-01-04 13:57:56 |
[quote:de0df09c75="双眼皮的猪"]我做过,也成功了,互相备份不过是打开两放的log-bin,写写配置文件而已,没什么别的.... 我有篇文档写了...很简单的做法...您可以了解一下... btw:如果您做过,就知道其实很简单。至于怎么实现的,则是有两个线?.........[/quote:de0df09c75] 今天刚有空仔细看了一下你的文章,没看出任何同一个表互相备份的信息。 不知道大家是不是都在梦中做的互相 |
yejr 回复于:2005-01-04 19:29:30 |
哈哈,自己做一次不就知道了,只需要2台机器或者1台机器的2个端口便可,没什么困难的. 不做当然想象不出来到底行不行了. |
北京野狼 回复于:2005-01-04 20:41:39 |
[quote:978e1ed581="yejr"]哈哈,自己做一次不就知道了,只需要2台机器或者1台机器的2个端口便可,没什么困难的. 不做当然想象不出来到底行不行了.[/quote:978e1ed581] 不用做,我也知道不行。 要不你再给我一篇怎么配置的文档 |
yejr 回复于:2005-01-04 21:16:16 |
呵呵,很抱歉,我比较擅长do it,而不是在这里say sth. |
北京野狼 回复于:2005-01-04 21:57:13 |
[quote:94c07b16f6="yejr"]呵呵,很抱歉,我比较擅长do it,而不是在这里say sth.[/quote:94c07b16f6] 擅长做的人都很令人佩服 不过您回复了那么多,肯定你也没做成功过 |
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 |
[quote:df5039d941="yejr"]呵呵,如果我告诉你我做过2次,不知道你会有什么反映. [/quote:df5039d941] 那我就不理解你,我都问你7,8边能不能两边同时写,会不会出现脏数据。 总是不肯回答。 |
yejr 回复于:2005-01-05 20:58:36 |
我确实没有明确的回答,但是从我的回复中不难看出: 1. 肯定可以2边同时写数据 2. 出现脏数据的可能性还是不小的 3. 出现脏数据的解决方案也不是不存在的 为了测试脏数据的问题,我还特地做了相关测试,确实会存在脏数据,但是既然做互备了,就肯定要考虑到这个问题,在应用程序级别上就应该做相关的分离了,而且这个也是很简单就能做到的. 总结一下:双机互备完全那可行,但是为了数据的完整性最好还是只往其中一个机器上写数据,另一个读; 或者根据数据库或者数据表来决定该往哪边写数据,这就最大限度避免了上述问题. 最后,建议你还是自己做一下吧试验. |
北京野狼 回复于:2005-01-05 21:21:22 |
[quote:2854f0a4c4="yejr"]我确实没有明确的回答,但是从我的回复中不难看出: 1. 肯定可以2边同时写数据 2. 出现脏数据的可能性还是不小的 3. 出现脏数据的解决方案也不是不存在的 为了测试脏数据的问题,我还特地做了相关测试,确实会..........[/quote:2854f0a4c4] 谢谢,你是第一个回答说可以两边同时写。 同时写那就是实现真正意义上的互备了,但是随便就 出现脏数据还叫什么互备。 只往其中一个机器上写数据,那就更没什么意义了 |
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 |
[quote:048cf60135="北京野狼"] 那同一段记录,这边update了,那边delete了,那个同步那个[/quote:048cf60135] 哪台修改了,另一台也修改。目的是保证两台机器的数据一致。 |
stonerose 回复于:2005-02-22 14:27:36 |
[quote:7714dae378="wangyih"]数据库做互相同步完全就是扯淡,只要两边一同时写,立刻就完蛋。 根本就不存在这样的技术[/quote:7714dae378]怎么是扯谈?你做过吗? |
大雪飞扬 回复于:2005-02-25 14:31:05 |
呵呵,看了大家的讨论,感觉: 1、数据库间同步在两边同时进行修改操作是会出现脏数据,这一点需要靠应用程序来解决。 2、配置成一个读,一个写,应该是一个不错的解决方案 |
wangyih 回复于:2005-02-25 21:18:37 |
[quote:7a56eea064="大雪飞扬"]呵呵,看了大家的讨论,感觉: 1、数据库间同步在两边同时进行修改操作是会出现脏数据,这一点需要靠应用程序来解决。 2、配置成一个读,一个写,应该是一个不错的解决方案[/quote:7a56eea064] 兄弟一个读,一个写那还是互备吗? |
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 |
我也不知道如何解决这样的问题噢。 |