图1在公司收益与投入成本计算方面取得一个平衡,则是我们所希望的在线效率,但是收益与成本的计算方法则是决策者与实施者需要着重考虑的问题了,也是我们下面希望能试图解释的问题。二、Oracle高可用相关功能的产品概述 因为高可用的范围定义太广泛,本文我们只讨论与Oracle数据库有关系的高可用设计,如数据库主机的错误,数据所在的存储错误,介质损坏以及主机与数据的冗余保护等等,并不讨论应用层的设计,Oracle 提供支持high availability 相关产品主要有下面几种: (1) Oracle Parallel Server(8i)/ Real Application Cluster(9i/10g)
图2 2、Advanced Replication /Stream Advanced Replication/Stream用于高可用,一般是指对数据库的整个复制,假如数据库在异地,也还可以用于容灾,所以,假如该技术用的好,是一个非常不错的选择。
图3如上图的结构中,主站点可以在城东,被复制站点可以在城西或者更远的地方,数据通过城市网络传向被复制站点,在stream中,传送的可以是被分析过的LCR anydata数据结构,到目标数据库的时候再解析成对应的DML语句实现同步。这样的话,主站点与被复制的站点可以分别的被应用访问,虽然被复制站点可能比主站点的数据要延迟一些。 正因为Advanced Replication/Stream既实现了高可用,又实现了容灾,在大型的在线电子商务网站中,一般使用成熟的share plex软件实现读写分离,读的站点可以分布在世界各地,既大大提高了网站系统的可用性,又大大提高了数据的安全性。 3、Standby/Data Guard Standby/Data guard因为技术简单成熟,成本低廉(Oracle自带的功能,不需要单独购买),是广泛采用的一种数据库的高性能与容灾方案,假如采用不同保护级别可能会有不同的性能结果,如想不丢失数据,则可能会影响性能,假如想最好的性能,则一定注重保证在主节点完全故障的时候,备用节点不会丢失数据。
图4备用数据库可以认为是一个主数据库的镜相,一个处于不断恢复日志中的主数据库。从9i开始,备用数据库又分为物理备用数据库与逻辑备用数据库,我们这里只讨论物理备用数据库。 Standby/Data guard实现了数据库的高可用以及数据的异地容灾,与Advanced Replication/Stream不一样的是,备用站点不能实时的被访问,降低了资源的利用程度,而且假如主站点故障,一般需要手工切换。 但是,正因为其方便的治理,成熟的技术,低廉的价格,所以也被广泛的使用在数据的容灾上面,假如与RAC结合,RAC+Data Guard可以实现一个良好的高可用,高性能的数据库。 4、OS相关HA HA很类似于RAC,两种方式,都需要两个Server,一个闲置。 在主机crash 的情况下,都可以提供某种程度的恢复,保持系统可用。 不过一个是OS Vendor的solution,一个是Oracle的solution,如,在一个 一备三 的系统结构中:
图5在以上的结构中,正在被使用的数据库服务器有3台,其中3台中任何一台发生故障,可以被一台备用主机接管,等待发生故障的机器修复,再手工切换会原来的结构。 HA的最好好处就是可以解决服务器的单点故障的问题,如机器故障,与Rac一样,并不能解决磁盘故障问题或者是阵列故障问题。所以HA也必须采用附加的备份机制如LV镜相与卷复制,或配套使用oracle standby。 HA的机制起源比较早,发展到现在已经日趋成熟,在实际安例中,使用还是比较广泛的,但是它必须有一半的资源处于等待状态,所以资源浪费跟standby一样,比较严重。 四、Oracle高可用相关功能的对比说明与方案选择 通过以上的具体说明,我们描绘了Oracle数据库在高可用性方面可以达到的效果以及特性,并且从原理上与构架上,我们也可以分析到其成本(包括治理成本),再加上其技术的成熟程度以及使用程度,我们以一张表格来对照一下:
图六注①:这里指单独的使用该功能,但是假如与LV Mirror/ Volume Replication/Data guard等功能结合起来,是可以实现数据保护与容灾功能的,假如设计合理,在灾难切换时,也可以保证不丢失任何数据,但是也需要为以上功能付出更多的成本。 新闻热点
疑难解答