存档

2011年5月 的存档

传统的Oracle的高可用方案必须基于共享存储设备,不管是双机主备模式,还是Oracle RAC,数据库必须放在共享的SAN存储上,通过HA或集群软件实现高可用。Oracle DataGuard是很好的容灾软件,但是作为HA解决方案,功能有很多局限性,比如数据丢失,应用透明切换,只能读无法写(11g)等等,目前都没有非常好的解决方案。
自从固态存储技术出现后,单机的IO能力大幅度提升,比如采用PCIE接口的fusionio卡,单块卡就可以提供数万IOPS的能力,单机的IO能力已经超过了传统的磁盘存储。但是,一直困扰我们的是,如何解决无共享存储环境下Oracle数据库的高可用问题?我们团队设计了一种架构,提供简单可靠的高可用功能。
Oracle+fusionio+DataGuard的高可用解决方案
方案简述:利用fusionio卡的强大的IO能力,取代传统存储设备,双机采用DataGuard复制,将主库的controlfile和redo放在一套共享的存储设备上。当主机发生故障时,利用共享存储上的controlfile和redofile将standby数据库恢复到一致状态。
硬件:DELL R710,48G mem,Fusionio ioDrive 320G(数据文件),6×300G SAS RAID10(归档文件)。
存储:SAN存储,存放主库的controlfile与redofile,与其他数据库共用,性能与空间要求不高。
软件:Veritas Cluster Service,提供HA功能,自定义切换脚本。
切换步骤:
1.关闭standby;
2.指向共享存储上主库的redofile和controlfile;
3.mount standby;
4.recover database;
5.open database。
优点:
1.零数据丢失;
2.简单,可靠;
3.应用透明切换;
4.对存储性能要求不高;
5.适合读多写少应用,提升读性能。
缺点:
1.依然需要共享存储,但是可以与其他系统共用;
2.切换时间依赖standby恢复时间,必须保证standby恢复的进度;
3.共享的redofile可能会成为写入瓶颈,最好使用配置write cache的存储。
改进计划:
1.实现类似switchover的功能,主备互相切换,无需人工干预;
2.本地fusionio空间不足时,可以将部分数据放在共享存储上,实现混合存储。
–EOF–
目前,这个方案已经通过初步验证,进入方案完善阶段。如果有兴趣,可以与我一起探讨,并不断改进。

5 30th, 2011 | Filed under 大话技术
标签: ,

最近这几年,参与了几个项目,积累了一点经验。我理解的所谓经验,其实就是通过大量的实际应用积累的最佳实践,这种经验是非常有价值的,因为它们是建立在大量实践的基础之上,具备真实性和普遍性。
我们面临的大部分技术问题,都是关于技术方向和架构的选择,我们需要从众多的技术方案中找到最佳方案。因为我所处的环境,可以接触到各种各样的环境,见过或者解决过很多问题,所以也积累了很多最佳实践。我想可以把这些经验分享给其他人,让大家少走弯路。
我有一个想法,为大家提供一些关于数据库方面的咨询服务,比如硬件选型,容量规划,数据库架构,性能调优等,只要不涉及公司的利益,我会知无不言,言无不尽,希望可以对大家有所帮助。当然,我的建议仅供参考,最重要的还是要积累属于自己的最佳实践,因为不存在最优的方案,只有最适合自己的方案。
我的联系方式:freezr@gmail.com。
–EOF–

5 23rd, 2011 | Filed under 大话技术