选择显示字体大小

优化调整oracle 8i数据库


 
  oracle 8i数据库服务器是高度可优化的软件产品,经常性的调整可以优化系统的性能,
防止出现数据瓶颈。我们通过调整数据库系统,可以使它达到最佳性能以满足用户的需要。
   下面,笔者将介绍优化和调整sun sparc solaris系统平台上的oracle 8i数据库服务器
   solaris性能监控命令
   solaris提供了性能监控命令,用于监控数据库性能和决定数据库的需求。除了为oracle
进程提供统计外,它们还为cpu提供使用统计,为整个系统提供中断、交换、分页和上下文转
   1.vmstat
   vmstat命令报告solaris上的进程、虚拟内存、磁盘、分页和cpu的活动情况。下面命令
   % vmstat 5
   2.sar
   sar命令用于监控交换、分页、磁盘和cpu活动。下面命令用于每10秒显示10次分页活动
   $ sar -p 10 10
   3.iostat
   iostat命令报告终端和磁盘的活动。该报告显示哪些磁盘是忙的(该信息在平衡i/o负载
   $ iostat 5 5
   4.swap
   swap命令报告关于交换空间使用的信息。交换空间的不足可以导致系统悬挂,减慢响应时
   5.mpstat
   mpstat命令报告每个处理器的统计。
   调整内存管理
   1.分配足够的交换空间
   内存交换(swapping)可以造成很大的内存开销,应该将它最小化。在solaris上使用
sar -w或vmstat -s命令来检查交换。若系统在交换,且需要节省内存,则应采用以下措施:
   避免运行不必要的系统daemon进程或应用程序进程;
   减少数据库缓冲区的数量,以释放一些内存;
   减少unix文件缓冲区的数量(特别是在使用原始设备时)。
   在solaris上用swap -l命令决定当前正在使用多少交换空间。使用swap -a命令向系统中
增加交换区。用系统ram两到四倍的交换空间启动数据库。若准备使用oracle developer、
oracle applications或oracle interoffice,则使用更高的值。监控交换空间的使用,在必
   2.控制分页
   内存分页(paging)可能没有交换那样问题严重,因为为了运行,整个应用程序不必全部
放在内存中。少量的分页不可能显著地影响系统的性能。为了检测过多的分页,在快速响应或
空闲期间运行测量,并与响应迟缓时的测量进行比较。使用vmstat或sar -p监控分页
   若系统有过多的页面活动,则需考虑以下解决办法:
   安装更多的内存;
   将一些工作移到另一系统中;
   配置系统核心使用更少的内存;
   保持sga在单个共享内存段中。
   没有足够的共享内存,将不能够启动数据库。这时,我们可以重新配置unix核心,以增加
   调整磁盘i/o
   i/o瓶颈是最容易识别的性能问题。跨所有可用的磁盘均匀地平衡i/o,可以减少磁盘存
取的时间。对于较小的数据库和不使用并行查询选项的那些数据库,要确保不同的数据文件和
   1.调整dbwr,增加写带宽
   oracle提供以下方法以防止dbwr(数据库写进程)活动成为瓶颈:
   使用异步i/o 异步i/o允许进程继续处理下一个操作,而不必等待在发出写后,最小化了
空闲时间,因而改善了系统性能。solaris支持原始设备和文件系统数据文件的异步i/o。
   使用i/o从属 i/o从属(slave)是专用的进程,其惟一功能是执行i/o。它们代替
oracle 7的多个dbwr特性(实际上它们是多个drwr的概括,可以由其它进程分布)。不管异步
i/o是否可用,它们都可以操作。若设置的话,它们被从large_pool_size分配,否则从共享
   初始化参数控制了i/o从属的行为,其中disk_asynch_io和tape_asynch_io允许分别为磁
盘和磁带设备关闭异步i/o(因为每个进程类型的i/o从属缺省为0,除非明确设置,否则没有
   若disk_asynch_io或tape_asynch_io无效,则dbwr_io_slaves应该设置大于0,否则dbwr
将成为一个瓶颈。在这种情况下,solaris上dbwr_io_slaves的最佳值为4,而在
   db_writer_processes代替oracle 7的参数db_writers,指定某实例的数据库写进程的初
始数量。若使用dbwr_io_slaves,则只有一个数据库写进程被使用,而不管db
   2.使用iostat查找大磁盘请求队列
   请求队列显示特定磁盘设备上等待服务的i/o请求有多长。由大量的磁盘i/o或由平均查找
时间i/o引起请求队列。磁盘请求队列应该为0或接近于0。
   3.选择合适的文件系统类型
   sun sparc solaris允许选择文件系统。文件系统有不同特性,它们用于存取数据的技术
   .s5:unix系统v文件系统;
   .ufs:unix文件系统(由bsd unix派生);
   .vxfs:veritas文件系统;
   .原始设备:没有文件系统。
   通常没有事实证明文件系统与文件系统是相配的,甚至不同的ufs文件系统也难以比较(
因为执行不同),尽管ufs通常是高性能的选择,但根据选择文件系统的不同,性能差别变化
   监控磁盘性能
   使用sar -b和sar -u可以监控磁盘性能。
   sar -b对磁盘性能的重要性如下:
   (1)bread/s、bwrit/s:块读和块写,它们对文件系统而言是非常重要的。
   (2)pread/s、pwrit/s:分区读和分区写,它们对原始分区数据库系统是非常重要的。
   oracle块大小应该匹配磁盘块大小或是磁盘块大小的倍数。若可能的话,在数据库文件使
用文件系统前在分区上做文件系统检查;然后制作一个新的文件系统,确保它是清洁的和不破
碎的。尽可能地均匀分布磁盘i/o,将数据库文件与日志文件分开。
   调整cpu的使用
   1.在同一优先权上保持所有oracle用户和进程
   在oracle中,所有用户和后台进程操作在同一优先级上,修改优先权对竞争和响应时间有
   例如,若lgwr(日志写进程)获得低优先权,则它不能充分地执行,lgwr将成为一个瓶颈
;另一方面,若lgwr有高的优先权,用户进程可能要忍受较坏的响应时间。
   2.在多处理器系统上使用处理器亲和力/捆绑
   在多处理器环境中,使用处理器亲和力/捆绑(affinity/binding,若它在系统中可用)
。处理器捆绑禁止某进程从一个cpu移动到另一个,允许cpu高速缓存中的信息被更好地利用
,而且可以捆绑服务器进程,从而充分利用高速缓存(因为它总是活动的,允许后台进程在
   3.为export(导出)/import(导入)和sql?loader使用单任务链接
   若要在用户和oracle 8i之间传输大量的数据(如使用export/import),使用单任务结构
是非常高效的,因为作为单任务链接oracle可执行程序,允许某用户进程直接存取整个sga。
但运行单任务需要更多的内存。为了使用单任务导入、导出和sql?loader(sqlldrst)可执行
程序,我们可以调用make文件的ins_rdbms.mk(在$oracle_home/rdbms/lib目录中)。
   下面是用于实现单任务导入、导出和sql?loader(sqlldrst)的可执行程序:
   % cd $oracle_home/rdbms/lib
   % make -f ins_utilities.mk singletask
   调整块大小和文件大小
   在solaris上,oracle块缺省值为2kb,可以设置的实际大小为2kb的倍数,最大设置值为
   最优的块大小通常是缺省值,但随着应用程序而变化。为了用不同的oracle块大小建立数
   db_block_size=new_block_size
   调整solaris缓冲区高速缓存大小
   为了充分利用原始设备的优点,我们需要调整oracle 8i缓冲区高速缓存的大小和solaris
   solaris缓冲区高速缓存由操作系统提供。它在内存中保存数据的块(在它们被从内存传
   oracle 8i缓冲区高速缓存是在内存中保存oracle数据库缓冲区的区域。因为oracle 8i
可以使用原始设备,它不需要使用solaris缓冲区高速缓存。
   在移动原始设备时,增加oracle 8i缓冲区高速缓存的大小。若系统中内存的数量是有限
   solaris命令sar可以帮助决定哪些缓冲区高速缓存应该增加或减少:
   sar -b:报告solaris缓冲区高速缓存的活动;
   sar -w:报告solaris内存交换活动;
   sar -u:报告cpu利用情况;
   sar -r:报告内存利用情况;
   sar -p:报告solaris内存分页活动。
   通常在缓存命中率上升时,我们需要增加oracle 8i缓冲区高速缓存的大小,而在交换/分
页活动变高时,我们需要减少高速缓存的大小。
   我们还可以使用oracle 8i建立的跟踪(trace)和警报(alter)文件来诊断和解决运行
   只要我们充分利用以上命令和方法,就可以很好地优化与调整oracle 8i数据库了。

  


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons