Oracle9i数据库中动态重配置深入分析

2016-01-29 14:44 5 1 收藏

Oracle9i数据库中动态重配置深入分析,Oracle 9i数据库中动态重配置深入分析

【 tulaoshi.com - Oracle教程 】

Oracle9i最重要的新特性就能动态修改几乎所有Oracle性能参数。这使Oracle专家能在Oracle实例运行期间动态地重新配置它——不管是因为要解决当前的一个性能问题,还是因为预测到一个紧迫的性能需求。由于能动态修改系统全局区域(System Global Area,SGA)中的所有东西(SGA是Oracle的一个实例使用的RAM),所以至关重要的一点就是知道如何监视Oracle数据库。归纳出系统访问趋势及访问模式后,可因为预测到常规的资源需求而提前重新配置好数据库。

牵涉到动态数据库调节操作时,Oracle专家通常关心的是两方面的问题:事先安排好的重配置,以支持常规处理需求的变化;以及基于趋势的动态重配置,以响应从STATSPACK中获取的信息。下面来看看Oracle如何对这两种活动提供支持。

安排好的重配置

假定一个Oracle数据库在白天以“联机事务处理”(OLTP)模式运行,夜间以“决策支持”模式运行。这两种服务为了获得最佳的性能,分别提出了完全不同的要求。针对这种类型的数据库,Oracle DBA可事先安排好一个任务,针对当前的处理类型,将Oracle实例重配置为最恰当的配置。

通常可选择两种工具之一来安排动态重配置。最常见的方式是使用一个UNIX cron作业,它启动一个shell脚本来安排定期重配置。还可使用Oracle dbms_job实用程序。这两种工具都允许你安排一次配置更改。

清单A如下:

Listing A: Script to change to DSS-mode    #!/bin/ksh  # First, we must set the environment . . . . ORACLE_SID=$1 export ORACLE_SID ORACLE_HOME=`cat /etc/oratab|grep ^$ORACLE_SID:|cut -f2 -d':'#ORACLE_HOME=`cat /var/opt/oracle/oratab|grep ^$ORACLE_SID:|cut -f2 -d':'` export ORACLE_HOME PATH=$ORACLE_HOME/bin:$PATH export PATH $ORACLE_HOME/bin/sqlplus –s /nologin<  alter system set db_cache_size=1500m;alter system set shared_pool_size=500m;alter system set pga_aggregate_target=4000m;exit !
  

清单A提供了一个UNIX脚本,可用它针对决策支持处理而重配置Oracle。注意该脚本修改了shared_pool、db_cache_size以及pga_aggregate_target等参数,以满足数据仓库活动的需要。第二天早上可运行一个类似的脚本,将数据库配置变回OLTP模式。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)[next]

基于趋势的动态重配置

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

执行基于趋势的动态重配置时,要收集有关Oracle数据库的历史数据,并用这种信息来提前重配置数据库,具体做法可能是使用dbms_job包进行临时性更改,或使用前面讨论的某种方法安排定期重配置。这类似于“准实时”生产——装配线上需要某些零件时,那些零件就刚好出现在生产车间。同样地,Oracle DBA可预测处理需求,并确保及时提供SGA资源,以满足处理任务之需要。

可用STATSPACK来跟踪重要度量指标,并揭示出访问模式,以预测Oracle服务器即将需要的资源。度量指标通常根据一天中的不同小时以及一周中的不同天来收集,以便发现其中的访问模式。以图A每天各个小时的数据缓冲命中率(BHR)为例。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)
图A

这幅BHR图表明缓冲区块反复出现短缺现象,注意重复出现的指标表明,数据缓冲区块在2:00到3:00 AM之间出现短缺,同样的情况在8:00到9:00 PM之间再次出现。了解这一点后,就可安排任务,在这些时段为数据缓冲重新分配RAM,以缓解问题。

还可以绘制一周中每一在的数据BHR图,如图B所示。从中可以看出,有问题的是周一和周五。所以,这两天需要增大db_cache_size来纠正问题。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

来源:http://www.tulaoshi.com/n/20160129/1494071.html

延伸阅读
本文从几大方面详细讲述了Oracle数据库的配置方案。 所有连接到Oracle的用户必须执行两个代码模块: 应用或Oracle工具:一数据库用户执行一数据库应用或一个Oracle工具,可向Oracle数据库发出SQL语句。 Oracle服务器程序:负责解释和处理应用中的SQL语句。 在多进程实例中,连接用户的代码可按下列三种方案之一配置: 1、对于每一个用...
 本文从几大方面具体讲述了Oracle数据库的配置方案。  所有连接到Oracle的用户必须执行两个代码模块: 应用或Oracle工具:一数据库用户执行一数据库应用或一个Oracle工具,可向Oracle数据库发出SQL语句。 Oracle服务器程序:负责解释和处理应用中的SQL语句。  在多进程实例中,连接用户的代码可按下列三种方案之一配置: &nb...
:SID - 数据库标识     HOME_NAME - Oracle Home名称,如OraHome92、OraHome81 (1)OracleServiceSID  数据库服务,这个服务会自动地启动和停止数据库。假如安装了一个数据库,它的缺省启动类型为自动。服务进程为ORACLE.EXE,参数文件initSID.ora,日志文件SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。 (2)...
介绍 DBA和开发者都喜欢索引。它们可以加速查询搜索,特别是在一个数据仓库的环境中,因为这时数据库会接收到许多ad-hoc请求。要避免全表搜索,我们一般在每个可能被搜索的列中建立索引。不过索引会占用许多的表空间;在许多的情况下,索引比被索引的表消耗更多的存储空间。在插入和删除行的时候,索引还会引入额外的开销...
近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server)。本文现对监听配置作一简单介绍,并提出一些客户终端无法连接服务器端的解决思路,愿对广大网友与读者有一些帮助。  一、 监听器(LISTENER) 监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基...