RAC 学习笔记(3)-性能和扩展性

来源:互联网 发布:淘宝网拍模特怎么入行 编辑:程序博客网 时间:2024/06/05 19:27
Oracle和DB2的对比

性能和扩展性

RAC 通过共享缓冲架构(Shared cache architecture)提供平滑的应用扩展性。不需要数据分区来扩展。可使用普通的标准服务器,存储设备和网络部件。允许简单的增加一个节点到集群里,无需下线应用。

增加节点
Shared-nothing的数据分区,在增加一个新的服务器到居群时是非常耗时和昂贵的。因为需要根据新的分区映射,进行重新的数据分区。

一个DB2 ESE 数据库的DBA增加一个节点的步骤。
  1. 增加硬件
  2. 配置新的分区(设置分区参数等)
  3. 在大的分区里重新分布数据。占用了DBA的工作和影响了down机时间。
在RAC里面,步骤如下
  1. 增加硬件
  2. 配置一个新的实例(设置实例参数等)
无需数据重新分区,没有离线维护,无缝的扩展升级。RAC允许增加节点而不打断数据库的访问。


性能:OLTP应用(OnLine Transation Process)
在OLTP应用中,通过吞吐量(每单位时间完成的事务数量)或者反应时间(一个事务要占用的时间)来衡量。

RAC里,事务提交更新数据依赖于运行事务节点上写入的一个日志。如果事务需存取被其他集群节点修改的数据,这些块(Blick)通过高速的内部连接从集群里面的另一个节点传递过来,不使用磁盘的I/O操作。优化了信息流通,解决了内部节点的缓冲冲突。

DB2里,任何事物修改了超过一个分区的数据,系统必须使用二阶段提交(tow-phase commit)协议啦确保跨多个机器的事务完整性。你至少要等待二次日志写入和一次 round-trip(信息传送于2端的防范时间) 信息的时间才能提交数据。而且如果不是在一个分区关键字上查询,而是在索引上,将会引起所有分区的广播。这将引起多个分区检测所有的查询而没有分区裁减。在访问另一个分区的数据将引起内部节点间的数据传递,即使那个数据自上次访问后没有更改过。为了减少内部节点的通信,可以在每个分区创建表格的复制品。 然而,复制表格需要额外的空间和更新数据时的性能恶化。




性能:数据仓库(Data Warehousing)和商务智能(Business Inteligence)应用
DB2 根据表格的分区策略进行并行查询
RAC根据CPU的数量和要访问的文件数量进行动态决策,会考虑仓库的当前负荷。

RAC内部动态将不能并行执行分发给不同的处理器和节点。可以减少内部节点在查询期间的通讯量。



原创粉丝点击