Oracle database 11g中的初始化参数可达上千个。下面我们介绍一些核心的参数。
1、diagnostic_dest
在11g中,有一种新的存储诊断信息的结构,称为自动诊断信息库(Automaticd Diagnostic Repository ADR)。
用些参数指定目录位置,如$ORACLE_BASE/diag/rdbms/orcl/orcl。其中第一个orcl为数据库名,第二个orcl为实例名。
2、 fixed_date
是11g中的一个新的参数,它允许设置sysdate返回常量日期,而不是当前日期。如fixed_date=yyyymm-dd hh24:mi:ss
默认为无,如fixed_date=none。些参数可以动态设置。
3、与审计有关的参数
(1)audit_trail
此参数用来打开或关闭数据库的审计功能。如果不打开,那么设置此参数为none或false,如audit_trail=none。
如果要打开审计,那么可以设置下面的值:
os Oracle将审计记录写入一个操作系统文件。
db Oracle将审计信息记录到sys下的aud$表中。
db,extended 类似于db设置,但提供了扩展信息,如sys.aud$.sqlbind和sqltext列。
xml 允许将审计信息以xml的形式写到os文件。
xml,extended 类似于xml,并添加扩展信息sqlbind,sqltext。
如audit_trail=db
无默认值,此参数为静态类型。
(2)audit_file_dest
如果设置audit_trail=os,或xml,xml,extended,那么此参数用于设置审计信息的目录位置。
如:audit_file_dest=$ORACLE_BASE/admin/orcl/audit
默认值:$ORACLE_HOME/rdbms/audit
参数类型:动态,可以用alter system .....deferred修改。
(3)audit_sys_operations
如果设置此参数为true,Oracle将审计sys用户或具有sysdba和sysoper角色的用户的所有活动,并将审计信息写入到文件或表。
如:audit_sys_operations=true
默认值:false
参数类型:静态
(4)ldap_directory_sysauth
是11g中的一个新参数,它允许或禁止对sysdba或sysoper权限的目录授权,值为yes或no。
如:ldap_directory_sysauth=yes
默认值:无
参数类型:静态
4、与数据库名和其他常用的参数
(1)db_name和db_unique_name
db_name用来设置数据库的名字,此参数为强制性参数。db_name与ORACLE_SID环境变量的值相同。db_name最多为8个字符。
如:db_name=orcl
默认值:false
参数类型:静态
db_unique_name指定全局唯一数据库名。
(2)db_domain
此参数指定数据库的完全限定名或叫做域名,这个名称一般与拥有数据库的组织机构名称相同。
如:db_domain=world
默认值:null
参数类型:静态
(3)instance_name
此参数用于指定实例的名称,在单一实例中,instance_name与db_name具有相同的值;在RAC中,可以给单个数据库服务分配多个实例。
如:instance_name=orcl
默认值:实例SID
参数类型:静态
(3)service_name
此参数为数据库服务提供一个名字,通常它是数据库名和数据库域的组合
如:service_name=orcl.world
默认值: db_name.db_domain
参数类型:动态,可以用alter system修改。
(4)compatible
此参数用来设置数据库的版本
如:copatible=11.1.0
默认值:11.1.0
参数类型:静态
(5)instance_type
此参数用来指定实例是一个数据库实例还是自动存储管理实例。
如:instance_type=asm
默认值:rdbms
参数类型:静态
(6)nls_date_format
此参数用来设置Oracle默认的日期格式。
如:nls_date_format=yyyy-mm-dd hh24:mi:ss
默认值:取决于nls_territory变量和操作系统。
参数类型:半动态半静态,可以用alter session修改,但不可以用alter system修改。
5、与文件有关我参数
(1)ifile
可以使用ifile在init.ora文件中嵌入其他初始化参数。
如:ifile=config.ora
默认值:无
参数类型:静态
(2) control_files
用此参数指定控制文件。控制文件的最小数目为1,Oracle建议,至少每个实例有两个控制文件。
如:control_file=($ORACLE_BASE/oradata/orcl/cont01.ctl,$ORACLE_BASE/oradata/orcl/cont02.ctl)
默认值:视操作系统而定
参数类型:静态
(3)control_file_record_keep_time
此参数指定Oracle保留控制文件中记录的天数,Oracle建议为此参数设置一个较高的值,以保留所有控制文件中联机磁盘备份信息。
如:control_file_record_wkkp_time=31
默认值:7
参数类型:动态,可以使用alter system修改
(4)utl_file_dir
在使用utl_file程序包读写操作系统文件时,可用utl_file_dir参数指定Oracle用来处理的IO目录。
如:utl_file_dir=$ORACLE_BASE/utl_dir
默认值:none 表示不使用
参数类型:静态
6、与管理的文件有关的参数
如果决定使用OMF(Oracle Managed File Oracle管理文件)这个特性时,需要用两个参数来定义其格式,分别如下:
(1)db_create_file_dest
此参数指定管理文件的默认目录。
如:db_create_file_dest=$ORACLE_BASE/admin/orcl/dbfile
默认值:无
参数类型:动态,可以用alter system 或session修改其格式
(2)db_create_online_log_dest_n
此参数指定OMF联机重做日志文件和控制文件的默认位置。
如:db_create_online_log_dest_1=$ORACLE_BASE/admin/orcl/log
默认值:无
参数类型:动态,可以用alter system或sessin修改
7、进程和会话参数
(1)processes
此参数设置并发连接到数据库进程数据的上限。
如:processed=500
默认值:6
参数类型:静态
(2)db_writer_processed
此参数指定实例数据库写进程的初始数目
如:db_writer_processes=8
默认值:1
参数类型:静态
(3)open_cursor
此参数设置单个会话在给定时间内可具有打开游标的数目限制。
如:open_cursor=300
默认值:50
参数类型:动态,可以用alter system修改
8、内在配置参数
(1)memory_target
在使用自动内在管理给Oracle实例分配内在时,用此参数memory_target指定分配给Oracle的内在。单位为KB,MB,GB
如:memory_target=1024M
默认值:0
参数类型:动态
(2)memory_max_target
此参数设置memory_target参数设置的最大值,范围从0到Oracle实例可用的最大内存。
如:memory_max_target=2G
默认值:0
参数类型:静态
如果指定了memory_target而忽略了memory_max_target,那么,memoery_max_target的值与memoery_target的值相同。
(3)db_cache_size
此参数设置那些具有基本块大小(由db_block_size定义块大小)的缓存区的默认缓存池大小。
如:db_cache_size=720M
默认值:如果指定了memory_target参数,则此参数默认为0,否则,默认值大于48M或4M
参数类型:动态,可用alter system修改
(4)db_keep_cache_size
缓冲池通常对放于其中的对象做同样的处理,只要缓冲区高速缓冲有可用的空间,那么任何对象将保留在池中。录池满的时,将删除最老的对象,为新对象腾出空间。
有两个专门的缓冲区池(保存池和回收池)允许在对象创建时指出希望缓冲区如何处理特定的对象。
此参数用来设置保存池的大小
如:db_keep_cache_size=500M
默认值:0,表示不配置此参数
参数类型:动态,可用alter system修改
(5)db_recycle_cache_size
此参数用来指定缓冲区高速缓冲回收池的大小。
如:db_recycle_cache_size=200M
默认值:0,表示不配置此参数
参数类型:动态
(6)db_nk_cache_size
此参数用来指定非标准大小的缓冲区高速缓冲。n可以使用2,4,8,32作为参数。
如:db_8k_cache_size=4096M
默认值:0
参数类型:动态
(7)client_result_cache_lag
此参数用来指定OCI客户机查询做出另一个往返的最长时间。单位为秒
如:client_result_cache_lag=1000
默认值:500(秒)
参数类型:静态
(8)client_result_cache_size
此参数指定对每个进程结果集调整缓冲,分配给客户机的最大内存。
如:client_result_cache_size=80M
默认值:0
参数类型:静态
(9)control_management_pack_access
此参数用来激活服务器的两个管理程序包。
诊断程序包:如:awr,addm等。
调优程序包:如;SQL Tuning Advisor,SQl Access Advisor等
如:control_management_pack_access=AWR
默认值:diagnostic+tuning
参数类型:动态,可以用alter system修改
(10)large_pool_size
此参数可以理解为是共享池的一个变种,是一个升级。可以使用此参数最大限度释放用于高速缓冲SQL查询和数据字典信息共享池。
如:large_pool_size=1G
默认值:0
参数类型:动态,可以使用alter system修改
9、归档日志参数
(1)log_archive_dest_n
其中n=1,2,3....10最多10个位置。此参数用来指定归档日志的位置。数据库仅在归档模式下才使用此参数。
如:log_archive_dest_1='location=$ORACLE_BASE/admin/orcl/arch'
默认值:无
参数类型:动态,可以使用alter system或session指定
(2)log_archive_format
此参数用来指定归档重做日志文件名的默认格式。格式参数如下:
%t 代表线程号,%s 代表日志序列号 %r 代表重做日志ID
如: log_archive_format='log%t_%s_%r.arc'
默认值:视操作系统而定
参数类型:静态
10、撒销空间参数
(1)undo_management
如果将undo_management设置为auto,则表示使用撒销空间来存储撒锁记录。Oracle将自动管理撒锁段。
如:undo_management=auot
默认值:auto
参数类型:静态
(2)undo_tablespace
此参数指定撒销记录的默认表空间,如果没有撒销表空间,则Oracle将把system回退段用于撒销存储。如果创建数据库时,没有指定此参数,并且选择了AUM(automatic unod management),Oracle将创建一个名为undotbs的默认表空间,此默认表空间具有一个10MB的数据文件,该文件会自动扩展,没有最大限制。
如:undo_tablespace=undotbs
l默认值:一个可用的撒销表空间
参数类型:动态,可以用alter system修改。
(3)undo_retention
此参数指定在被覆盖前可以保留撒销表空间中的重要信息量,单位为秒。
如:undo_retention=14400 (4小时)
默认值:900秒
参数类型:动态,可以使用alter system修改
11、Oracle许可证参数
Oracle软件的使用受到Oracle和客户之间的认证协议的限制,有两个重要的参数,如下:
(1)license_max_sessions
此参数设置任何时候你可以拥有的最大并发会话。一旦数据库达到此限额,新会话就不能连接。并出现数据库达到用户最大限额的警告,如果此参数为0,则数据库不实施会话许可证。
如:license_max_sessions=300
默认值:0
参数类型:动态,可以使用alter system修改
(2)license_max_users
此参数指定可在数据库中创建的最大用户数目。
如:license_max_users=1500
默认值:0
参数类型:动态,可以使用alter system修改
12、与性能和诊断有关的参数
(1)statistics_level
此参数用来设置Oracle收集统计信息的级别,值分别为:basic,typical,all。
值为basic时,禁止收集Oracle database 11g特性和功能需要的许多重要的统计数据,这此性能和功能包括如下:
AWR 快照
ADDM
所有服务器生成的预警
Automatic Shared Memory Management
自动化程序统计数据的收集
缓冲区高速缓冲和MTTR
计时统计数据
值为typical时,数据库将收集自身管理所需要的重要的统计数据,并且将提供最全面的性能。
设置为all时,Oracle将收集额外的统计数据,如计时OS统计数据和计划执行统计数据。
如:statistics_level=typical
默认值:typical
参数类型:动态,可以使用alter system修改
(2)optimizer_capture_sql_plan_baselines
此参数通过启用可重复SQL语句的捕捉和这些语句的SQL计划的生成。
如:optimizer_capture_sql_plan_baselines=true
默认值:false
参数类型:动态,可以使用alter system修改
(3)optimizer_mode
此参数指定Oracle查询优化程序执行的类型,值如下:
all_rows:查询优化程序对所有的SQL语句使用基于成本的方法,以最大吞吐量,最小资源为目标进行优化。
first_rows_n:查询优化程序使用基于成本的方法并以最短影响时间返回前n行为目标进行优化
first_rows:查询优化程序结合成本和启发式来寻找快速返回前几行的最好计划(此参数保持向后兼容性)。
如:optimizer_mode=first_rows_100
默认值: all_rows
参数类型:动态,可以用alter system修改
(4)optimizer_features_enable
此参数允许数据库升级后,保持旧版本的行为。如:从11.1升级到11.2,可以设置此参数为11.1,从保持11.1优化程序的行为。
如:optimizer_features_enable=11.1.1
默认值:11.2.3.0
参数类型:动态,可以使用alter system修改
(5)optimizer_dynamic_sampling
当一个对象无收集任何统计信息时,Oracle将动态采样收集一个简要的统计数据集。此参数用来设置动态采样的级别。
如:optimizer_dynamic_sampling=2
默认值:视版本而定
参数类型:动态,可以用alter system修改
(6)optimizer_use_invisible_indexes
此参数用来设置启用或禁用不可见索引
如:optimizer_use_invisible_indexes=true
默认值:false
参数类型:动态,可以用alter system修改
(7)optimizer_use_pending_statistics
此参数指定成本优化程序是否使用未决的统计数据
如:optimizer_use_pending_statistics=true
默认值:false
参数类型:动态,可以使用alter system修改
(8)optimizer_use_sql_plan_baselines
此参数用来启用或禁用存储在数据库中的SQL计划基线,如果你启用SQL Plan Management,优化程序将查看SQL计划基线并选择最低成本计划。
如:optimizer_use_sql_plan_baselines=true
默认值:false
参数类型:动态,可以用alter system修改
(9)plsql_code_type
此参数指定允许对plsql库单元指定本机或解释编译方式,可以取值,native,interpreted.
如:plsql_code_type=natice
默认值:interpreted
参数类型:动态,可以使用alter system修改
(10)result_cache_max_result
此参数指定单个结果集可使用的结果高速缓存的百分比,取值为从1到100
如:result_cache_max_result=25
默认值:5
参数类型:动态,可以使用alter system修改
(11)result_cache_max_size
此参数指定结果高速缓存可以使用SGA的最大值。此参数为0,表示禁用结果高速缓存。
如:result_cache_max_size=500M
默认值:取决于memary_target,sga_target,shared_pool
参数类型:动态,可以使用alter system修改
(12)result_cache_mode
此参数指定对于一条SQL,数据库何时使用内存中的结果高速缓冲。如果设置为manual,则必须在数据库查询中使用result_cahce提示以高速缓存结果,如果指定force,只要有可能,数据库将试图高速缓存所有语句结果。
如:result_cache_mode=force
默认值:manual
参数类型:动态,可以使用alter system修改
(13)sec_case_sensitive_logon
此参数启用或禁用密码大小写,可以取值true或false
如sec_case_sensitive_logon=true
默认值:true
参数类型:动态,可以使用alter system修改
(14)sec_max_falied_login_attempts
此参数指定客户机尝试身份验证的最大次数,达到最大次数后,服务器进程将自动取消连接尝试,最小值为1
如:sec_max_falied_login_attempts=3
默认值:10
参数类型:动态,可以用alter system修改
(15)query_rewrite_enabled
此参数启用或禁用查询重写
如:query_resrite_enabled=false
默认值:true
参数类型:动态,可以使用alter system修改
(16)query_rewrite_integrity
此参数指定查询重写中Oracle强制实施完整性规则的程度,值分别如下:
trusted:Oracle假定实体化视图是当前的,并且允许不是由Oracle强制实施的关系进行查询重写
enforced:Oracle不使用依赖于未实施的关系的转换,此模式总是使用最新的数据,保证了一致性和完整性。
stale tolerated:Oracle允许使用查询重写未实施的关系
如:query_rewrite_integtiy=trusted
默认值:enforced
参数类型:动态
(17)cursor_sharing
此参数为初始化参数中一个重要的参数,用来指定Oracle的SQL语句应该如何共享游标。它的值分别为:forced,exact,similar。
如:cursor_sharing=forced
默认值:exact
参数类型:动态
(18)db_block_size
此参数用来设置标准数据库块的大小(以字节为单位)。标准大小可以设置在2K到32K之间。
如:db_block_size=32768(32K)
默认值:8192(8K)
参数类型:静态
(19)db_file_mutliblock_read_count
此参数指定全表扫描中,Oracle将读取的最大块数。此参数的越大,全表扫描通常越有效。单位为K。
如:db_file_mutiblock_size=32
默认值:视平台而定
参数类型:动态
(20)sql_trace
此参数用来打开或关闭SQL跟踪程序。如果要调优某个查询或一组查询时,可以将其打开。一般情况下,不要将其打开,因为开销很大。
如:sql_trace=true
默认值:false
参数类型:动态
(21)timed_statistics
此参数用来指定Oracle在跟踪中是否收集计时统计数据。如果收集计时统计数据,则它们被用于某些动态性能视图中。
如:timed_statistics=true
默认值:如果将statistics_level设置为typical或all,则为true,否则为false
参数类型:动态
13、与恢复有关的参数
(1)db_recovery_file_dest_size
此参数指定闪回恢复区的大小
如:db_recovery_file_dest_size=2G
默认值:无
参数类型:动态
(2)db_recovery_file_dest
此参数指定闪回恢复区的默认位置
如:db_recovery_file_dest=$ORACLE_BASE/'flash_recovery_area/orcl
默认值:无
参数类型:动态
(3)db_flashback_retention_target
此参数指定可闪回数据库多长时间,单位为分。闪回特性取决于闪回日志,此参数指示闪回日志保留的时间长度,能够闪回数据多少取决于Oracle在闪回恢复区中保留了多少数据。
如:db_flashback_retention_targert=2880
默认值:1440
参数类型:动态
(4)resumable_timeout
此参数允许或禁止可恢复的空间的分配特性并在系统级指定可继续执行的暂停。例如:如果设置resumable_target=3600,则在出错前,数据库将挂起任何可继续执行的空间类型的操作并等待一小时。
如:resumable_target=7200
默认值:0
参数类型:动态
13、讹误检查参数
(1)db_lost_write_protect
此参数允许或禁止写丢失检查,主要用在Data Gurad环境,对数据库起备用或主数据库的作用。可取值为none,typical,full
如:db_lost_write_prodect=typical
默认值:none
参数类型:动态
(2)db_ultra_safe
可利用此参数来管理那些控制数据库保护级别的参数(如db_block_checking,db_block_checksum)的默认设置。值如下:
off:如果设置设置后面那些参数中的任意一个,则数据库不进行任何更改:db_block_checking,db_block_checksum或db_lost_write_protect。
data_only:数据库将db_block_checking参数设置为medium,将db_lost_write_protect参数设置为typical,将db_block_checksum设置为full。
data_and_index:数据库将db_block_checking设置为full,其它参数的值同data_only
如:db_ultra_safe=data_and_index
默认值:off
参数类型:静态
(3)db_block_checksum
此参数用来设置块校验级别,如果设置为full,Oracle将在内存中的任何讹误写到磁盘之前发现它。建议设置为typical,开销较小。如果设置为off,则DBWn仅对于System表空间计算校验和。
如:db_block_checksum=full
默认值:typical
参数类型:动态
(4)db_block_checking
使用此参数,可设置数据库检查讹误块。其值分别如下:
off或false:数据库不对除system表空间外的表空间进行检查
low:在更改内存中的块内容后,数据库只进行基本功块头检查。
medium:除了low设置下进行的检查外,数据库还对所有非索引组织表块进行语义块检查。
full或true:数据库进行low和medium下的所有检查,此外还对索引块进行语义检查。
如:db_block_checking=full
默认值:false
参数类型:动态
(5)db_securefile
此参数指定数据库希望把大对象作为11g中的新文件类型SecureFile处理,还是作为传统的BasicFile处理。如果将此参数设置为never,则数据库将创建你指定的SecureFile的所有lobs作为传统的Basicfile处理。
如:db_securefile=always
默认值:permitted
参数类型:动态
15、与安全有关的参数
(1)os_authent_prefix
Oracle使用此参数的值作为操作系统用户名的前缀。默认值为ops$,Oracle建议将此参数值设置为空串。
如:os_suthent_prefix=""
默认值:ops$
参数类型:静态
(2)remote_login_passwordfile
此参数指出,Oracle是否需要验证而检查一个密码文件,以及多个数据库可使用此密码文件。如果将此参数设置为none,Oracle将忽略任何密码文件,所有的授权用户都必须通过操作系统验证。如果设置为shared,Oracle将查找一个密码文件以确认非sys用户以外的用户。如设置为exclusive,只允许一个数据库使用密码文件,该数据库可以包括sys和非sys用户。
如:remote_login_passwordfile=shared
默认值:exclusive
参数类型:静态