Chinaunix

标题: mysql如何才能做到互备 [打印本页]

作者: 北京野狼    时间: 2005-10-24 14:07
标题: mysql如何才能做到互备
既然这么多人感兴趣mysql的互备,
那我告诉大家mysql要做到互备的前提条件,免得越来越多的人
在这个无聊的问题上陷入太深

1。数据库不能有自增字段
2。不能有主键
3。数据库操作不能有delete和update操作
4。还没想好
作者: wangyih    时间: 2005-10-25 09:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: ipaddr    时间: 2005-10-25 10:26
标题: mysql如何才能做到互备
不能有主键,不能delete update,还叫啥数据库呀?

那叫互备吗?
作者: ipaddr    时间: 2005-10-25 10:27
标题: mysql如何才能做到互备
Mysql互备,逻辑上是有问题的,而且,实际操作当中,肯定会出问题的.
作者: dujunjie    时间: 2005-10-25 11:15
标题: mysql如何才能做到互备
恩,我一直在测试,如果真的条件那么苛刻,那还这么备干吗。
在测试中,我遇到了各种个怎样的郁闷问题。
等我弄好以后,会写个详细的文档告诉大家的。嘿嘿
作者: 北京野狼    时间: 2005-10-26 09:34
标题: mysql如何才能做到互备
原帖由 "ipaddr" 发表:
不能有主键,不能delete update,还叫啥数据库呀?

那叫互备吗?


想互备,就得将就点。
能insert,select也能起到数据库的作用啊
作者: ipaddr    时间: 2005-10-26 14:14
标题: mysql如何才能做到互备
不能有主键,不能用自动增长的字段,就受很大限制了。

