【RAC】10条RAC常用优化方向

2010-11-29  张林 

写在前面的话:Oracle的RAC技术不是一个以提高系统性能为目的的技术,该技术重点侧重的是高可用性和系统的可扩缩性。
在单实例上运行效率低下的系统,切换到RAC环境下,往往运行效果将更加的低下。这往往与RAC的Cache Fusion特性有关。
在使用RAC数据库的时候我们要本着扬长避短的原则,了解其本身限制的出处,然后有的放矢的使用。

1.优化Application
无论在单实例数据库环境还是RAC环境,通过优化应用程序来改善系统运行效率的方法都是最有效和最显著的。
友情提示:DBA要全程进入到项目开发的整个生命周期,前期的设计最终决定了系统的质量。

2.避免长时间全表扫描
在RAC多节点架构结构中,当节点未请求到本地节点高速缓存中所需数据时,默认会去其他节点检查是否已经有曾经被缓存的数据,因此,应该尽最大限度的减少GCS的请求带来的开销。

3.调整优化Database Buffer Cache
这是一个普遍的优化法则。具体优化方法根据系统的真实环境进行调整。

4.适当引入分区技术
适当并正确的使用分区技术可以减少RAC节点间的通讯量。
使用Hash散列分区技术可以有效减少缓冲区争用的问题(是否使用散列分区技术需要评估,需要考虑到该技术带来的负面因素)。
对特定实例中的特定范围的值进行查询和修改密集型的系统可以适当的引入Range范围分区和List列表分区技术。

5.尽量减少不必要的分析
不必要的分析会增加RAC节点间的通讯量,这样会严重影响RAC的性能,因此建议不要做不必要的分析。

6.采用自动段空间管理
因为自动段空间管理可以提供实例与表块的关联。

7.使用Sequence并增加Cache的大小
增加Sequence的Cache大小可以有效的避免序列争用的问题,尤其需要注意的是:不要使用表来实现Oracle序列的功能,因为如果使用表来完成唯一编号的生成将会给系统带来非常大的争用问题。

8.谨慎对待锁定
如果应用程序设计过程中给系统带来过多的潜在锁定因素,在RAC环境中这将是比较致命的隐患。单实例中的锁等待问题会在RAC环境被放大。

9.删除不必要的索引
在数据库设计过程中,索引的设计应该遵循的一个原则是“事出有因”。即要清楚地明白每一个索引存在的价值,该索引都会为哪些SQL服务。删除那些那些极耗资源的非选择性索引。

10.网络环境的优化
因为节点间的通讯是RAC的瓶颈,因此优化节点间网络环境也是RAC有效的优化手段。使用专用网络提供RAC节点间的互联,具体采用什么样的设备只能根据具体预算来看了。目标是:保证不因网络的硬件环境及配置问题影响到RAC运行性能。

11.小结
以上给出的10条RAC优化建议仅仅是最普遍的方法。RAC的应用场景很多,最重要的是针对实际的运行场景给出有针对性的优化方案。
欢迎提出您的宝贵建议。
http://space.itpub.net/519536/viewspace-680531
402°/4029 人阅读/0 条评论 发表评论

登录 后发表评论