优化调整Oracle 8i数据库

简介:
导读: 
  Oracle 8i数据库服务器是高度可优化的软件产品,经常性的调整可以优化系统的性能,防止出现数据瓶颈。我们通过调整数据库系统,可以使它达到最佳性能以满足用户的需要。下面,笔者将介绍优化和调整Sun SPARC Solaris系统平台上的Oracle 8i数据库服务器的一些相关命令和方法。 
  Solaris性能监控命令 
  Solaris提供了性能监控命令,用于监控数据库性能和决定数据库的需求。除了为Oracle进程提供统计外,它们还为CPU提供使用统计,为整个系统提供中断、交换、分页和上下文转换功能。监控命令包括: 
  vmstat 
  vmstat命令报告Solaris上的进程、虚拟内存、磁盘、分页和CPU的活动情况。下面命令将显示系统每5秒钟做的事的概要: 
  % vmstat 5 
  sar 
  sar命令用于监控交换、分页、磁盘和CPU活动。下面命令用于每10秒显示10次分页活动的概要: 
  $ sar -p 10 10 
  iostat 
  iostat命令报告终端和磁盘的活动。该报告显示哪些磁盘是忙的(该信息在平衡I/O负载时有用)。下面命令用于每5秒显示5次终端和磁盘活动: 
  $ iostat 5 5 
  swap 
  swap命令报告关于交换空间使用的信息。交换空间的不足可以导致系统悬挂,减慢响应时间。 
  mpstat 
  mpstat命令报告每个处理器的统计。 
  调整内存管理 
  分配足够的交换空间 
  内存交换(swapping)可以造成很大的内存开销,应该将它最小化。在Solaris上使用sar -w或vmstat -S命令来检查交换。若系统在交换,且需要节省内存,则应采用以下措施: 
  避免运行不必要的系统daemon进程或应用程序进程;减少数据库缓冲区的数量,以释放一些内存;减少UNIX文件缓冲区的数量(特别是在使用原始设备时)。在Solaris上用swap -l命令决定当前正在使用多少交换空间。使用swap -a命令向系统中增加交换区。用系统RAM两到四倍的交换空间启动数据库。若准备使用Oracle Developer、Oracle Applications或Oracle InterOffice,则使用更高的值。监控交换空间的使用,在必要时增加它。 
  控制分页 
  内存分页(paging)可能没有交换那样问题严重,因为为了运行,整个应用程序不必全部放在内存中。少量的分页不可能显著地影响系统的性能。为了检测过多的分页,在快速响应或空闲期间运行测量,并与响应迟缓时的测量进行比较。使用vmstat或sar-p监控分页。 
  若系统有过多的页面活动,则需考虑以下解决办法: 
  安装更多的内存; 
  将一些工作移到另一系统中; 
  配置系统核心使用更少的内存; 
  保持SGA在单个共享内存段中。 
  没有足够的共享内存,将不能够启动数据库。这时,我们可以重新配置UNIX核心,以增加共享内存。 
  调整磁盘I/O 
  I/O瓶颈是最容易识别的性能问题。跨所有可用的磁盘均匀地平衡I/O,可以减少磁盘存取的时间。对于较小的数据库和不使用并行查询选项的那些数据库,要确保不同的数据文件和表空间跨可用的磁盘分布。 
  调整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,除非明确设置,否则没有I/O从属被发布)。 
  若DISK_ASYNCH_IO或TAPE_ASYNCH_IO无效,则DBWR_IO_SLAVES应该设置大于0,否则DBWR将成为一个瓶颈。在这种情况下,Solaris上DBWR_IO_SLAVES的最佳值为4,而在LGWR_IO_SLAVES的情况下,发布的从属不应该超过9个。 
  DB_WRITER_PROCESSES代替Oracle 7的参数DB_WRITERS,指定某实例的数据库写进程的初始数量。若使用DBWR_IO_SLAVES,则只有一个数据库写进程被使用,而不管DB_WRITER_PROCESSES的设置。 
  .使用IOSTAT查找大磁盘请求队列请求队列显示特定磁盘设备上等待服务的I/O请求有多长。由大量的磁盘I/O或由平均查找时间I/O引起请求队列。磁盘请求队列应该为0或接近于0。 
  选择合适的文件系统类型 Sun SPARC Solaris允许选择文件系统。文件系统有不同特性,它们用于存取数据的技术对数据库性能有实质性的影响。文件系统通常包括: 
  s5:UNIX系统V文件系统; 
  ufs:UNIX文件系统(由BSD UNIX派生); 
  vxfs:Veritas文件系统; 
  原始设备:没有文件系统。 
  通常没有事实证明文件系统与文件系统是相配的,甚至不同的ufs文件系统也难以比较(因为执行不同),尽管ufs通常是高性能的选择,但根据选择文件系统的不同,性能差别变化也很大。 
  监控磁盘性能 
  使用sar -b和sar -u可以监控磁盘性能。 
  sar -b对磁盘性能的重要性如下: 
  bread/s、bwrit/s:块读和块写,它们对文件系统而言是非常重要的。 
  pread/s、pwrit/s:分区读和分区写,它们对原始分区数据库系统是非常重要的。 
  Oracle块大小应该匹配磁盘块大小或是磁盘块大小的倍数。若可能的话,在数据库文件使用文件系统前在分区上做文件系统检查;然后制作一个新的文件系统,确保它是清洁的和不破碎的。尽可能地均匀分布磁盘I/O,将数据库文件与日志文件分开。 
  调整CPU的使用 
  在同一优先权上保持所有Oracle用户和进程在Oracle中,所有用户和后台进程操作在同一优先级上,修改优先权对竞争和响应时间有意想不到的影响。例如,若LGWR(日志写进程)获得低优先权,则它不能充分地执行,LGWR将成为一个瓶颈;另一方面,若LGWR有高的优先权,用户进程可能要忍受较坏的响应时间。 
  在多处理器系统上使用处理器亲和力/捆绑在多处理器环境中,使用处理器亲和力/捆绑(affinity/binding,若它在系统中可用)。处理器捆绑禁止某进程从一个CPU移动到另一个,允许CPU高速缓存中的信息被更好地利用,而且可以捆绑服务器进程,从而充分利用高速缓存(因为它总是活动的,允许后台进程在CPU间流动)。 
  为Export(导出)/Import(导入)和SQL









本文转自 牛海彬 51CTO博客,原文链接:http://blog.51cto.com/newhappy/76985,如需转载请自行联系原作者
目录
相关文章
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第六章(操作本地数据库前置知识优化)
【4月更文挑战第6天】本文介绍了Node.js操作本地数据库的前置配置和优化,包括处理接口跨域的CORS中间件,以及解析请求数据的body-parser、cookie-parser和multer。还讲解了与MySQL数据库交互的两种方式:`createPool`(适用于高并发,通过连接池管理连接)和`createConnection`(适用于低负载)。
19 0
|
14天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
41 5
|
1天前
|
存储 缓存 关系型数据库
掌握MySQL数据库这些优化技巧,事半功倍!
掌握MySQL数据库这些优化技巧,事半功倍!
|
2天前
|
缓存 关系型数据库 MySQL
MySQL数据库优化技巧:提升性能的关键策略
索引是提高查询效率的关键。根据查询频率和条件,创建合适的索引能够加快查询速度。但要注意,过多的索引可能会增加写操作的开销,因此需要权衡。
|
7天前
|
存储 Oracle 数据管理
Oracle 12c的自动数据优化(ADO)与热图:数据管理的“瘦身”与“透视”艺术
【4月更文挑战第19天】Oracle 12c的ADO和热图技术革新数据管理。ADO智能清理无用数据,优化存储,提升查询速度,实现数据"瘦身";热图则以直观的视觉表示展示数据分布和状态,助力识别性能瓶颈,犹如数据的"透视"工具。这两项技术结合,强化数据管理,为企业业务发展保驾护航。
|
7天前
|
存储 Oracle 关系型数据库
Oracle的模式与模式对象:数据库的“城市规划师”
【4月更文挑战第19天】在Oracle数据库中,模式是用户对象的集合,相当于数据库的城市规划,包含表、视图、索引等模式对象。模式对象是数据存储结构,如表用于存储数据,视图提供不同查看角度,索引加速数据定位。良好的模式与模式对象设计关乎数据效率、安全和稳定性。规划时需考虑业务需求、性能、安全和可扩展性,以构建高效数据库环境,支持企业业务发展。
|
10天前
|
SQL 缓存 Java
Java数据库连接池:优化数据库访问性能
【4月更文挑战第16天】本文探讨了Java数据库连接池的重要性和优势,它能减少延迟、提高效率并增强系统的可伸缩性和稳定性。通过选择如Apache DBCP、C3P0或HikariCP等连接池技术,并进行正确配置和集成,开发者可以优化数据库访问性能。此外,批处理、缓存、索引优化和SQL调整也是提升性能的有效手段。掌握数据库连接池的使用是优化Java企业级应用的关键。
|
11天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
38 3
|
14天前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
36 7
|
Oracle 关系型数据库 SQL
oracle优化与可持续运行
最近很长一段时间都在优化一个项目,这个项目存在许多问题,从数据架构到工作流程,我一直在思考一些有关oracle性能优化的问题,我跟开发实施人员进行过多次交流,发现存在许多交流障碍,许多问题实施人员觉得sql语句执行很快,并不存在性能问题,我花了大量时间要他看执行计划,说明当数据积累到一定时间后,会执行越来越慢。
726 0

推荐镜像

更多