oracle参数有何特点?
Oracle数据库系统根据初始化参数文件init。ora中设置的参数来配置自身的启动,每个实例在启动之前,首先读取这些参数文件中设置的不同参数。Oracle系统中的参数,根据系统使用情况可以简单分为两大类,普通参数,也就是Oracle系统正常使用的一些参数,另外一类就是特殊参数,包括三种,过时参数、强调参数和隐藏参数。 随着Oracle数据库新版本的发布,相应每次都会增加或者删除一些参数。如何查询当
前版本数据库系统的参数情况以及当前系统版本相对于以前版本增加或者丢弃的那些参数呢?本文将详细介绍如何查询当前系统版本中的各种参数情况。
一、过时参数和强调参数
Oracle数据库中,系统...全部
Oracle数据库系统根据初始化参数文件init。ora中设置的参数来配置自身的启动,每个实例在启动之前,首先读取这些参数文件中设置的不同参数。Oracle系统中的参数,根据系统使用情况可以简单分为两大类,普通参数,也就是Oracle系统正常使用的一些参数,另外一类就是特殊参数,包括三种,过时参数、强调参数和隐藏参数。
随着Oracle数据库新版本的发布,相应每次都会增加或者删除一些参数。如何查询当
前版本数据库系统的参数情况以及当前系统版本相对于以前版本增加或者丢弃的那些参数呢?本文将详细介绍如何查询当前系统版本中的各种参数情况。
一、过时参数和强调参数
Oracle数据库中,系统提供了几个视图可以查看系统参数的情况。视图V$OBSOLETE_PARAMETER中含有所有的过时(obsolete)和强调(underscored)参数。
这里首先说明一下什么是Oracle的过时(obsolote)和强调(underscored)参数,过时参数,顾名思义就是在Oracle以前的版本中存在,但在新版本中已经淘汰了的参数,已经不再使用;而强调参数,是指那些在新版本中保留了下来,但是除非特殊需要不希望用户使用的那些参数。
在视图V$OBSOLETE_PARAMETER中,包含这些参数的名称和一个标志字ISSPECIFIED,该标志字用来指出这个参数是否在init。ora文件中已实际设置。
下面的SQL脚本列出了当前系统中所有的过时参数名称以及它们是否在当前系统中设定。
SQL> COL name format a50;
SQL> SELECT name, isspecified FROM v$obsolete_parameter;
上面谈到,Oracle系统并没有将V$OBSOLETE_PARAMETER视图中的所有参数均丢弃,而是将其中的一部分转换为强调参数,下面就来讨论如何查看这些参数是已被丢弃还是被转换。
这可以通过系统视图X$KSPPO来查看,该视图中包含一个名为KSPPOFLAG的字段,用来指明该参数在当前版本中是被丢弃还是被强调,如果该值为1,则表示该参数已被丢弃,该值为2,则表明该参数现为强调参数。
SELECT kspponm,
DECODE(ksppoflg, 1,';Obsolete';, 2, ';Underscored';)
FROM x$ksppo
ORDER BY kspponm;
注:该视图只在sys用户下可以看到。
二、隐藏参数
Oracle系统中还有一类参数称之为隐藏参数(hidden parameters),是系统中使用,但Oracle官方没有公布的参数,这些参数可能是那些还没有成熟或者是系统开发中使用的参数。
这些参数在所有Oracle官方提供的文档中都没有介绍,他们的命名有一个共同特征就是都以';_';作为参数的首字符,诸如Oracle 8i中的_trace_files_public和_lock_sga_areas等等。
下面的查询可以得到当前系统中的所有隐藏参数(以sys身份登录):
SELECT ksppinm, ksppstvl, ksppdesc
FROM x$ksppi x, x$ksppcv y
WHERE x。
indx = y。indx
AND translate(ksppinm,';_';,';#';) like ';#%';;
三、系统当前参数
下面的脚本以英文字母顺序列出了系统当前使用的所有参数。
在列出的参数中,如果参数名称前面有#这个符号,则表示该参数没有明确指定,采用了系统中的默认参数。一般在一个新的Oracle版本安装完成后,首先运行该脚本,则可以生成该版本数据库的标准init。
ora文件。
SET pagesize 9000
SET head OFF
SET term OFF
SELECT
DECODE(isdefault, ';TRUE';, ';# ';) ||
DECODE(isdefault, ';TRUE';, RPAD(name,43), RPAD(name,45)) ||
'; = '; || value
FROM v$parameter
ORDER BY name;
参数 类别 说明 值范围 默认值
always_anti_join 优化程序 一个反连接返回符合 NOT IN 子查询的行。
优化程序校验是否可能反连接,如果可能,按照该参数的值处理子查询。 NESTED_LOOPS|MERGE | HASH NESTED_LOOPS
always_semi_join 优化程序 一个半连接返回符合 EXISTS 子查询的行。
如果在限制子查询的列上尚未定义索引,半连接可以改善查询性能。 NESTED_LOOPS | MERGE | HASH NESTED_LOOPS
aq_tm_processes 如果大于零,就会启用对队列消息的时间监视。
该时间值可用于指定消息的延迟和失效属性 (用于应用程序的开发)。 0 - 10 0
audit_file_dest 对于每个与数据库的 SYSDBA 或 INTERNAL 连接,都将在该目录中生成一个审计文件 (仅用于 UNIX)。
任何有效的目录名 ORACLE_HOME/rdbms/audit
audit_trail 安全性与审计 启用或禁用数据库审计。如果该参数为 TRUE 或 DB,审计记录将被写入 SYS。AUD$ 表中;如果参数为OS,则写入一个操作系统文件。
NONE | FALSE | DB | TRUE | OS NONE
background_core_dump 诊断统计 是否将 SGA 信息转储到一个生成的核心文件中 (用于 UNIX)。
FULL | PARTIAL FULL
background_dump_dest 诊断统计 指定在 Oracle 操作过程中为后台进程 (LGWR,DBW n 等等) 写入跟踪文件的路径名(目录或磁盘)。
它还定义记录着重要事件和消息的数据库预警文件的位置。 任何有效的目录名。 ORACLE_HOME/rdbms/log (根据操作系统而定)
backup_tape_io_slaves 备份与恢复 一个恢复管理器参数,用于确定读取或写入磁带是否要使用服务器进程或一个附加的 I/O 从属。
TRUE | FALSE FALSE
bitmap_merge_area_size 优化程序 指定合并从对索引的某一范围进行扫描而检索得到的位图要使用的内存量。 根据系统而定。 1M
blank_trimming ANSI相容性 果值为 TRUE,即使源长度比目标长度 (SQL92 兼容) 更长,也允许分配数据。
RUE | FALSE FALSE
buffer_pool_keep 高速缓存与I/O 保留池大小 (从 DB_BLOCK_BUFFERS 分配)。目的是将对象保留在内存中,以减少 I/O。
特定的字符串值。如: buffers:400 无
buffer_pool_recycle 高速缓存与I/O 循环池大小 (从 DB_BLOCK_BUFFERS 分配)。目的是使用对象后将其清除,以便重复使用内存。
特定的字符串值 如: buffers:50 无
commit_point_strength 分布式复制快照 一个用于确定分布式事务处理中提交点的位置的值。 0 -255 据操作系统而定
compatible 移植与兼容 允许使用一个新的发行版,同时保证与先前版本的向后兼容性。
默认为当前发行版。 由发行版确定
control_file_record_keep_time 重做日照、恢复与控制文件 控制文件中可重新使用部分中的记录必须保留的最短时间 (天数)。 0 -365 7
control_files 重做日照、恢复与控制文件 指定一个或多个控制文件名。
Oracle 建议对于不同设备或 OS 文件镜像使用多个文件。 1 - 8 文件名 (带路径名)。 根据操作系统而定
core_dump_dest 诊断与统计 指定核心转储位置的目录名 (用于 UNIX)。
任何有效的目录名。 ORACLE_HOME/dbs
cpu_count 进程和会话 Oracle 可用的 CPU 的数目 (用于计算其它参数值)。请勿更改该值。 0 - 无限制 由 Oracle 自动设置
create_bitmap_area_size 优化程序 指定为创建位图索引而分配的内存量。
根据操作系统而定。
c
ursor_sharing 游标和库高速缓存 控制可以终止共享相同的共享游标的 SQL 语句类型。 强制:强制表达方式不同但语句意思相同的语句共享一个游标。EXACT:只令完全相同的 SQL 语句共享一个游标。
cursor_space_for_time 游标和库高速缓存 一个游标引用共享 SQL 区时,确定将 SQL 区保留在共享池中还是从中按过期作废处理。 TRUE | FALSE FALSE (过期作废)
db_block_buffers 高速缓存与I/O 缓冲区高速缓存中 Oracle 块的数量。
该参数会显着影响一个例程的 SGA 总大小。 4 - 根据操作系统而定。
db_block_checking 诊断与统计 用于控制是否检查事务处理管理的块有无损坏。 TRUE | FALSE FALSE
db_block_checksum 高速缓存与I/O DBWn、ARCH 和 SQL*loader 是否为每一个数据块读或写计算或校验块的校验和。
TRUE | FALSE FALSE
db_block_lru_latches 高速缓存与I/O 指定 LRU 闩锁集数量的上限。只有在 V$LATCH 中的失败率超过 3% 的情况下,才需要增大该值。
1 - CPU 的数量 CPU_COUNT/2
db_block_max_dirty_target 高速缓存与I/O 缓冲区高速缓存中可以为灰缓冲区的数量。可以用来估计在恢复过程中读取的块数。
1000 到缓冲区高速缓存的大0 不限制缓冲区)。 缓冲区高速缓存中的所有缓冲区
db_block_size 高速缓存与I/O 一个 Oracle 数据库块的大小 (以字节计)。该值在创建数据库时设置,而且此后无法更改。
1024 - 65536 (根据操作系统而定)。 2048 (根据操作系统而定)
db_domain 分布式、复制与快照 指定数据库名的扩展名 (例如:US。ORACLE。COM) 为使一个域中创建的数据库名唯一,建议指定该值。
由句点分隔的任何字符串,最长可以有 128 个字符。 WORLD
db_file_direct_io_count 高速缓存与I/O 用于备份、复原或直接方式读写 I/O 操作的块的数量。 根据操作系统而定。
64
db_file_multiblock_read_count 高速缓存与I/O 在涉及一个完全连续扫描的一次 I/O 操作过程中读取的块的最大数量。 根据操作系统而定。 8
db_file_name_convert 备用数据库 将主数据库上的一个新数据文件的文件名转换为备用数据库上的文件名。
一个有效的主/备用目录和文件名对。 无
db_files 高速缓存与I/O 可为该数据库打开的数据文件的最大数量。 根据操作系统而定。 据操作系统而定
db_name 重作日照、恢复与控制文件 一个数据库标识符,应与CREATE DATABASE 语句中指定的名称相对应。
任何有效名称最多可有 8 个字符。 无 (但应指定)
db_writer_processes 高速缓存与I/O 一个例程的数据库写进程的初始数量。如果使用了 DBWR_IO_SLAVES,则只能使用一个数据库写进程。
1 - 10 1
dblink_encrypt_login 分布式复制快照 连接到其它 Oracle 服务器时,数据库链路是否使用加密口令。 TRUE | FALSE FALSE
dbwr_io_slaves 高速缓存与I/O DBW0 进程使用的 I/O 从属的数量。
DBW0 进程及其从属始终写入磁盘。 0 - 根据操作系统而定。 0
disk_asynch_io 高速缓存与I/O 控制数据文件、控制文件和日志文件的 I/O 是否异步 (即在表扫描过程中进程是否重叠 I/O 和CPU请求)。
只有在您的平台支持磁盘异步 I/O的情况下才能更改该参数。 TRUE | FALSE TRUE
distributed_transactions 分布式复制快照 一个数据库一次可参与的分布式事务处理的最大数量。
如果由于网络故障异常频繁而减少该值,将造成大量未决事务处理。 0 - TRANSACTIONS 参数值。 根据操作系统而定
dml_locks 锁 所有用户获取的表锁的最大数量。对每个表执行 DML 操作均需要一DML 锁。
例如,如果3个用户修改2个表,就要求该值为 6。 0 或 20 到无限制。 4 * TRANSACTIONS (派生)
enqueue_resources 锁 入队可使并行进程能够共享资源。例如,Oracle 允许一个进程以共享模式锁定一个表,以共享更新模式锁定另一个表。
10 - 65535 (7。3) 或 10 - 无限制 (8。1)。 派生 (该值大于 DML_LOCKS + 20 即已足够)
event 诊断和统计 由 Oracle 技术支持人员使用,以调试系统。
一般情况下,不应变更该值。 不可用。
fast_start_io_target 重作日志恢复和控制文件 指定在系统崩溃或例程恢复期间需要的 I/O 数量。该值比 DB_BLOCK_MAX_DIRTY_TARGET对恢复过程的控制更加精确。
0 (禁用 I/O 恢复限制) 或 1000,到高速缓存中的所有缓冲区数。 高速缓存中的所有缓冲区数
fast_start_parallel_rollback 事务处理和回滚段 执行并行回退时确定进程的最大数量。
在多数事务处理的运行时间都较长的系统上,该值很有用。收起