数据库参数设置技术手册.docx
- 文档编号:6865501
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:16
- 大小:23.85KB
数据库参数设置技术手册.docx
《数据库参数设置技术手册.docx》由会员分享,可在线阅读,更多相关《数据库参数设置技术手册.docx(16页珍藏版)》请在冰豆网上搜索。
数据库参数设置技术手册
数据库参数设置技术手册
版本:
1.0
文件质量等级:
A
拟制
标准化
批准
中国上海
1前言3
2目的3
3ORACLE内存结构概述3
4常用参数说明3
4.1BUFFER_POOL_KEEP4
4.2CPU_COUNT4
4.3DB_BLOCK_BUFFERS4
4.4DB_BLOCK_SIZE5
4.5DB_FILE_MULTIBLOCK_READ_COUNT5
4.6GLOBAL_NAMES5
4.7INSTANCE_NAME5
4.8LICENSE_MAX_SESSIONS5
4.9LICENSE_MAX_USERS6
4.10LOG_BUFFER6
4.11OPEN_CURSORS6
4.12SERVICE_NAMES6
4.13SHARED_POOL_SIZE6
4.14SORT_AREA_SIZE7
4.15JAVA_POOL_SIZE7
4.16LARGE_POOL_SIZE7
4.17HASH_POOL_SIZE7
4.18SHARED_POOL_RESERVED_SIZE7
4.19SESSION_CACHED_CURSORS8
4.20CURSOR_SPACE_FOR_TIME8
4.21SGA_MAX_SIZE8
4.22SORT_AREA_RETAINED_SIZE8
4.23PGA_AGGREGATE_TARGET8
4.24WORKAREA_SIZE_POLICY9
4.25SQL_TRACE9
4.26TIMED_STATISTICS9
4.27DB_CACHE_SIZE9
4.28DB_KEEP_CACHE_SIZE9
4.29DB_RECYCLE_CACHE_SIZE9
4.30DB_FILE_MULTIBLOCK_READ_COUNT10
4.31DB_WRITER_PROCESSES10
5参数设置原则10
5.1SGA系统全局区10
5.1.1数据缓冲区(DB_BLOCK_BUFFERS)10
5.1.2共享池(SHARED_POOL_SIZE)10
5.1.3日志缓冲区(LOG_BUFFER)11
5.1.4JAVA池(JAVA_POOL_SIZE)11
5.1.5大池(LARGE_POOL_SIZE)11
5.2PGA程序全局区11
5.2.1分类区(SORT_AREA_SIZE)与哈希区(HASH_AREA_SIZE)11
6参数设置实例11
1前言
2目的
3ORACLE内存结构概述
内存结构=SGA(系统全局区)+PGA(程序全局区)
SGA就是我们所说的内存调优的主要对象。
我们重点就是设置SGA
SGA包括:
(包括以下五个区)
数据缓冲区:
db_block_buffers
共享池:
shared_pool_size
日志缓冲区:
log_buffer
JAVA池:
Java_pool_size
大池:
Large_pool_size
PGA包括:
分类区:
sort_area_size
哈希区:
hash_area_size
4常用参数说明
Oracle的parameter参数,分动态参数和静态参数,静态参数需要重新启动数据库才能生效,动态参数不需要重新启动数据库即可生效。
Oracle9i可以使用spfile的特性,使用altersystemset参数名=参数值scope=both[spfile];的方法进行修改。
以下给出了Oracle数据库重点关注的parameter的初始优化设置。
静态参数sga_max_size
Sharedpool
动态参数shared_pool_size
静态参数shared_pool_reserved_size
动态参数open_cursors
静态参数cursor_space_for_time
静态参数session_cached_cursors
Databuffer
动态参数db_cache_size
动态参数db_keep_cache_size
动态参数db_recycle_cache_size
(sga_max_size大小,除了分配给所有非databuffer的size,都分配给databuffer)
Sgaothermemory
动态参数large_pool_size
静态参数java_pool_size
动态参数log_buffer
Othermemory
动态参数sort_area_size
静态参数sort_area_retained_size
静态参数pga_aggregate_target
动态参数workarea_size_policy
磁盘I/O配置
静态参数sql_trace
动态参数timed_statistics
动态参数db_file_multiblock_read_count
静态参数db_writer_processes
静态参数undo_management
动态参数undo_retention
4.1BUFFER_POOL_KEEP
参数类型:
字符串
语法:
BUFFER_POOL_KEEP={integer|
(BUFFERS:
integer[,LRU_LATCHES:
integer])}
这里integer是缓冲区数,和LRU锁存器的数
参数类:
静态
默认值:
无
BUFFER_POOL_KEEP可以使你在DB_BLOCK_BUFFERS下作为保留缓冲池来驻留对象。
你也可以用分配一个LRU的一部分(用DB_BLOCK_LRU_LATCHES)
可以指定5种格式,比如简单的:
BUFFER_POOL_KEEP=5
或指定缓冲区的组合项和LRU锁存器,如:
BUFFER_POOL_KEEP=(BUFFERS:
400[,LRU_LATCHES:
3])
4.2CPU_COUNT
参数类型:
整数
参数类:
静态
默认值:
有Oracle系统自动设置
值的范围:
0到n
一般由Oracle安装程序自动设置。
CPU_COUNT指定CPU的个数。
Oracle使用此参数设置LOG_SIMULTANEOUS_COPIES的默认值。
单个CPU时CPU_COUNT为1。
根据经验,你可以修改SIMULTANEOUS_COPIES为CPU个数的两倍。
4.3DB_BLOCK_BUFFERS
参数类型:
整数
参数类:
静态
默认值:
48MB/块大小
值的范围:
4到操作系统允许的最大
并行服务器:
多个实例可以有不同的值。
DB_BLOCK_BUFFERS指定高速缓冲区的数目。
由几个参数一起构成SGA的大小。
缓冲区的实际的大小与DB_BLOCK_SIZE参数有关。
有效地使用这个参数可以改善I/O的性能。
这个缓冲区的保留("keep")和再利用("recycle")是这个缓冲区变过来的。
另外,缓冲区中的每个LRU列表至少包含50个缓冲区。
因此,你必须指定合适的BUFFER_POOL_KEEP和BUFFER_POOL_RECYCLE,确保BLOCK_BUFFERS符合下面公式:
DB_BLOCK_BUFFERS>#_buffers_in_"keep"_buffer_pool
+#_BUFFERS_IN_"recycle"_pool
+50*(DB_BLOCK_LRU_LATCHES
-#_lru_latches_in_"keep"_buffer_pool
-#_lru_latches_in_"recycle"_buffer_pool)
如果你没有在BUFFER_POOL_KEEP和BUFFER_POOL_中指定任何LRU,则LRU默认为1。
注意:
在oracle9i以上版本,该参数已被db_cache_size代替了,所以该参数在oracle9i以上版本默认为0。
我们不用设置它。
4.4DB_BLOCK_SIZE
参数类型:
整数
参数类:
静态
默认值:
与操作系统有关,通常为8k
值的范围:
2k,8k,16k,32k
并行服务器:
必须设置所有的实例有相同的数据块。
4.5DB_FILE_MULTIBLOCK_READ_COUNT
参数类型:
整数
参数类:
动态,范围=ALTERSYSTEM,ALTERSESSION.
默认值:
8
值的范围:
与操作系统有关
在扫描表时一次读的最小的数据块数目。
在OLTP和批处理事务中,此参数可以是4到16。
对于DSS类型应用,可以设置高些。
4.6GLOBAL_NAMES
参数类型:
布尔型
参数类:
动态,范围=ALTERSESSION,ALTERSYSTEM.
默认值:
TRUE
值的范围:
TRUE|FALSE
用于知单数据库全局名称。
如果是分布环境,要将此参数设置为TRUE。
4.7INSTANCE_NAME
参数类型:
字符型
语法:
INSTANCE_NAME=instance_id
参数类:
静态
默认值:
实例的SID
指定数据库实例的名字,在安装创建完成后此参数已经设置好,用户一般不用设置此参数。
4.8LICENSE_MAX_SESSIONS
参数类型:
整数型
参数类:
动态,范围=ALTERSYSTEM
默认值:
0到许可的数
并行服务器:
多个实例可以有不同的值,但是所有实例的会话数之和应该等于所有数据库允许的会话总数。
当会话达到最大值时,只有具有RESTRICTED_SESSION权限的用户才能进行登录到数据库。
而一般的用户会得到提示信息。
0值表示当前的会话不受限制。
如果设置为非0的话,还要参考LICENSE_SESSIONS_WARNING参数。
如果不希望使能使用许可和用户许可,可以设置LICENSE_MAX_SESSIONS或LICENSE_MAX_USERS任何一个为0即可。
4.9LICENSE_MAX_USERS
参数类型:
整数型
参数类:
动态,范围=ALTERSYSTEM
默认值:
0
值范围:
0到用户许可数
并行服务器:
多个实例有相同的值。
如果指定了不同的值,则第1个实例的值优先。
LICENSE_MAX_USERS指定数据库可以建立的用户数目,如果达到这个值,将不能再创建更多的用户。
当然你可以加大这个值。
注意,不要同时使能会话(SESSION)和用户(USERS)两个参数。
你可以设置两个参数之一为0.
4.10LOG_BUFFER
参数类型:
整数型
参数类:
静态
默认值:
操作系统指定,最大:
500Kor128K*CPU_COUNT
值范围:
操作系统有关
日志缓冲区的大小。
一般如果系统较忙,可以设置比65536或更大些。
4.11OPEN_CURSORS
参数类型:
整数型
参数类:
静态
默认值:
50
值范围:
0到4294967295(4GB-1)
OPEN_CURSORS指定一次会话能打开光标的最大数(以处理私有的SQL区),此参数也限制PL/SQL光标数。
4.12SERVICE_NAMES
参数类型:
字符型
语法:
SERVICE_NAMES=db_service_name[,db_service_name[,...]]
参数类:
静态
默认值:
DB_NAME.DB_DOMAIN
值范围:
任何用豆号隔开的字符名字
4.13SHARED_POOL_SIZE
参数类型:
字符型
语法:
SHARED_POOL_SIZE=integer[K|M]
参数类:
静态
默认值:
64位为64MB;否则16MB
值范围:
300KB到操作系统许可数
SHARED_POOL_SIZE以字节指定共享池大小。
共享池包括光标、存储过程、控制结构及其它结构。
PARALLEL_AUTOMATIC_TUNING=FALSE,Oracle也允许并行从共享池执行信息。
较大的值可以改善性能。
较小的值可以节约内存。
4.14SORT_AREA_SIZE
参数类型:
整数型
参数类:
动态,范围=ALTERSESSION,ALTERSYSTEM...DEFERRED
默认值:
操作系统有关
值范围:
最小也是6个数据库块。
SORT_AREA_SIZE指定Oraclee用于分类的内存数(字节)。
排序完成Oracle就释放这些内存。
4.15JAVA_POOL_SIZE
参数类型:
整数型
参数类:
静态
说明:
以字节为单位,指定Java存储池的大小,它用于存储Java的方法和类定义在共享内存中的表示法,以及在调用结束时移植到Java会话空间的Java对象。
默认值:
根据操作系统而定
值范围:
根据操作系统而定。
4.16LARGE_POOL_SIZE
参数类型:
整数型
参数类:
动态
说明:
指定大型池的分配堆的大小,它可被共享服务器用作会话内存,用作并行执行的消息缓冲区以及用作RMAN备份和恢复的磁盘I/O缓冲区。
值范围:
600K(最小值);>=20000M(最大值是根据操作系统而定的)。
默认值:
0,除非配置了并行执行或DBWR_IO_SLAVES
4.17HASH_POOL_SIZE
参数类型:
整数型
说明:
与并行执行操作和DML或DDL语句相关。
它以字节为单位,指定要用于散列联接的最大内存量。
值范围:
0到根据操作系统而定的值。
默认值:
派生:
2*SORT_AREA_SIZE参数值
4.18SHARED_POOL_RESERVED_SIZE
参数类型:
整数型
参数类:
静态
说明:
指定要为较大连续共享池内存请求而保留的空间,以避免由碎片引起的性能下降。
该池的大小应符合这样的条件:
能存储为防止对象从共享池刷新而普遍要求的所有大型过程和程序包。
值范围:
SHARED_POOL_RESERVED_MIN_ALLOC到SHARED_POOL_SIZE的一半(字节)。
默认值:
SHARED_POOL_SIZE值的5%
4.19SESSION_CACHED_CURSORS
参数类型:
整数型
参数类:
静态
说明:
指定要高速缓存的会话游标的数量。
对同一SQL语句进行多次语法分析后,它的会话游标将被移到该会话的游标高速缓存中。
这样可以缩短语法分析的时间,因为游标被高速缓存,无需被重新打开。
值范围:
0到根据操作系统而定的值。
默认值:
0
4.20CURSOR_SPACE_FOR_TIME
参数类型:
布尔型
参数类:
静态
说明:
在一个游标引用共享SQL区时,确定将SQL区保留在共享池中还是从中按过期作废处理。
值范围:
TRUE|FALSE
默认值:
FALSE(过期作废)
4.21SGA_MAX_SIZE
参数类型:
整数型
参数类:
静态
说明:
指定例程存活期间所占用的系统全局区的最大大小。
值范围:
0到各操作系统所允许的最大值。
请注意,由于该参数值的最小值在启动时已经调整完毕,因而它无关紧要。
默认值:
如果未指定值,sga_max_size的默认值将与启动时SGA的最初大小(比如说X)相同。
该大小取决于SGA中各种池的大小,如缓冲区高速缓存,共享池,大型池等。
如果指定的值小于X,则所使用的sga_max_size的值将为X。
也就是说,它是X与用户指定的sga_max_size值两者之间的较大值。
4.22SORT_AREA_RETAINED_SIZE
参数类型:
整数型
参数类:
静态
说明:
以字节为单位,指定在一个排序运行完毕后保留的用户全局区(UGA)内存量的最大值。
最后一行从排序空间中被提取后,该内存将被释放回UGA,而不是释放给操作系统。
值范围:
从相当于两个数据库块的值到SORT_AREA_SIZE的值。
默认值:
SORT_AREA_SIZE的值
4.23PGA_AGGREGATE_TARGET
参数类型:
整数型
参数类:
静态
说明:
指定连接到例程的所有服务器进程的目标PGA总内存。
请在启用自动设置工作区之前将此参数设置为一个正数。
这部分内存不驻留在SGA中。
数据库将此参数值用作它所使用的目标PGA内存量。
设置此参数时,要将SGA从可用于Oracle例程的系统内存总量中减去。
然后可将剩余内存量分配给pga_aggregate_target。
值范围:
整数加字母K,M或G,以将此限值指定为千字节,兆字节或千兆字节。
最小值为10M,最大值为4000G
默认值:
"未指定",表示完全禁用对工作区的自动优化。
4.24WORKAREA_SIZE_POLICY
参数类型:
字符串型
参数类:
动态
说明:
指定调整工作区大小的策略。
此参数控制优化工作区时所处的模式。
值范围:
AUTO,MANUAL。
默认值:
如果设置了PGA_AGGREGATE_TARGET,则为AUTO;否则为MANUAL。
4.25SQL_TRACE
参数类型:
布尔型
参数类:
静态
说明:
禁用或启用SQL跟踪设备。
如果设置为TRUE,将收集优化信息,这些信息对改善性能很有用。
由于使用SQL跟踪设备将引发系统开销,只应在需要优化信息的情况下使用TRUE。
值范围:
TRUE|FALSE
默认值:
FALSE
4.26TIMED_STATISTICS
参数类型:
布尔型
参数类:
动态
说明:
收集操作系统的计时信息,这些信息可被用来优化数据库和SQL语句。
要防止因从操作系统请求时间而引起的开销,请将该值设置为零。
将该值设置为TRUE对于查看长时间操作的进度也很有用。
值范围:
TRUE|FALSE
默认值:
FALSE
4.27DB_CACHE_SIZE
参数类型:
整型
参数类:
动态
说明:
为高速缓存指定标准块大小的缓冲区。
值范围:
至少16M。
默认值:
48M
4.28DB_KEEP_CACHE_SIZE
参数类型:
整型
参数类:
动态
说明:
指定KEEP缓冲池中的缓冲区数。
KEEP缓冲池中的缓冲区大小是主要块大小(即db_block_size 定义的块大小)。
值范围:
0或至少一个区组大小(更小的值将自动舍入到区组大小)。
默认值:
0M
4.29DB_RECYCLE_CACHE_SIZE
参数类型:
整型
参数类:
动态
说明:
指定RECYCLE缓冲池的大小。
RECYCLE池中的缓冲区大小是主要块大小。
值范围:
0或至少一个区组大小(更小的值将自动舍入到区组大小)。
默认值:
0M
4.30DB_FILE_MULTIBLOCK_READ_COUNT
参数类型:
整型
参数类:
动态
说明:
在涉及一个完全连续扫描的一次I/O操作过程中读取的块的最大数量。
值范围:
根据操作系统而定。
默认值:
8
4.31DB_WRITER_PROCESSES
参数类型:
整型
参数类:
静态
说明:
一个例程的数据库写进程的初始数量。
如果使用了DBWR_IO_SLAVES,则只能使用一个数据库写进程。
值范围:
1–10
默认值:
1
5参数设置原则
一般的内存分配原则:
sga50%(其中80%databuffer,15%sharepool,5%其他)
pga30%
os20%
例如:
2g的windows的平台,os300m,sag1.2g,pga500m
原则:
SGA+PGA+OS使用内存<总物理RAM
5.1SGA系统全局区
(包括以下五个区)
数据缓冲区:
db_block_buffers
共享池:
shared_pool_size
日志缓冲区:
log_buffer
JAVA池:
Java_pool_size
大池:
Large_pool_size
SGA大小:
SGA=db_block_buffers*db_block_size+shared_pool_size+log_buffer+Java_pool_size+large_pool_size
原则:
达到系统可用内存的55-58%就可以了。
基本掌握的原则是:
db_block_buffer通常可以尽可能的大,shared_pool_size要适度,log_buffer通常大到几百K到1M就差不多了
5.1.1数据缓冲区(DB_BLOCK_BUFFERS)
存储由磁盘数据文件读入的数据。
大小:
db_block_buffers*db_block_size
Oracle9i设置数据缓冲区为:
db_cache_size
原则:
SGA中主要设置对象,一般为系统可用内存40%。
5.1.2共享池(SHARED_POOL_SIZE)
共享池:
(shared_pool_size):
数据字典,sql缓冲,pl/sql语法分析.加大可提速度。
原则:
SGA中主要设置对象,一般为系统可用内存10%
5.1.3日志缓冲区(LOG_BUFFER)
日志缓冲区:
(log_buffer)存储数据库的修改信息。
原则:
128K----1M之间,不应该太大
5.1.4JAVA池(JAVA_POOL_SIZE)
JAVA池:
(Java_pool_size)主要用于JAVA语言的开发。
原则:
若不使用java,原则上不能小于20M,给30M通常就够了
5.1.5大池(LARGE_POOL_SIZE)
大池(Large_pool_size) 如果不设置MTS,主要用于数据库备份恢复管理器RMAN。
原则:
若不使用MTS,5----10M之间,不应该太大
5.2PGA程序全局区
5.2.1分类区(SORT_AREA_SIZE)与哈希区(HASH_AREA_SIZE)
A、Sort_area_size 用于排序所占内存
B、Hash_area_size用于散列联接,位图索引
这两个参数在非MTS下都是属于PGA,不属于SGA,是为每个session单独分配的,在我们的服务器上除了OS+SGA,一定要考虑这两部分
原则:
OS使用内存+SGA+session*(sort_area_size+hash_area_size+2M)<总物理RAM为好
6参数设置实例
实例配置基本掌握的原则是,db_block_buffer通常可以尽可能的大,shared_pool_size要适度,log_buf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 参数设置 技术 手册