技术开发 频道

SQL Server 2005 VS. Oracle:高可用性对比

    计划停机时间 

    在执行例行系统维护的同时提供数据库可用性,以及恢复由于应用程序故障或其他事件而丢失的数据,在这两方面 SQL Server 2005 和 Oracle 10g 均提供了一组独特的可用性功能。下面一节将讨论不同数据库功能,这些功能设计用于促进操作持续性和提供数据保护,以防止受到目前的企业数据库平台中的数据损坏的影响。

  • 针对服务器维护的数据库高可用性解决方案

    目前的服务器硬件非常可靠,所有主要硬件供应商均为主要系统组件提供了很多冗余功能,不过,硬件和操作系统维护与升级始终是不可避免的。

  • 硬件升级与维护

    Microsoft Windows Server™ 2003 支持热切换 RAM 和 RAID 驱动器,可满足最常见的硬件升级场景:为系统增加内存和磁盘容量的需要。使用支持这些功能的硬件,可以在系统运行时动态地添加 RAM 和 RAID 驱动器,而不会对可用性造成影响。即使这样,仍然会需要进行例行硬件维护。例如,系统日志中某个时间指示某个系统组件出现了问题,或者需要应用要求重新启动系统的操作系统和应用程序级的服务包(service pack)。在单服务器环境中,此类事件会带来计划系统停机时间。计划停机对操作的持续性影响比非计划停机要小,因为可以计划在影响最小的时候进行。 

    不过,即使是计划的停机时间,对那些要求最大可用性水平的组织也代价巨大。为了满足例行维护和所需的停机时间的需要,目前所有可用的企业数据库平台都支持多服务器集群和其他可用性功能,以使 IT 人员能够进行轮换升级。Microsoft Windows Clustering Services 和 Oracle 的 RAC 都支持进行轮换升级,允许您手动将集群中的一台或一个系统组从网络中断开,以执行例行的维护工作。例如,如果有个要求具有全天候可用性的应用程序,则可以使用某个多服务器集群技术或其他可用技术在数据库平台上实现该技术。然后,当需要执行维护工作时,启动一个手动故障转移,以将需要维护的节点的工作负载关闭。然后就可以在该节点脱机时对其进行维修、升级或修补。其余的集群节点或后备服务器将在所维护的节点不可用时承担其工作负载。因此,不会有应用程序可用性损失。该过程结束后,可以将此节点还原到集群中,恢复正常操作。如果需要,可以对其他集群节点重复此过程。执行轮换升级,就消除了与例行维护关联的计划停机时间。

  • 数据库维护

    数据库维护是高效且高可用的数据不可或缺的部分。需要对索引进行维护、需要执行优化、需要执行备份,如此等等。良好的操作计划会将一定的数据库维护时间考虑到其中。不过,数据库维护时间并不一定与数据库停机时间相等。可以使用若干工具帮助 DBA 消除性能和停机时间的负面影响,并提高例行数据库维护任务期间的正常运行时间。 


    为了便于联机服务器和数据库维护,SQL Server 2005 允许对大部分 SQL Server 系统属性进行动态配置。下表列出了可以联机更改的服务器属性。 

    为了便于联机服务器和数据库维护,SQL Server 2005 允许对大部分 SQL Server 系统属性进行动态配置。下表列出了可以联机更改的服务器属性。

    SQL Server 2005 独有索引碎片整理语句,允许对表和视图上的聚集索引和非聚集索引进行联机碎片整理。DBCC INDEXDEFRAG 语句并不会长时间占用锁定,因此不会阻塞任何正在运行的查询和更新。SQL Server 2005 和 Oracle 10g 都包含联机索引操作,可提高数据可用性、响应时间、磁盘空间利用率和数据库性能。可以对索引进行碎片整理、添加或重新生成,而同时能够继续对基础表数据进行查询或更新。 

    在每种数据库解决方案中均具有综合数据库优化工具,能提高性能(即使用户负载和查询会随时间而发生变化)。这些工具给 DBA 提出建议,以通过各种方式非常好的地利用配置设置,例如监视和分析查询语句的操作,以及监视磁盘 I/O 子系统的性能。

计划外停机时间

    每个不同的企业级数据库平台都使用其自己的方法和技术的不同组合,提供了类似级别的高可用性。正如您可以预料的,不同的高可用性解决方案提供不同程度的服务器故障和数据破坏保护,而不同的方法会带来不同的成本开销,其中既有购买解决方案所需的技术开销,也包括解决方案实现和操作所必需的人员方面支出的成本。

0
相关文章