实际系统中,哪个系统不会用主键?绝大多数都会用自动增长ID做为主键。
作者: yejr    时间: 2005-10-27 08:31
标题: mysql如何才能做到互备
个人认为互备在目前情况下没有多少实际意义。
作者: ministar    时间: 2005-10-27 08:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: ministar    时间: 2005-10-27 11:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: 北京野狼    时间: 2005-10-27 16:36
标题: mysql如何才能做到互备
[quote]原帖由 "ministar"]如果只是单向同步呢?还有这么多要求么?[/quote 发表:


单向的同步,
需要最好两台机器和至少一根网线
作者: 北京野狼    时间: 2005-10-31 09:26
请宣扬做过互备的同学指正
作者: wolfop    时间: 2005-10-31 16:23
看看怎么做了,在什么系统上做,打算做到那个级别的容灾,呵呵。
如果条件具备,还是可以
数据库有自增字段、有主键、数据库操作都允许。
作者: 北京野狼    时间: 2005-11-01 10:37
原帖由 wolfop 于 2005-10-31 16:23 发表
看看怎么做了,在什么系统上做,打算做到那个级别的容灾,呵呵。
如果条件具备,还是可以
数据库有自增字段、有主键、数据库操作都允许。


您老兄还是每次看清楚再说。

无论怎么做了,无论什么系统上做,无论打算做到那个级别的容灾,都做不到双机互备。
作者: wolfop    时间: 2005-11-01 18:42
原帖由 北京野狼 于 2005-11-1 10:37 发表


您老兄还是每次看清楚再说。

无论怎么做了,无论什么系统上做,无论打算做到那个级别的容灾,都做不到双机互备。

你的双机互备的概念是什么?我用hacmp+san能不能?
莫名其妙。
作者: 北京野狼    时间: 2005-11-02 09:37
原帖由 wolfop 于 2005-11-1 18:42 发表

你的双机互备的概念是什么?我用hacmp+san能不能?
莫名其妙。



双机互备就四个字,不清楚可以查金山词霸。
大家讨论的双机互备不是容灾,也不需要HA。

您到一个板块发言,多少要搞清楚状况。上次您非说mysql没有在线备份,
这次您又如此,对我有什么意见直接说。
作者: gagapp    时间: 2005-11-02 11:35
那单向备份设置是怎么样的.我用的4.1.9的MYSQL总是不成功
作者: stonerose    时间: 2005-11-02 15:26
不能有主键?我原来测试就是有主键的,实际操作也是可以,当然只是简单的测试。
作者: wolfop    时间: 2005-11-02 19:15
原帖由 北京野狼 于 2005-11-2 09:37 发表



双机互备就四个字,不清楚可以查金山词霸。
大家讨论的双机互备不是容灾,也不需要HA。

您到一个板块发言,多少要搞清楚状况。上次您非说mysql没有在线备份,
这次您又如此,对我有什么意见直接说。

我是对你意见很大,金山词霸是查中文含义的?搞笑。
你倒是说说双机互备是什么意思?这个意思你来定义?
mysql我现在还是坚持认为没有好的在线备份机制,不信自己看看文档,只要有myisam表,在线备份的时候要求不能修改,搞笑。
作者: wolfop    时间: 2005-11-02 19:20
双机互备,在双机热备的基础上,两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。这种方式实际上是双机热备的一种应用。它避免了两个应用使用四台服务器分别实现双机热备。
作者: 北京野狼    时间: 2005-11-03 09:16
原帖由 wolfop 于 2005-11-2 19:20 发表
双机互备,在双机热备的基础上,两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。这种方式 ...



到一个版还是要了解一个版的风格。
在Mysql版,有很多人阐述可以双机互备——两台PC实时互备,都做主机不是备机,同时服务。
砸场子前还是看清楚好
作者: 北京野狼    时间: 2005-11-03 11:53
原帖由 wolfop 于 2005-11-2 19:15 发表

我是对你意见很大,金山词霸是查中文含义的?搞笑。
你倒是说说双机互备是什么意思?这个意思你来定义?
mysql我现在还是坚持认为没有好的在线备份机制,不信自己看看文档,只要有myisam表,在线备份的时候要 ...


金山词霸可以查中文含义,你都不知道,怎么什么都不知道。

mysql在线备份机制非常健全,无论是不是myisam表,无论怎么修改。我每天上千万的数据库,都是Replication同步。
全世界掌握mysql的,大概只有您认为不健全。
作者: wolfop    时间: 2005-11-17 14:54
原帖由 北京野狼 于 2005-11-3 09:16 发表



到一个版还是要了解一个版的风格。
在Mysql版,有很多人阐述可以双机互备——两台PC实时互备,都做主机不是备机,同时服务。
砸场子前还是看清楚好

就是说白了你在偷换概念?
作者: wolfop    时间: 2005-11-17 15:16
原帖由 北京野狼 于 2005-11-3 11:53 发表


金山词霸可以查中文含义,你都不知道,怎么什么都不知道。

mysql在线备份机制非常健全,无论是不是myisam表,无论怎么修改。我每天上千万的数据库,都是Replication同步。
全世界掌握mysql的,大概只有您 ...

查中文含义,呵呵,不好意思,我的机器只有2002版本,从来没有见到什么中文含义。
OK,我们来看看mysql手册中关于备份的原话:
Because MySQL tables are stored as files, it is easy to do a backup. To get a consistent backup, do a LOCK TABLES on the relevant tables, followed by FLUSH TABLES for the tables. See Section 13.4.5, “LOCK TABLES and UNLOCK TABLES Syntax” and Section 13.5.5.2, “FLUSH Syntax”. You need only a read lock; this allows other clients to continue to query the tables while you are making a copy of the files in the database directory. The FLUSH TABLES statement is needed to ensure that the all active index pages are written to disk before you start the backup.

至于mysqlhotcopy呢,呵呵:
mysqlhotcopy is a Perl script that was originally written and contributed by Tim Bunce. It uses LOCK TABLES, FLUSH TABLES, and cp or scp to make a backup of a database quickly. It is the fastest way to make a backup of the database or single tables, but it can be run only on the same machine where the database directories are located. mysqlhotcopy works only for backing up MyISAM. It runs on Unix and NetWare.



请问你是否看到,如果为了得到一致的备份需要LOCK相关的TABLE,这叫做完善的在线备份机制?
见过DB2 ORACLE INFORMIX SYBASE FIREBIRD做在线备份需要LOCK相关TABLE的?复杂的OLTP系统,我看LOCK TABLE都不够,不如整个数据库LOCK算了。
倒是和DB2再使用循环日志的时候的离线备份类似,先把数据切换到静止模式,踢吊别人的连接,不许更新了来个离线备份。

本来innobase是提供了基于日志的重做机制,可以实现真正意义的在线备份(不需要对表锁定也能保证一致性)但是由于mysql必须保持部分表必须是myisam表。所以还是只解决了一半问题。
作者: 北京野狼    时间: 2005-11-18 11:19
原帖由 wolfop 于 2005-11-17 14:54 发表

就是说白了你在偷换概念?



不要总是出来诬蔑,是你不理解概念。
我发主题帖子的时候,不知道世界上有您。
作者: 北京野狼    时间: 2005-11-18 11:21
原帖由 wolfop 于 2005-11-17 15:16 发表

查中文含义,呵呵,不好意思,我的机器只有2002版本,从来没有见到什么中文含义。
OK,我们来看看mysql手册中关于备份的原话:
Because MySQL tables are stored as files, it is easy to do a backup. To ge ...


金山词霸从第一版就可以中文英文都能翻译,解释。
如果你的实在不能,你可以去投诉
作者: wolfop    时间: 2005-11-18 15:14
原帖由 北京野狼 于 2005-11-18 11:21 发表


金山词霸从第一版就可以中文英文都能翻译,解释。
如果你的实在不能,你可以去投诉

不要恼羞成怒的样子,是可以翻译,但是不能查到含义,呵呵看看我的截图,附件里面。

scr.jpg (171.11 KB, 下载次数: 65)

截图

截图

作者: 北京野狼    时间: 2005-11-18 15:36
原帖由 wolfop 于 2005-11-18 15:14 发表

不要恼羞成怒的样子,是可以翻译,但是不能查到含义,呵呵看看我的截图,附件里面。

我是对你意见很大,金山词霸是查中文含义的?搞笑。


这句话汉语什么意思?是金山词霸能不能查中文,还是金山词霸查不到中文。
你精神是否正常?
对我有意见去找老fan投诉啊,我请你来和我讨论了?是你自己蹦出来的非要胡搅蛮缠的。

[ 本帖最后由 北京野狼 于 2005-11-18 15:56 编辑 ]
作者: myuhan    时间: 2005-11-18 16:29
学习学习
作者: wolfop    时间: 2005-11-20 12:01
原帖由 北京野狼 于 2005-11-18 15:36 发表




这句话汉语什么意思?是金山词霸能不能查中文,还是金山词霸查不到中文。
你精神是否正常?
对我有意见去找老fan投诉啊,我请你来和我讨论了?是你自己蹦出来的非要胡搅蛮缠的。

吼吼,有人自己偷换概念,然后说别人胡搅蛮缠?
我到看看谁有点不正常了。
作者: ipaddr    时间: 2005-11-20 22:15
没必要咬文爵字吧.

大家只是讨论.
作者: ipaddr    时间: 2005-11-20 22:16
北方狼提出的观点还是不错的.

虽然不是完美,但至少让大家知道,Mysql互备存在的问题.
作者: 北京野狼    时间: 2005-11-21 09:27
原帖由 wolfop 于 2005-11-20 12:01 发表

吼吼,有人自己偷换概念,然后说别人胡搅蛮缠?
我到看看谁有点不正常了。


你看不懂就说换概念,你精神病吧。
这概念在这个mysql版有一两年了,不是我提出来的,也不是
谁为你提出来的.
换概念?,和傻子讲什么概念
作者: wangyih    时间: 2005-11-22 11:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: 北京野狼    时间: 2005-11-23 10:13
楼上的,好像不太靠谱吧。
没什么区别
作者: macrodba    时间: 2005-12-01 17:07
我测试过了可以delete 可以update 都可以的
作者: 网络混混    时间: 2005-12-01 19:14
原帖由 北京野狼 于 2005-10-27 16:36 发表
[quote]原帖由 "ministar"]如果只是单向同步呢?还有这么多要求么?[/quote 发表:


单向的同步,
需要最好两台机器和至少一根网线



我就不能在一个机器上装两个数据库吗?
一个做备份,嘎嘎。。。。。。。。。
作者: macrodba    时间: 2005-12-02 09:48
原帖由 网络混混 于 2005-12-1 19:14 发表



我就不能在一个机器上装两个数据库吗?
一个做备份,嘎嘎。。。。。。。。。


一个机器上可以装两个数据库的。,例如:在/usr/local/mysql   和 /usr/macro/mysql  安装完后可以更改他们的端口一个是3306一个是3307,还socket 位/tmp/mysql.sock  和 /var/tmp/mysql.sock这样就可以了
作者: 北京野狼    时间: 2005-12-02 10:21
原帖由 macrodba 于 2005-12-1 17:07 发表
我测试过了可以delete 可以update 都可以的



这个问题实在没必要再讨论,前三个条件都必须满足。
主键不用试,想想就知道。

delete ,update 你多试试各种环境
作者: 34010493    时间: 2005-12-27 17:06
单项同步很简单。。。 互相备份要看bleeding edge...
作者: 北京野狼    时间: 2005-12-28 13:22
bleeding edge?

什么意思
作者: wxgchinaunix    时间: 2005-12-28 15:46
ding,我也搞过好几次,都不行,我看他们的配置向导好象没楼主说的问题,关注中
作者: ttvast    时间: 2007-01-05 12:12
双机互备,随时都能配置一个出来,但是配置出来的东西在很多情况下没有应用价值,我还要实现它干什么呢?

不过我想到了一个冷备系统的方案,就是一个主库,一个备库,平时写操作只在主库上进行,但是如果主库当了,把所有写库的操作转移到备库上进行,等主库恢复了,等待主库与备库同步后,在转移写操作回主库。不过这样的方案实现起来非常复杂。而且,实际上也不是双机互备的关键意义所在。
作者: yueliangdao0608    时间: 2007-01-05 13:04
只搞过单向。来着路过。
作者: qlks    时间: 2007-01-05 14:35
什么叫互备?
概念都没搞清楚
作者: lvscluster    时间: 2007-01-05 16:48
原帖由 ttvast 于 2007-1-5 12:12 发表
双机互备,随时都能配置一个出来,但是配置出来的东西在很多情况下没有应用价值,我还要实现它干什么呢?

不过我想到了一个冷备系统的方案,就是一个主库,一个备库,平时写操作只在主库上进行,但是如果主库当 ...



骂人————————————屏蔽

odin_free编辑

[ 本帖最后由 odin_free 于 2007-1-8 12:30 编辑 ]
作者: yejr    时间: 2007-01-05 17:25
原帖由 lvscluster 于 2007-1-5 16:48 发表



你不要丢人现眼, 不懂还喜欢装懂。 真是作孽!

你到底懂不懂什么叫备,什么叫主吗? 你知道为什么要这么做吗?

你做过主----主吗? 滚一边去。菜鸟


你说的那个什么冷备? 备你去死。fish


这里只讨论,不是让你骂人的。
作者: lvscluster    时间: 2007-01-05 18:07
原帖由 yejr 于 2007-1-5 17:25 发表


这里只讨论,不是让你骂人的。



感觉爽了很多
作者: showsa    时间: 2007-01-05 20:10
1 自增id是可以的,比如有个帖子提到 奇数偶数自增的
2 主键,这个还不是很明白
3 update delete肯定不能有的,犯了逻辑错误
作者: HonestQiao    时间: 2007-01-06 11:47
原帖由 北京野狼 于 2005-10-24 14:07 发表
既然这么多人感兴趣mysql的互备,
那我告诉大家mysql要做到互备的前提条件,免得越来越多的人
在这个无聊的问题上陷入太深

1。数据库不能有自增字段
2。不能有主键
3。数据库操作不能有delete和update操作 ...


楼主列的这些,是表示这些概念是错误的吧。
作者: likuku    时间: 2007-01-06 16:38
看了这么多,解决问题的方法就是,不用mysql
作者: qlks    时间: 2007-01-07 20:24
楼上的又来了,我就不多说你了,请看我下面的分析吧

这个话题我可以做个总结了
LZ的讨论应该是Multi master,多主方式
mysql肯定是可以的
多主方式类似于Oracle的高级复制,单主方式应该可以说类似于Oracle的Data guard

http://bbs.chinaunix.net/viewthr ... &extra=page%3D1
这个帖子有朋友问到我这样的问题
首先这个问题mysql的multi-master确实可能会有问题,但是发生的可能性有多少?
其次multi-master不是应用于这个方面的,别把自己对于mysql的应用就理解于论坛
比如在电信,移动这些行业中multi-master完全解决过去single master的问题
最后,即使作为Oracle的高级复制来实现multi-master问题也是很多很多,需要一些优先机制来解决这位朋友提出的问题
所以说,就如前面有朋友提到的,具体问题具体来分析,具体的应用
作者: ttvast    时间: 2007-01-07 22:09
版主阿,你怎么不在我的帖子后面恢复,游到这里来了阿。
你这样一说我就清楚了阿,multi-master的确不是一点没有用,但是一定要确定应用环境。

还有oracle的data guard好像很垃圾阿,记得以前我们单位用这东西的时候,我看到有很多限制。(同步速度不够快,要在data guard上作查询还要停掉同步之类的问题)。
作者: 北京野狼    时间: 2007-01-08 23:04
原帖由 qlks 于 2007-1-7 20:24 发表
楼上的又来了,我就不多说你了,请看我下面的分析吧

这个话题我可以做个总结了
LZ的讨论应该是Multi master,多主方式
mysql肯定是可以的
多主方式类似于Oracle的高级复制,单主方式应该可以说类似于Oracle的 ...


搞不懂你说的multi-master是什么意思。 当初我发这个帖子是针对论坛里面
无数人提出的双主同时运行。同时作为主服务器,同时提供服务,不是通过HA。
这些人理解的配置就是同时在两台服务器上配置repl,互相做主从。
作者: qlks    时间: 2007-01-09 08:59
原帖由 北京野狼 于 2007-1-8 23:04 发表


搞不懂你说的multi-master是什么意思。 当初我发这个帖子是针对论坛里面
无数人提出的双主同时运行。同时作为主服务器,同时提供服务,不是通过HA。
这些人理解的配置就是同时在两台服务器上配置repl,互相 ...


我哪里有说过HA,我只不过说的是多主的情况
你只知道双主?三主,四主的结构看到过吗?
你还是先去看看手册吧
作者: ttvast    时间: 2007-01-09 09:41
原帖由 qlks 于 2007-1-9 08:59 发表


我哪里有说过HA,我只不过说的是多主的情况
你只知道双主?三主,四主的结构看到过吗?
你还是先去看看手册吧


斑竹给我解释一下三主的结构是怎么配置和运作的吧
作者: 北京野狼    时间: 2007-01-09 20:52
原帖由 qlks 于 2007-1-9 08:59 发表


我哪里有说过HA,我只不过说的是多主的情况
你只知道双主?三主,四主的结构看到过吗?
你还是先去看看手册吧


满足不了我说的前三个条件,mysql做不到互备,用不着做梦
作者: linuxrich    时间: 2008-03-05 22:16
到底mysql能不能互备啊
作者: yueliangdao0608    时间: 2008-03-06 00:11
原帖由 北京野狼 于 2007-1-9 20:52 发表


满足不了我说的前三个条件,mysql做不到互备,用不着做梦



晕,两年前的帖子!
现在你说的三个条件完全可以实现!
作者: 北京野狼    时间: 2008-03-06 09:50
原帖由 yueliangdao0608 于 2008-3-6 00:11 发表



晕,两年前的帖子!
现在你说的三个条件完全可以实现!



2. 主键的问题只能靠应用程序去避免,不能两边都注册yueliangdao0608吧,依赖应用程序也不算真正的互备。
3. 两边同时对一个ID 执行update和delete操作, 谁同步谁,  还有更复杂的一些存储过程操作不可能同步。


很久没来mysql版了。
作者: yueliangdao0608    时间: 2008-03-06 10:14
原帖由 北京野狼 于 2008-3-6 09:50 发表



2. 主键的问题只能靠应用程序去避免,不能两边都注册yueliangdao0608吧,依赖应用程序也不算真正的互备。
3. 两边同时对一个ID 执行update和delete操作, 谁同步谁,  还有更复杂的一些存储过程操作不可 ...



你说的这个问题在现在的解决方案中叫做负载均衡,比如前端加一个LVS就可以控制永远不能两边同时UPDATE或者DELETE操作。
作者: 北京野狼    时间: 2008-03-06 10:47
原帖由 yueliangdao0608 于 2008-3-6 10:14 发表



你说的这个问题在现在的解决方案中叫做负载均衡,比如前端加一个LVS就可以控制永远不能两边同时UPDATE或者DELETE操作。



老实说俺也不看好mysql的lvs.    用LVS对Mysql cluster倒是可以实现负载均衡再加上HA保障。

但是这和大家讨论的互备是两回事。   我坚决反对的是双向repl做互备, 完全是扯蛋。
作者: yueliangdao0608    时间: 2008-03-06 10:55
原帖由 北京野狼 于 2008-3-6 10:47 发表



老实说俺也不看好mysql的lvs.    用LVS对Mysql cluster倒是可以实现负载均衡再加上HA保障。

但是这和大家讨论的互备是两回事。   我坚决反对的是双向repl做互备, 完全是扯蛋。


请教一下,你们生产环境用的是什么样的?
作者: 北京野狼    时间: 2008-03-06 11:19
现在使用oracle,所以mysql版来的少。 现在最高版本的mysql功能不太清楚。 用过低版本Mysql cluster, 感觉不好。

mysql性能并不差, 大数据大访问都可以承受,只是不适合高稳定环境,以及ERP等复杂应用。在mysql高级功能还不够健全的情况, 还是使用mysql的简单功能和应用上。 人为的搞复杂,最后崩溃的是自己,
作者: showsa    时间: 2008-03-07 18:15
哈哈




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2