免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3287 | 回复: 9
打印 上一主题 下一主题

Solaris10下的 oracle 10g,做HA最简单的方法是什么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-20 23:48 |只看该作者 |倒序浏览
有两台 solaris10的 pc,都有两个硬盘,用zfs做mirror

用sun cluster 或者 oracle的 rac,好像都是要求有一个共用的外部存储,像这样

      
                    service
                          |
=========network=========
                 /               \
               /                   \         
        SERVER1 -----  SERVER2
              \                     /         
                \                 /                        
           _________________
           | external   storage  |
           ---------------------   




分别有各自的mirror,存储方面的可靠性已经很高了

能不能不用共用的存储,分别用各自的存储,但是又能实现HA?

比如这样


                    service
                          |
=========network=========
                 /               \
               /                   \         
        SERVER1 -----  SERVER2
          |                              |
______________       _____________
| internal storage |     | internal storage|  
-----------------       ---------------


两台pc,两个mirror,这对于很大一部分企业级应用,已经能满足可靠性需求了,有没有这种简单的方法呢

论坛徽章:
0
2 [报告]
发表于 2009-02-21 00:51 |只看该作者
没有仲裁机制,可靠性不高。

论坛徽章:
7
荣誉会员
日期:2011-11-23 16:44:17水瓶座
日期:2013-08-28 21:20:16丑牛
日期:2013-10-02 21:01:462015年迎新春徽章
日期:2015-03-04 09:54:45操作系统版块每日发帖之星
日期:2016-06-05 06:20:0015-16赛季CBA联赛之吉林
日期:2016-06-20 08:24:0515-16赛季CBA联赛之四川
日期:2016-08-18 15:02:02
3 [报告]
发表于 2009-02-21 12:20 |只看该作者
那样的话,你需要安装一个文件系统同步的软件,确保oracle所在的文件系统能够在两个节点上同时被更新数据库的数据

论坛徽章:
0
4 [报告]
发表于 2009-02-21 15:49 |只看该作者
原帖由 zjxjs 于 2009-2-21 00:51 发表
没有仲裁机制,可靠性不高。


server之间的连线不就是心跳线么,仲裁监控之类的功能可以在上面跑

论坛徽章:
0
5 [报告]
发表于 2009-02-21 15:50 |只看该作者
原帖由 nimysun 于 2009-2-21 12:20 发表
那样的话,你需要安装一个文件系统同步的软件,确保oracle所在的文件系统能够在两个节点上同时被更新数据库的数据



就是说用rac的功能,但是用另外的软件实现两个数据库文件的同步,是这个意思么

有没有案例或者现有的方案

论坛徽章:
0
6 [报告]
发表于 2009-02-22 05:43 |只看该作者
原帖由 morrow 于 2009-2-21 15:49 发表


server之间的连线不就是心跳线么,仲裁监控之类的功能可以在上面跑


Sorry,我所说的仲裁是指可靠的仲裁,据我接触过的案例,如果是PC,用直连心跳线作为仲裁的话,如果线路中断,备用机器会认为对方已经死掉,马上会抢占资源(IP、应用服务)引起冲突,两个都会死翘翘的。

常用的做法都是多种心跳(网线、串口)加磁盘仲裁来保证集群的正常工作。

如果集群不需要写数据的,用你所说的那种方式可以提供“有风险”的服务,例如apache等应用。


HA与RAC是有所区别的,HA是主备模式,RAC是并发模式。RAC的第一个要求就是有共享的文件系统。
HA可以参考版主的思路,采用同步文件架构,主机数据库文件改动后,同步到备用机上,但又有个风险:数据库文件改动后,来不及同步到备用机器上的时候已经死掉,备用机上的数据是不完整的,因此同步频率需要高,会增加主机的负荷。

[ 本帖最后由 zjxjs 于 2009-2-22 06:23 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-02-22 11:47 |只看该作者
原帖由 zjxjs 于 2009-2-22 05:43 发表


Sorry,我所说的仲裁是指可靠的仲裁,据我接触过的案例,如果是PC,用直连心跳线作为仲裁的话,如果线路中断,备用机器会认为对方已经死掉,马上会抢占资源(IP、应用服务)引起冲突,两个都会死翘翘的。

...


记得有个东西是模拟外部存储阵列的,如果用zfs mirror作为共享存储,模拟成为外部阵列就好办了

个人认为zfs mirror比普通的raid1还要可靠得多

论坛徽章:
2
丑牛
日期:2014-06-11 13:55:04ChinaUnix元老
日期:2015-02-06 15:16:14
8 [报告]
发表于 2009-02-22 11:53 |只看该作者
不用共同的存儲,數據同步比較痲煩~

论坛徽章:
0
9 [报告]
发表于 2009-02-22 12:19 |只看该作者
你的数据和应用的连续性重要吗? 如果重要,花点小钱买个小阵列值得的;
如果不重要?那用什么双机?单机的可靠性也够了;

论坛徽章:
0
10 [报告]
发表于 2009-02-22 14:02 |只看该作者

我的理解

我感觉, 单机很难做到HA, 因为如果单机crash了, 用户无法继续访问数据了。 所以要用cluster模式。

关于要用到shared storage , zjxjs 解释的挺好的,而且app software 和 config 文件 最好也都放到shared storage上 。

oracle rac 并不能保证HA, 因为他的 fencing 机制 是 node fencing (基于server的),所以还要放到 solaris cluster 之类的 clusterware 上。

个人感觉, Oracle 和 Sun 各自的clusterware 并不出色, 在安装 Oracle 的时候 你需要决定是安装在裸设备(raw device)上, 还是放到 FS 上, 因为你要考虑ORACLE的performance。但同时你又要考虑 对oracle rac 的管理的问题。也就是说 将rac 放到 oracle clusterware 或 Solaris cluster 从目前效果看,并不理想

参看文档
http://docs.sun.com/app/docs/doc/820-2574/fmnyo?a=view

从文档中看出 若将rac (包括datafile, redo logfile , control file) 放到 Solaris cluster 的FS上 , 该产品支持的FS似乎只有 QFS 。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP