
v$parameter数据字典中显示了oracle数据库中关于初始化参数的信息。
本文重点介绍(敲黑板)新意产品在oracle数据库中需要关注的主要参数。
这些参数往往需要根据实际产品部署和运行情况做进一步的调整。通常先备份参数文件,再做修改。
备份语句如下:
--修改前,创建PFILE文件。
create pfile ='/home/oracle/initora11g.ora' from spfile;
--异常时,通过备份的pfile文件来启动数据库。
startup pfile='/home/oracle/initora11g.ora';
备份完成后,根据实际情况调整下表的相关参数,后续对各个参数进行重点说明。
NAME | VALUE | DISPLAY_VALUE | DESCRIPTION |
db_block_size | 16384 | 16384 | Size of database block in bytes |
db_files | 800 | 800 | max allowable # db files |
memory_max_target | 121601261568 | 115968M | Max size for Memory Target |
memory_target | 121601261568 | 115968M | Target size of Oracle SGA and PGA memory |
open_cursors | 8000 | 8000 | max # cursors per session |
pga_aggregate_target | 0 | 0 | Target size for the aggregate PGA memory consumed by the instance |
processes | 1000 | 1000 | user processes |
sessions | 1568 | 1568 | user and system sessions |
sga_max_size | 121601261568 | 115968M | max total SGA size |
sga_target | 0 | 0 | Target size of SGA |
db_block_size
数据库默认块大小,由数据库创建时的选项指定(见下图),默认值是8k。新意产品的标准是16K。
修改完成后:有效避免单个数据文件太小的问题。
因为该参数还限制了单个数据文件的大小。8K标准的数据文件最大是32G,16K标准的数据文件最大是64G.
图2
db_files
数据库中数据文件最大数量,默认值只有200,需要调整。
可根据部署产品数量进行设置,建议值大于1000,修改完参数后需要重启数据库服务。
修改完成后:可以有效避免新搭建的数据库在创建表空间时,由于参数值过小导致的“ORA-00059:maximum number of DB_FILES exceeded”错误。
调整语句:
alter system db_files=1000 scope=spfile;
memory_max_target和memory_target
这两个参数是Oracle 11g自动内存管理特性,可以动态管理SGA和PGA的大小。memory_target不能超过MEMORY_MAX_TARGET参数设置的大小,默认等于他的大小。使用自动化管理时,SGA_TARGET和PGA_AGGREGATE_TARGET 这两个参数需要设置为0。
memory_max_target和memory_targe参数建议值<=物理内存*70%~80%。
修改完参数后需要重启数据库服务。
调整语句:
alter system set memory_target=XXXM scope=spfile;
alter system set memory_max_target =XXXM scope=spfile;
alter system set pga_aggregate_target =0 scope=spfile;
alter system set SGA_TARGET=0 scope=spfile;
open_cursors
SESSION(会话)最多能同时打开多少个cursor(游标)。
修改完成后:参数值需要设置得足够大,以避免应用程序用尽所有打开的游标,而导致的ORA-01000: Maximum Number of Cursors Exceeded的错误。
建议值:3000,修改完参数后需要重启数据库服务。
调整语句:
alter system set open_cursors=3000 scope=spfile;
Process
该参数限制了能够连接到SGA的操作系统进程数,Oracle给出的默认参数的值偏小,需要再手工调整。这个总数必须足够大,从而能够适用于后台进程,避免错误"ORA-00020: maximum number of processes (xx) exceeded"错误。
新意部署产品参数的建议值:
1、单个产品,不低于1000至上限值
2、两个产品,不低于1500至上限值
3、三个产品以上,不低于2000至上限值
修改完需要重启数据库服务。
调整语句:
alter system set processes=1000 scope=spfile;
Sessions
该参数为派生值,由processes的值决定。11g数据库官方默认值(sessions=1.5*processes + 22)。通常只需要调整PROCESSES参数,SESSIONS参数就会按照上面的公式自动调整。
sga_target和sga_max_size
该参数为系统共享全局内存区大小设置,用于共享的数据和日志的缓存,第一个值是启动实例时的默认值,第二个是最大值。在非自动内存管理情况下(即Memory_target =0), 一般设置成物理内存一半即可。实际环境可以根据AWR报告中SGA Target Advisory再做进一步的调整。修改完参数后需要重启数据库服务。
调整语句:
alter system set sga_max_size=XXXXM scope=spfile;
alter system set sga_target=XXXXM scope=spfile;
pga_aggregate_target
该参数为程序全局内存区大小设置,用于分配给服务进程使用。
较大数值可以提高访问性能,减少磁盘读写是有较大帮助。
在非自动内存管理情况下(即Memory_target =0),建议物理内存*20%-35%。实际环境中可以根据AWR报告中PGA Memory Advisory再做进一步的调整。修改完参数后需要重启数据库服务。
调整语句:
alter system set pga_aggregate_target=XXXXM scope=spfile;

如果有更多想要了解的参数配置,欢迎留言告诉我们哦!






