`

在Windows 2000下优化Oracle9i性能

阅读更多

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、不要自动啟动你不需要的程序; 检查菜单“开始/程序/啟动”裡的内容,删除不需要的程序。 优化网络配置 网络配置是性能调整的一项很重要的内容,而且很容易隐藏性能瓶颈。 配置网卡使用最快速度和有效模式 这针对自动检测,大多数缺省安装是NIC,如果这是可选的就尽量调整为“全双工”和最大化线速度。 删除不需要的网络协议 只保留TCP/IP协议。 优化网络协议绑定顺序 在每个网卡上设置主协议,典型地是TCP/IP,到协议列表的顶端。 为Oracle禁止或优化文件共享 理想地应该禁止文件共享功能来最小化安全洩露和网络交通,但如果你需要使用文件和打印共享,那麼就配置系统中每个网卡的“连接属性”,设置“最大化网络应用程序数据吞吐量” 内存调优 内存优化是Windows平台的关键设置,首先瞭解一下Windows 2000平台的Oracle结构: 基於线程的结构 Windows2000是基於线程的结构,相反,Unix操作系统是基於进程的结构。这意味著Windows中更多的应用,包括Oracle在内,是以带有多个线程的单个进程的形式执行,这种基於线程的结构的确给Window2000带来优势——更容易共享内存。内存空间为每个进程分配,进程间共享内存很笨拙,要使用附加编码,线程是进程的子集,使用比进程少得多的内存。特定进程的所有线程共享同样的进程内存空间,同一进程的线程间共享内存比不同进程共享内存要快,这给基於线程的结构很大优势,更有效。 在服务器上运行的每个应用程序都有一个,而且只有一个进程。进程是应用程序的载体,是用来容纳执行应用程序实际工作的线程的。从用户角度看,进程是不用任何专门工具就可以看到的组件。进程对其他应用程序组件的作用就像容器一样。它持有虚拟的存储空间、数据、系统资源和应用程序设置。虽然线程可以分配、重新分配和释放内存,但是进程接受初始的内存分配,并将它分配到请求内存的所有线程。线程是包含在进程内共享所有进程资源的单个执行路径。它还包含堆栈(存储在内存中的变量和其他数据)、CPU寄存器的状态信息(所以,线程可以恢復它的环境)、和在系统调度程序的执行列表中的一个登录项。每个线程规定了完成任务应用程序需要作的某种工作。 使用Task Manager的主要问题是看不到任何线程。Task Manager被设计成从进程层将应用程序作为整体看待。当然还可以使用性能监视器来监视Windows下的Oracle内存使用。 从“开始/程序/管理工具”选择“性能”啟动“系统监视器”。注意,“性能”包括两个MMC插件:“系统监视器”和“性能日誌和变更”。这时,需要一些被监视的计数器(计数器是一些性能指示器,用於对 Windows 2000的特殊对像进行统计,例如统计特定线程所要求的处理器时间)。单击“添加”按钮(在图中看起来像一个加号),将看到“添加计数器”对话框。首先需要选择想监视的“性能”对象。在包含“进程”对像和“线程”对象的“性能”下拉列表中选择。 进程观察器(Process Viewer)是比较容易检查线程和进程的方法之一。可以在 Windows 2000 Support Tools 或Windows 2000 Resource Kit内找到一些工具。Windows 2000 Support Tools是Windows 2000的一部分,但是并不自动安装。支持安装的Windows Installer文件在%CDROM% UPPORT\TOOLS\目录下。只要在2000RKST.MSJ上右击,并从context菜单上选择安装即可。

内存 基於线程的结构的确有一些内存限制,因为单个进程由线程组成,而进程的地址空间是受限的,因此很少有空间是机动的。因为Windows 2000仍然是32为操作系统,单个进程地址空间被限制在4GB内,其中一半被操作系统保留,这2GB被OS保留的系统内存也被视为系统地址空间,他包括OS内核编码、硬件抽像层编码(HAL)和需要管理进程和OS交互的不同的其它结构,这2GB的系统地址空间是禁止应用程序进程访问的。因此,Windows 2000标準服务器单个应用程序进程可使用内存空间共2GB。在Windows 2000高级服务器啟动文件boot.ini中有/3GB开关,改变这个比例到3GB,这项技术被称作4GB调优(4-gigabyte tuning,或4GT),我们将针对这个问题展开详细讨论。 保留的内存是分配给线程的内存并且留作将来使用,但没有实际使用的内存。因为没有实际使用,因此它对其它进程仍然有效。但是,因为它已经被分配,它仍然由对拥有线程的进程的总的内存限制產生,因此,保留内存的计算针对2GB或3GB的限制,并且进程保留的和使用的内存的总和不能超过这个限制。 除了系统中安装的物理内存之外,Windows 2000还使用虚拟内存。这实际上是驻留在硬盘上的内存。但是Windows 2000使得它对应用程序来说,就像是安装在机器上内存一样。当某个应用程序块要求访问那个内存时,Windows 2000就把另外的内存块复製到磁盘上,而把所要求的内存放到物理内存中,这些内存块的大小是4KB。也就是说,每次应用程序提出对内存的要求时,内存就被分配在4KB的页面内。在磁盘上模拟内存的文件叫做页面调度文件。Virtual Memory Manager(VMM虚拟内存管理器)是操作系统管理机器上的虚拟内存组件。所有的内存访问都通过VMM。这意味著每当操作系统需要进行内存调页时,就要提出VMM请求。 内存调优方法: (一)使用超过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–8.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有两个实例运行在一个节点访问同一个数据库。这能克服每个进程的内存限制,又提供某些其它的利益,如应用程序失败检测。

分享到:
评论

相关推荐

    图解Oracle9i在Windows2000下的安装

    通过图文并茂的方式学习,比如所提供的"图解Oracle9i在Windows2000下的安装(1).mht"和"图解Oracle9i在Windows2000下的安装(2).mht"文件,可以更直观地了解每个步骤,降低出错的可能性,提高学习效率。 总之,安装...

    Oracle9i for Windows NT&2000数据库系统培训教程(基础篇).rar

    Oracle9i是一款由甲骨文公司推出的数据库管理系统,专为Windows NT和2000操作系统设计。本教程“Oracle9i for Windows NT&2000数据库系统培训教程(基础篇)”是针对初学者和想要深入理解Oracle数据库体系结构的专业...

    windows+oracle9i数据库安装配置指导手册

    总的来说,《Windows + Oracle 9i 数据库安装配置指南》将引导你通过整个流程,确保你能够顺利地在Windows环境下搭建并运行Oracle 9i数据库。这份手册详细讲解了每个步骤,对于初学者和有经验的DBA来说,都是宝贵的...

    Oracle9i for Windows NT&2000数据库系统培训教程(高级篇)

    Oracle9i for Windows NT&2000数据库系统是Oracle公司推出的一款强大的关系型数据库管理系统,专为在Windows NT和2000操作系统环境下运行而设计。本高级篇的培训教程旨在帮助用户深入理解并掌握Oracle9i的高级特性和...

    在Windows下管理Oracle9i 服务

    通过深入了解Oracle9i在Windows下的服务管理机制,我们可以更加灵活地根据实际需求调整服务状态,从而达到优化系统性能的目的。无论是通过图形界面还是命令行工具,掌握这些技巧都能够帮助我们在日常工作中更好地...

    Oracle 9i 10g 11g odbc driver数据库连接驱动

    总的来说,Oracle 9i、10g、11g的ODBC驱动是连接Windows平台上应用程序与Oracle数据库的重要工具,它们不断适应Oracle数据库的新特性和性能优化,为开发者提供了灵活、高效的数据访问方式。正确配置和使用这些驱动,...

    windows2003 server oracle9i dataguard max availabilty

    综上所述,"windows2003 server oracle9i dataguard max availabilty"涉及到的是在Windows 2003 Server上使用Oracle 9i DataGuard构建最大可用性的双机配置,以确保数据库的高可用性和数据安全性。这一过程中涉及的...

    oracle 9i for windows nt_2000数据库系统培训教程,如果是系统管理员而且是数据库开发者,那么这是必须的。

    对于Windows NT和2000用户,Oracle 9i提供了稳定性和性能的保证,使得在企业级环境中运行大型数据库成为可能。 二、安装与配置 安装Oracle 9i需要遵循一定的步骤,包括规划硬件和软件环境、安装操作系统组件、设置...

    安装Oracle 9i数据库服务器for windows.rar

    1. **系统需求**:在安装Oracle 9i前,你需要确保你的Windows系统满足最低硬件和软件要求,包括足够的内存、处理器速度、硬盘空间以及兼容的操作系统版本(如Windows NT、2000或XP)。 2. **预安装检查**:在安装前...

    Oracle9i精简版

    7. **性能优化**:尽管功能精简,Oracle9i在性能优化方面并未妥协,依然提供了一些性能调优工具和策略,如SQL优化器、数据库缓存机制等,帮助用户提升数据库运行效率。 8. **数据库连接**:精简版支持多种方式连接...

    精简oracle9i310.rar

    在“精简版”Oracle 9i310.rar中,我们看到的"oracle9i310.msi"是一个Windows安装程序包。这意味着这个版本可能是为Windows操作系统设计的,用户可以通过运行这个MSI文件来安装Oracle 9i数据库。不过,由于是精简版...

    Oracle 9I 入门.rar 教程

    Oracle 9I是Oracle数据库系统的一个重要版本,发布于2001年,它在数据库管理、性能优化、数据安全和网络支持等方面有着显著的改进。这个“Oracle 9I入门”教程旨在帮助初学者理解和掌握Oracle数据库的基础知识,包括...

    Oracle 9i 的安装(图解)

    Oracle 9i是一款由甲骨文公司推出的数据库管理系统,它在2001年发布,提供了许多先进的特性和功能,提升了数据库的性能、可用性和可管理性。在本篇文章中,我们将详细介绍Oracle 9i的安装步骤,帮助你顺利进行系统...

    Oracle 9i RAC 安装手册

    在安装Oracle 9i RAC之前,必须确保所有群集节点都正确地安装了Windows 2000 Advanced Server操作系统。为了实现节点间的通信,需要有名称解析机制,比如DNS或者HOST文件。值得注意的是,程序文件应安装在本地磁盘,...

    oracle9i精简版

    1. `oracle9i310(精简版).msi`:这是一个Windows Installer包,用于安装Oracle9i精简版客户端。用户可以通过运行这个文件来安装必要的组件和服务。 2. `tnsnames.ora`:这是一个重要的配置文件,用于定义数据库...

    Oracle 9i纯Java驱动程序文件

    8. 性能优化:Oracle 9i JDBC驱动通过优化网络传输、缓存机制等手段,提高了与数据库交互的效率。 9. 兼容性:由于是纯Java实现,Oracle 9i JDBC驱动可以运行在各种Java兼容的平台上,包括Windows、Linux、Unix等。...

    Oracle9i手册(chm格式的),欢迎下载

    在Oracle9i手册中,你将找到以下关键知识点: 1. 数据库安装与配置:手册会详细讲解如何在各种操作系统环境下安装Oracle 9i,包括硬件需求、软件配置、网络设置等步骤。此外,还会介绍数据库实例的创建和启动过程。...

    9i客户端 oracle客户端

    在实际应用中,Oracle 9i客户端通常用于开发人员的开发环境、DBA的管理工具以及远程系统对Oracle数据库的访问。其稳定性、兼容性和高效性是其在企业级应用中广泛使用的重要原因。不过,随着技术的发展,Oracle已经...

    oracle9i安装配置管理与相关

    Oracle 9i是一款由甲骨文公司推出的数据库管理系统,它在当时是Oracle数据库的一个重要版本,提供了许多新的特性和改进。以下将详细讲解Oracle 9i的安装、配置、管理和相关知识点。 一、安装Oracle 9i 1. 系统需求...

Global site tag (gtag.js) - Google Analytics