收藏本页 | 网站地图 | 投稿指南
 
 
当前位置:首页 >> 学院首页 >> 数据库 >> Oracle >>

在Windows 2000下优化Oracle9i性能

放大字体  缩小字体  At: 2005-09-04 05:03  By: master8 转载 来源: 互联网
Windows 2000下的Oracle性能优化需要考虑磁盘I/O、CPU、网络子系统、内存几个子系统,这里着重介绍Oracle在Windows 2000环境下的内存调整。

  一、优化磁盘配置
  Oracle是一个磁盘I/O强烈的应用,要确保你恰当地配置磁盘和文件系统:

在磁盘上建立数据文件前首先运行磁盘碎片整理程序
  为了安全地整理磁盘碎片,需关闭打开数据文件的实例,并且停止服务。如果你有足够的连续磁盘空间建立数据文件,那么你就很容易避免数据文件产生碎片。


不要使用磁盘压缩
  Oracle数据文件不支持磁盘压缩。

不要使用磁盘加密
  加密象磁盘压缩一样增加了一个处理层降低磁盘读写速度。如果你担心自己的数据可能泄密,就使用dbms_obfuscation包和label security选择性地加密数据的敏感部分。

不要使用超过70%的磁盘空间
  剩余的磁盘空间存放系统临时数据和作为磁盘碎片整理程序存放中间数据。

使用RAID
  选择硬件RAID超过软件RAID;
  带有硬件RAID控制器;
  日志文件不要放在RAID 5卷上,因为RAID 5读性能高而写性能差。
  把日志文件和归档日志放在与控制文件和数据文件分离的磁盘控制系统。

分离页面交换文件到多个磁盘物理卷
  跨越至少两个磁盘建立两个页面文件。你可以建立四个页面文件并在性能上受益,确保所有页面文件的大小之和至少是物理内存的两倍。


  二、优化CPU使用和配置

取消屏幕保护
  屏幕保护吸取大量的CPU资源而且提供的是对数据库服务器毫无意义的用处,特别要禁止3GL屏幕保护,如果你必须使用屏幕保护就用“空屏幕”减少CPU使用。

把系统配置为应用服务器
  运行控制面板的“系统”,在高级选项卡中设置“性能选项”到“后台程序”,这提供优先权给应用程序,象类似Oracle的服务,反对用户在图形用户界面启动一个笨拙的程序。

监视系统中消耗中断的硬件
  消耗CPU中断和时间的硬件应该避免使用。通常这样的硬件是便宜的因为它把工作载入CPU,而CPU要处理外围的高级性能的硬件,通常需要注意:
  1、支持总线控制的网卡
  2、支持DMA而不支持PIO的磁盘控制器
  使用性能监视器跟踪处理器对象的%Interrupt Time 计数器数值,和这个计数器的基线和标准,然后监视问题。
  3、有利避免中断的方式是使用硬件RAID控制器代替Windows 2000支持的软件RAID。

保持最小的安全审计记录

在专用服务器上运行Oracle
  Oracle是内存消耗大户,不要在执行下列功能的系统上运行Oracle数据库:
  1、主域或备份域控制器(Windows 2000下都称域控制器)
  2、文件服务器
  3、打印服务器
  4、远程访问服务器
  5、路由器、代理或防火墙
  不要使用花哨的壁纸(如果使用,要尽量减小壁纸文件大小)

禁止非必须的服务
  最好禁止系统里非必须的服务,如果时而需要某些服务功能,可将启动类型设置为“手动”,要做到这一点首先同网络管理员验证实际的服务需求:
  1、如果你的系统不需要打印机,通常停止这个服务并设置为手动;
  2、停止License Logging Service服务除非你对它有特殊要求;
  3、不应该使用DHCP服务,并禁止它;
  4、不要自动启动你不需要的程序;
  检查菜单“开始/程序/启动”里的内容,删除不需要的程序。
