axloghistory 1
maxdatafiles 254
maxinstances 1
archivelog
character set ZHS32GB18030
national character set AL16UTF16
datafile '${ORACLE_BASE}/oradata/${ORACLE_SID}/system01.dbf' size 300M
default temporary tablespace tbstemp tempfile '${ORACLE_BASE}/oradata/${ORACLE_SID}/temp01.dbf' size 500M
undo tablespace tbsundo datafile '${ORACLE_BASE}/oradata/${ORACLE_SID}/undo01.dbf' size 500M;
其特点为使用专用的回滚和临时表空间,而不象Oracle 8i中的那样,回滚和临时表空间与普通表空间没有差异,这样既简化了配置也有利于效能提高。要注意临时表空间的指定文件关键字是tempfile而不是通用的datafile,而且临时表空间的存储选项必须为uniform,由Oracle系统决定。同样回滚表空间也是由Oracle系统决定。不必人工干预。
Oracle 9i在$ORACLE_HOME/dbs下可使用二进制配置文件,缺省为spfile{实例名}.ora,如spfileoradb.ora,支持Oracle系统进程在不重启的情况下动态调整参数,这对要求不间断运行的系统是有利的。在建库阶段就可将此配置文件创建起来。
create spfile from pfile= '${ORACLE_BASE}/admin/${ORACLE_SID}/init${ORACLE_SID}.ora
完整步骤见/9i/createdb.sh,编辑如pfile,数据文件目录等参数,以符合实际情况,并转移到$ORACLE_BASE/admin/oradb/create/下,执行。
2.2.2 创建用户表空间
Oracle 9i 对于表空间管理一个明显的变化是改数据字典管理(extent management dictionary)为表空间本地管理(extent management local),还可以根据建立的数据对象对空间的要求自动确定扩展块的大小(autoallocate),最小为 64K,这两项都是创建表空间的缺省选项。
create tablespace tbsdata datafile '…' [ extent management local ] [ autoallocate ];
而对于指定每个扩展块大小的创建策略,设立了新选项:统一扩展块大小(uniform [size xxx[K|M]]),可覆盖autoallocate 选项,如果不加上具体的size xxx[K|M],缺省为1M,这样就不必考虑Oracle 8i中的如initial,next, pctincrease,maxextents等default storage参数应如何组合,事实上Oracle 8i的这些设置原本就没有什么意义。
不能够同时指定extent management local和default storage,换言之,default storage只能和extent management dictionary一起显式指定。
如果未指定extent management的类型,Oracle 9i缺省使用local方式,如果又同时使用default storage选项,就有以下的判断:
如果使用minimun extent,Oracle检查是否minumum extent=initial=next且pctincrease=0,如是,Oracle使用uniform选项,size=initial;如不是,Oracle忽略指定选项,使用autoallocate。
如果未指定minimum extent,Oracle检查是否initial=next且pctincrease=0,如是Oracle使用uniform选项,size=initial;如不是Oracle忽略指定选项,使用autoallocate。
为了避免与Oracle 8i的习惯做法混淆,建议只使用Oracle 9i较简洁的方法。
对于存储少量静态数据的表空间来说,如配置信息等,可简单地写为:
create tablespace tbsdata datafile '…';
对于必须关心其扩展块大小的表空间,如大批量的记录或索引,可简单地写为:
create tablespace tbsdata datafile '…' uniform size 10M;
3 初始化文件配置
所有参见内容都在附件01_install_02_create_03_init/下。
描述initoradb.ora中各选项。
3.1 Oracle 8 & 8i
具体参见8i/initoradb.ora。
db_block_size
数据库基本数据块尺寸,字节为单位。
当涉及到大量数据交换时,例如export/import操作时,此参数对数据库性能有非常大的影响,设定一个较大的值,有利于提高数据吞吐量,但由于db block是文件和内存之间交换的基本单位,过大的值反而会交换不需要的记录,增加额外的I/O。
一般取8k就已能获得较满意效果。
db_block_buffers
数据缓冲区,db_block_size为单位,不超过1/4内存
计算查询缓冲命中率:
SELECT name, value FROM v$sysstat WHERE name IN ('db block gets', 'consistent gets', 'physical reads');
Hit Ratio = 1 - ( physical reads / (db block gets + consistent gets) )
SELECT name, phyrds, phywrts FROM v$datafile df, v$filestat fs WHERE df.file# = fs.file#
db block gets:在内存buffer中的命中次数
consistent gets:一致性命中次数,指在内存buffer中未命中,但从回滚段或数据文件中获得命中
physical reads:在数据文件中的读次数
注意:一般HitRatio达到90%以上就可以认为已达到优化,这个数值应在系统运行稳定后进行统计。
shared_pool_size
数据字典和SQL操作缓冲区,字节为单位,不超过1/4内存
select (sum(pins - reloads)) / sum(pins) "Lib Cache" from v$librarycache;
select (sum(gets - getmisses - usage - fixed)) / sum(gets) "Row Cache" from v$rowcache;
select * from v$sgastat where name = 'free memory'
注意:Cache命中率达到95%以上就可以认为已达到优化,这个数值应在系统运行稳定后进行统计
log_checkpoint_interval
日志提交点数据量间隔
以操作系统block(通常512-byte)为单位,当日志累计至此参数,会使sga中dirty buffer被同步至数据文件,日志切换时也会引起此操作,如设为0,则相当于无限大,此参数失去作用,日志提交仅依靠日志文件的切换。
应选择适当大小的日志文件,同时使log_checkpoint_interval略大于日志文件或设为0。原则上应该避免过于频繁的checkpoint操作,控制在30分钟以上为好。
推荐此参数设为0。
log_buffer
在线日志缓冲,字节为单位,512K或128K*CPU数量,取较大值
processes和sessions
dedicated server模式下每一个连接都有一个Oracle服务进程(process)为之服务,这个连接本身也就是一个会话(session)。
shared server模式下所有连接共享一个Oracle服务进程池,这样process和session就不再是一一对应,sessions要大于processes。
sort_area_size和sort_area_retained_size
排序缓冲区,字节为单位。
当排序记录被全部取走后,缓冲区缩减到sort_area_retained_size,为减少缓冲区缩放的开销,可使sort_area_size和sort_area_retained_size取相同值。
hash_area_size
hash join缓冲区,字节为单位,缺省为2*sort_area_size。
db_file_multiblock_read_count[@more@]
maxdatafiles 254
maxinstances 1
archivelog
character set ZHS32GB18030
national character set AL16UTF16
datafile '${ORACLE_BASE}/oradata/${ORACLE_SID}/system01.dbf' size 300M
default temporary tablespace tbstemp tempfile '${ORACLE_BASE}/oradata/${ORACLE_SID}/temp01.dbf' size 500M
undo tablespace tbsundo datafile '${ORACLE_BASE}/oradata/${ORACLE_SID}/undo01.dbf' size 500M;
其特点为使用专用的回滚和临时表空间,而不象Oracle 8i中的那样,回滚和临时表空间与普通表空间没有差异,这样既简化了配置也有利于效能提高。要注意临时表空间的指定文件关键字是tempfile而不是通用的datafile,而且临时表空间的存储选项必须为uniform,由Oracle系统决定。同样回滚表空间也是由Oracle系统决定。不必人工干预。
Oracle 9i在$ORACLE_HOME/dbs下可使用二进制配置文件,缺省为spfile{实例名}.ora,如spfileoradb.ora,支持Oracle系统进程在不重启的情况下动态调整参数,这对要求不间断运行的系统是有利的。在建库阶段就可将此配置文件创建起来。
create spfile from pfile= '${ORACLE_BASE}/admin/${ORACLE_SID}/init${ORACLE_SID}.ora
完整步骤见/9i/createdb.sh,编辑如pfile,数据文件目录等参数,以符合实际情况,并转移到$ORACLE_BASE/admin/oradb/create/下,执行。
2.2.2 创建用户表空间
Oracle 9i 对于表空间管理一个明显的变化是改数据字典管理(extent management dictionary)为表空间本地管理(extent management local),还可以根据建立的数据对象对空间的要求自动确定扩展块的大小(autoallocate),最小为 64K,这两项都是创建表空间的缺省选项。
create tablespace tbsdata datafile '…' [ extent management local ] [ autoallocate ];
而对于指定每个扩展块大小的创建策略,设立了新选项:统一扩展块大小(uniform [size xxx[K|M]]),可覆盖autoallocate 选项,如果不加上具体的size xxx[K|M],缺省为1M,这样就不必考虑Oracle 8i中的如initial,next, pctincrease,maxextents等default storage参数应如何组合,事实上Oracle 8i的这些设置原本就没有什么意义。
不能够同时指定extent management local和default storage,换言之,default storage只能和extent management dictionary一起显式指定。
如果未指定extent management的类型,Oracle 9i缺省使用local方式,如果又同时使用default storage选项,就有以下的判断:
如果使用minimun extent,Oracle检查是否minumum extent=initial=next且pctincrease=0,如是,Oracle使用uniform选项,size=initial;如不是,Oracle忽略指定选项,使用autoallocate。
如果未指定minimum extent,Oracle检查是否initial=next且pctincrease=0,如是Oracle使用uniform选项,size=initial;如不是Oracle忽略指定选项,使用autoallocate。
为了避免与Oracle 8i的习惯做法混淆,建议只使用Oracle 9i较简洁的方法。
对于存储少量静态数据的表空间来说,如配置信息等,可简单地写为:
create tablespace tbsdata datafile '…';
对于必须关心其扩展块大小的表空间,如大批量的记录或索引,可简单地写为:
create tablespace tbsdata datafile '…' uniform size 10M;
3 初始化文件配置
所有参见内容都在附件01_install_02_create_03_init/下。
描述initoradb.ora中各选项。
3.1 Oracle 8 & 8i
具体参见8i/initoradb.ora。
db_block_size
数据库基本数据块尺寸,字节为单位。
当涉及到大量数据交换时,例如export/import操作时,此参数对数据库性能有非常大的影响,设定一个较大的值,有利于提高数据吞吐量,但由于db block是文件和内存之间交换的基本单位,过大的值反而会交换不需要的记录,增加额外的I/O。
一般取8k就已能获得较满意效果。
db_block_buffers
数据缓冲区,db_block_size为单位,不超过1/4内存
计算查询缓冲命中率:
SELECT name, value FROM v$sysstat WHERE name IN ('db block gets', 'consistent gets', 'physical reads');
Hit Ratio = 1 - ( physical reads / (db block gets + consistent gets) )
SELECT name, phyrds, phywrts FROM v$datafile df, v$filestat fs WHERE df.file# = fs.file#
db block gets:在内存buffer中的命中次数
consistent gets:一致性命中次数,指在内存buffer中未命中,但从回滚段或数据文件中获得命中
physical reads:在数据文件中的读次数
注意:一般HitRatio达到90%以上就可以认为已达到优化,这个数值应在系统运行稳定后进行统计。
shared_pool_size
数据字典和SQL操作缓冲区,字节为单位,不超过1/4内存
select (sum(pins - reloads)) / sum(pins) "Lib Cache" from v$librarycache;
select (sum(gets - getmisses - usage - fixed)) / sum(gets) "Row Cache" from v$rowcache;
select * from v$sgastat where name = 'free memory'
注意:Cache命中率达到95%以上就可以认为已达到优化,这个数值应在系统运行稳定后进行统计
log_checkpoint_interval
日志提交点数据量间隔
以操作系统block(通常512-byte)为单位,当日志累计至此参数,会使sga中dirty buffer被同步至数据文件,日志切换时也会引起此操作,如设为0,则相当于无限大,此参数失去作用,日志提交仅依靠日志文件的切换。
应选择适当大小的日志文件,同时使log_checkpoint_interval略大于日志文件或设为0。原则上应该避免过于频繁的checkpoint操作,控制在30分钟以上为好。
推荐此参数设为0。
log_buffer
在线日志缓冲,字节为单位,512K或128K*CPU数量,取较大值
processes和sessions
dedicated server模式下每一个连接都有一个Oracle服务进程(process)为之服务,这个连接本身也就是一个会话(session)。
shared server模式下所有连接共享一个Oracle服务进程池,这样process和session就不再是一一对应,sessions要大于processes。
sort_area_size和sort_area_retained_size
排序缓冲区,字节为单位。
当排序记录被全部取走后,缓冲区缩减到sort_area_retained_size,为减少缓冲区缩放的开销,可使sort_area_size和sort_area_retained_size取相同值。
hash_area_size
hash join缓冲区,字节为单位,缺省为2*sort_area_size。
db_file_multiblock_read_count[@more@]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8227599/viewspace-933018/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8227599/viewspace-933018/