在Oracle数据库的现有系统构造下,redolog担负了很大的压力。这是因为所有提交给数据库的交易都必需在commite确认前穿越LGWR历程将相干消息写入redolog,而一个oracle实例只有一个LGWR历程,并且在UNIX系统上该历程是一个单线程过程,所以能运行在一个内核上。在前期的主机系统上这个问题并不严重,然而随着多内核/多线程技巧的进展,现在曾经有了能够扶持128个内核/256个线程的主机,而且扶持更多内核和线程的主机即刻揭示,这个问题将出现得更加深重。
你遐想一下如收获景,就能够感受到LGWR历程的境地:有一个水池(redolog),只有一个人(LGWR)能够把水桶(transsion)里的水(transsion data)倒进去,这个人的边上站了127个人(server processor)不时的争相把手中的水桶(transsion)交到他的手中。
固然我们很怜惜这个晦气的老兄,然而由于oracle这个黑心的老板不甘心给它加派人手,我们也只好想想其它措施来加快他的工作速度了,例如强劲一下他的体格可能改革一下水池构造,让他工作起来迅捷一点。本文即便谈论如何让LGWR历程工作起来更管用率。
由于现在的主机不扶持不同型号的CPU混用,因而给他吃独食(用高功能CPU运行该历程)是不可能了。然而我们能够让垄断系统的历程调动过程给它开小灶,让它的运行优先级比其它oracle历程高,可能宽畅把它设为实时历程,让他尽量不受垄断系统历程调动的波及,尽也许多地挪借CPU工夫,从而到达让它多干活的目标。
那么如何改革水池(也即便redolog文件)呢?其实很容易,即便把它放到最快的存储装备上就行了。
内存毫无疑问是全副计算机系统中我们能够设置的最快存储装备,穿越memory FS可能ramdisk软件,我们就能够在系统的内存空间中分出一局部来存储redolog文件。这个措施乍看起来确乎不错,我们所必需付出的即便多买点内存。然而精细想想,就会感受有问题了。为什么呢?万一主机或主机上ti.tianan-tep.com的软件(如:垄断系统/数据库/利用)揭示问题导致系统crash,oracle数据的全面性就没法保证了。因而我提倡,除非你的系统是拿来演示系统功能的,如TPCC测验,就不要利用这个措施。
另外一个抉择的可靠性就强多了,速度也很不错,惋惜即便一个字:贵!好在支撑如此宏伟和忙碌的业务系统的用户确定不缺钱,因而该当问题不大。废话说了许多,答案究竟是什么?cache LUN!现在市场上有一些厂商(如惠普/HDS)的***级磁盘阵列扶持在它的内部cache中划一局部出来存储一些对速度要求极高的数据,这局部的CACHE在主机看来和等闲磁盘空间未曾差异,然而由于这些数据是存在磁盘阵列的cache里,无须要写入物理硬盘,因而功能奇快。至于数据的平安性,由于高端存储都有专程的电源设计用来保证即便表面电源断电,CACHE中的数据也不会失落,加上这些存储的扼制软件可靠性极高,大约上不存在软件crash的可能性co.cosibo.com.cn,因而该当能够塌心。
万一很不幸,你的老板是既要马儿跑又要马儿不吃草的主,不甘心出钱利用cache LUN,那就只能尽量利用良好的存储装备,然后琢磨它的手册,把这个存储的每一滴血都榨出来。一个必需当心的事项是存储redolog的装备尽量不要与存储数据库其它文件的装备互相扰乱。万一可能,良好把redolog和其它文件放在不同的存储装备上。
关于极高负荷情形下的Oracle redolog的问题就介绍到这里,希望通过本次的介绍能够带给您一些收获,谢谢了!
【编辑推荐】