内存调优方法:
  (一)使用超过4GB的内存
  另外,有办法允许为单个进程或应用分配超过32位地址空间的内存,为实现这一点,Windows 2000使用物理地址扩展(physical address extensions ,或PAE),PAE本质上把地址空间从32位增加到36位,但是必须有Pentium Pro或更新的处理器才能享受这个优势。在Windows NT 4.0下,Intel提供PSE36驱动程序享受全部36位地址空间的优势,但是在Windows 2000 Advanced Server中36位地址空间的支持已经建立在操作系统中,然而,应用程序必须使用地址窗口扩展(Address Windowing Extensions ,或AWE)API写成,Oracle9i 发行号1(Release 1)不支持AWE,所有的Oracle 8i发行号(releases 8.1.5?C8.1.7)都支持AWE。Oracle在9i发行号2(Release 2)中实现了对AWE的支持。

  (二)AWE和Windows 2000
  AWE允许你使用系统中任何附加的超过4GB的内存,为了体现这个优势,你必须有超过4GB的内存,必须有Pentium Pro或更新的处理器,必须运行Windows 2000高级服务器或Windows 2000数据中心服务器,不需要特殊的驱动程序,因为Windows 2000已经支持AWE。

  为了利用这项优势,必须在启动Windows 2000机器时在boot.ini文件中使用/PAE开关,你必须确保运行Oracle服务的帐户有Lock Pages in Memory权限。给运行Oracle服务的帐户增加Lock Pages in Memory权限后,要重新启动OracleService 服务。

  (三)AWE和Oracle
  可以确定,Oracle8i所有发行号版本和Oracle9i发行号2只允许你为数据库块缓冲区配置超过4GB限制的内存空间,因此,要为用户连接释放标准进程地址空间的内存(低于3GB界限的内存)、PGA内存和组成SGA的不同内存缓冲池。

  在初始化参数文件init.ora中要设置参数USE_INDIRECT_DATA_BUFFERS=TRUE,没有这个参数,Oracle不能寻址到4GB以上的地址空间。接下来要设置决定内存使用总量的缓冲池大小,设定DB_BLOCK_SIZE和DB_BLOCK_BUFFERS两个参数。

  在Oracle9i发行号2中,参数DB_BLOCK_BUFFERS被参数DB_CACHE_SIZE所代替,这样就改变了原来指定缓冲区块数到指定缓冲区字节数,同样,也解释了在Oracle9i发行号2的一个数据库中支持多个数据库块大小。无论用哪种办法,如果你设定参数USE_INDIRECT_BUFFERS=TRUE,你将只能定义和使用单个数据库块大小和块缓冲区(就象在9i以前的发行号中),因此,如果缺省数据库块大小是4k、8k或其它,而设置DB_2k_CACHE_SIZE是不允许的。

  接下来需要在注册表中为ORACLE_HOME设置合适的AWE_WINDOW_MEMORY参数值,也就是在HKEY_LOCAL_MACHINE\ Software\Oracle\HOME0下,这个参数指定字节数,如果没有设置,缺省值是1 GB。这个参数的大小取决于你要设置多少缓冲区大小,并视为来自3GB进程地址空间的常规内存。以缓冲区大小为6 GB为例,设置AWE_WINDOW_MEMORY为缺省值1GB,你希望1GB 视为常规内存,并且剩余5GB缓冲区来自4GB限制以上的地址空间。你希望更多的缓冲池尽可能保留在常规地址空间,因为访问超过4GB以上的缓冲池比访问虚拟地址空间缓冲池要慢(尽管仍然比磁盘I/O操作快)。

  (四)解决与AWE相关的内存问题
  需要注意的是每个4GB界限以上的块缓冲区需要在常规地址空间保留大约200字节的缓冲区头,因此,在上面的例子中,我们大约有312000个缓冲区头指向扩展地址空间的缓冲区,缓冲区头大约占80MB常规内存空间,如果数据库块很小,那么这个数量会相当高,因此,必须确保这些缓冲区头、AWE_WINDOW_MEMORY、和所有Oracle.exe进程的内存需求,包括编码、SGA其它组件、PGA内存和每个用户连接栈都适合Oracle.exe进程的常规3GB虚拟地址空间。

  确认你有足够的物理内存处理超过AWE_WINDOW_MEMORY之外的DB_BLOCK_BUFFERS,在我们的例子中定义缓冲池大小为6GB,1GB来自常规地址空间,剩余5GB来自4GB以外的对整个进程有效的系统和进程地址空间,因此,这个例子只能工作在至少有9GB内存的机器上,你还应该为其它进程保留一些空间,只有一个进程可以在某一时刻访问附加的内存。

  象前面所说的那样,/PAE开关只用于系统有超过4GB物理内存的时候,但如果系统内存少于4GB时,也可模仿这项功能。在boot.ini文件中设置MAXMEM参数的值,如下面例子,设为2GB,意味着任何2GB以上的内存都将保留为AWE内存。
  multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced
  Server" /fastdetect /PAE /MAXMEM:2048

为一个数据库使用附加的多个进程
  真正的应用集群(Real Applications Clusters,RAC)提供有多个实例运行和访问同一数据的能力。通常,这用于有两个或多个节点的项目,一个实例运行在每个节点。无论如何,它支持在Oracle9i有两个实例运行在一个节点访问同一个数据库。这能克服每个进程的内存限制,又提供某些其它的利益,如应用程序失败检测。

 






         









 
Google
论坛精华  
 
 
  ©2005-2008 站长吧 Master8.NET All Rights Reserved 陕ICP备05010609号