说明:
ORA-02049是一个分布式事务等待超时的错误,当一个session 持有一个行级锁,另一个分布式事务比如通过dblink也想修改相同行的数据,就会产生行锁队列等待,当等待时间超过了系统参数distributed_lock_timeout的值时,就产生了这个错误,任何通过通过DBLINK的操作都是分布式事物。
测试库1:
创建测试表并插入测试数据:
SQL> create table test(id number(10),name varchar(20));
Table created.
SQL> insert into test values(1,'baoyuhang');
1 row created.
SQL> insert into test values(2,'dbhang');
1 row created.
SQL> commit;
Commit complete.
SQL> update test set name='A' where id=1;
1 row updated.
*此事务不提交
测试库2:
创建dblink:
SQL> create database link to_tests CONNECT TO hr IDENTIFIED BY hr USING 'test';
Database link created.
通过DBLINK修改数据库1中的test表id=2的行:
SQL> update test@to_tests set name='B' where id=2;
1 row updated.
通过DBLINK修改数据库1中的test表id=1的行:
SQL> update test@to_tests set name='B' where id=1;
Hang住
......
......
......
等待60秒后出现如下错误
ERROR at line 1:
ORA-02049: timeout: distributed transaction waiting for lock
ORA-02063: preceding line from TO_TESTS
分布式锁资源等待超时时间由distributed_lock_timeout参数控制.默认为60s
SQL> show parameter distributed_lock_timeout
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
distributed_lock_timeout integer 60
当等待时间超过该参数值就会出现ORA-02049: timeout: distributed transaction waiting for lock
以上这种测试情况属于非分布式事务阻塞了分布式事务的修改.
还有一种情况属于分布式事务阻塞分布式事务的情况(即两个session同时通过dblink修改相同行数据)
(注意在Oracle中通过DBLINK进行的事务操作都属于分布式事务类型)
生产中如果出现ORA-02049问题的解决措施:
问题模拟:
在数据库2开启两个会话通过DBLINK修改相同的数据库1中表中的数据行
session1:
SQL> update test@to_tests set name='DBhang' where id=1;
1 row updated.
--不提交
session2:
SQL> update test@to_tests set name='baoyuhang' where id=1;
Hang住
......
......
......
等待60秒后出现如下错误
ERROR at line 1:
ORA-02049: timeout: distributed transaction waiting for lock
ORA-02063: preceding line from TO_TESTS
定位造成锁阻塞的Session:
查询等待事件是没有输出的:
SQL>select event,count(*) from gv$session_wait where wait_class<>'Idle' group by event;
no rows select
采用如下语句进行查询:
SELECT
S.USERNAME,
DECODE(L.TYPE, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
O.OWNER,
O.OBJECT_NAME,
O.OBJECT_TYPE,
S.SID,
S.SERIAL#,
S.TERMINAL,
S.MACHINE,
S.PROGRAM,
S.OSUSER,
S.sql_id,
S.prev_sql_id
FROM V$SESSION S, V$LOCK L, DBA_OBJECTS O
WHERE L.SID = S.SID
AND L.ID1 = O.OBJECT_ID(+)
AND S.USERNAME IS NOT NULL;
SQL_ID是当前正在执行的SQL,我们可以根据prev_sql_id查询出该会话最后一次执行的SQL:(不一定是造成分布式锁资源等待的资源的语句,并不准确)
select sql_text from v$sql where sql_id='dkss7uk27mgm9';
SQL_TEXT
-----------------------------------------------------
update test@to_tests set name='baoyuhang' where id=1
根据sid,serial# kill会话:
alter system kill session 'sid,serial#';
alter system kill session '69,127';
alter system kill session '191,81';
解决完毕!
问题总结:
一般在生产环境下出现分布式锁资源等待问题就是业务逻辑问题,要修改事务提交的频率,减少多个session同时修改相同数据,减小事务,并且小事务要快速执行commit提交,如果业务逻辑中果真存在大事务60秒内无法提交,建议适当调大distributed_lock_timeout参数值
说明: ORA-02049是一个分布式事务等待超时的错误,当一个session 持有一个行级锁,另一个分布式事务比如通过dblink也想修改相同行的数据,就会产生行锁队列等待,当等待时间超过了系统参数distributed_lock_timeout的值时,就产生了这个错误,任何通过通过DBLINK的操作都是分布式事物。模拟:测试库1:创建测试表并插入测试数据:SQL> create table test(id number
在目前绝大部分数据库有分布式查询的需要。下面简单的介绍如何在oracle中配置实现跨库访问。
比如现在有2个数据库服务器,安装了2个数据库。数据库server A和B。现在来实现在A库中访问B的数据库。
第一步、配置A服务器端的tnsnames.ora文件(TNSNAMES.ORA Network Configuration File),该文件存放的位置为:
$ORACLE_HOME/network/admin/tnsnames.ora
添加如下行,其中DBLINK为连接名(可自定义),HOST和PORT为数据库侦听的IP及端口,SERVICE_NAME为数据库的SID,
Trace File Manager (TFM) - Using PHP and Oracle to manage your distributed trace files--------------------------------------------------------------------------------------Deployment InstructionsOracle Layer The Oracle JServer must be installed and exist in a valid state. Ensure that the directories specified in the parameters for USER_DUMP_DEST and BACKGROUND_DUMP_DEST are set up as utl_file_dir directives in the init.ora, eg utl_file_dir=myDB/oratrace/back utl_file_dir=myDB/oratrace/user Run all of the below mentioned scripts in any database whose trace files you want to view As SYS create a user account (TFMADMIN) See - tfmadmin_create.sql This account will be the repository for all of the Oracle objects used by the utility and will be responsible for retrieving information from the file system for presentation to the PHP layer. nb ! The supplied create script is for demo purposes only. You will need to specify a password and you may also want to assign alternative default and temporary tablespaces. create the external library call Windows - see extWindows.sql Linux - see extLinux.sql nb ! for unix it would be ; create or replace library systemcalls is ‘/lib/libc.so‘; / grant necessary database privileges to tfmadmin tfmAdmin_privs_and_syns.sql grant necessary java privileges to tfmadmin tfmAdmin_java_privs.sql if this fails with any spurious dbms_java errors then issue the statements manually, eg exec dbms_java.grant_permission (‘TFMADMIN‘, ‘SYS:java.io.FilePermission‘,‘your background_dump_dest‘, ‘read‘) exec dbms_java.grant_permission (‘TFMADMIN‘, ‘SYS:java.io.FilePermission‘,‘your user_dump_dest‘, ‘read‘) create a wrapper package for utl_file pk_utl_file.sql As TFMADMIN set up the tables, views and sequence tfmadmin_objects.sql create the controlling package pack_trace_file_manager.sqlJava Layer TraceFileDisplay.java you need to compile this and use loadjava to deploy it into the TFMADMIN account sample compilation & load - see javacomp.txt test the Java layer - RECOMMENDED I have seen occasions where the java security layer behaves unpredictably and this can result in the Trace File Display utility falsely reporting that there are no trace files in the trace directories. consequently it is a sensible idea to verify that your java layer is behaving as expected before you try starting up the utility as TFMADMIN, try this exec pack_trace_file_manager.pc_generate_file_list (‘BACKGROUND‘) if you get a "PL/SQL procedure completed successfully" then everything is OK if you get something like this ... * ERROR at line 1: ORA-29532: Java call terminated by uncaught Java exception: java.security.AccessControlException: th (java.io.FilePermission D:OCCdboratraceack read) has not been granted to TFMADMIN. The PL/SQL to dbms_java.grant_permission( ‘TFMADMIN‘, ‘SYS:java.io.FilePermission‘, ‘D:OCCdboratraceack‘, ‘rea ORA-06512: at "TFMADMIN.PACK_TRACE_FILE_DISPLAY", line 45 ORA-06512: at "TFMADMIN.PACK_TRACE_FILE_DISPLAY", line 135 ORA-06512: at line 1 then you will need to sort it out before you go any further. Firstly, check out Note:137280.1 on Metalink. If the error persists beyond the solution suggested here then try; as SYS grant JAVASYSPRIV, JAVAUSERPRIV to tfmadmin; If this does not help then you can always adopt the "Mit Kanonen auf Spatzen schie遝n" approach (Shooting sparrows with canons ...) ; exec dbms_java.grant_permission (‘TFMADMIN‘, ‘SYS:java.io.FilePermission‘,‘<<ALL FILES>>‘, ‘read‘); If that doesn‘t work then raise it with Oracle Support - there may well be a fundamental problem with your java layer.Apahe / PHP layer If you haven‘t already done so, deploy Apache and PHP in a centralised location. see http://otn.oracle.com/tech/opensource/php/apache/inst_php_apache_windows.html for a handy guide to deployment source code ; listTargets.php listFiles.php * retrieveTraceFile.php * tkprofDialog.php deleteFilesConfirmation.php * you may need to either remove or edit the YourDomain tag in here I found the easist way to make the oci connection work from a php source file was to specify the full connection string as it would appear in the tnsnames.ora - In our environment this included a domain name - what you do will depend on your personal environment ... configuration files user.conf - contains the username & password for db connections made to the TFMADMIN account from the php layer - edit as required targets.conf - contains a list of the connection details for the databases where TFMADMIN is deployed - edit as required cascading stylesheet - not supplied
serializable:
说明: 确定查询是否获取表级的读取锁, 以防止在包含该查询的事务处理被提交之前更新任何对象读取。这种操作模式提供可重复的读取,
并确保在同一事务处理种对相同数据的两次查询看到的是相同的值。
值范围: TRUE | FALSE
默认值: FALSE
row_locking:
说明: 指定在表已更新或正在更新时是否获取行锁。如果设置为 ALWAYS, 只有在表被更新后才获取行锁。如果设置为 INTENT,
只有行锁将用于SELECT FOR UPDATE, 但在更新时将获取表锁。
值范围: ALWAYS | DEFAULT | INTENT
默认值: ALWAYS
shared_servers
说明 : 指定在启动例程后, 要为共享服务器环境创建的服务器进程的数量。
值范围: 根据操作系统而定。
默认值 : 1
circuits:
说明 : 指定可用于入站和出站网络会话的虚拟电路总数。 该参数是构成某个例程的总 SGA 要求的若干参数之一。
默认值 : 派生: SESSIONS 参数的值 (如果正在使用共享服务器体系结构); 否则为 0。
Mts_multiple_listeners:
说明: 指定多个监听程序的地址是分别指定的, 还是用一个 ADDRESS_LIST 字符串指定。如果该值为 TRUE,
MTS_LISTENER_ADDRESS 参数可被指定为:
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(PORT=5000)(HOST=zeus))
(ADDRESS=(PROTOCOL=decnet)(OBJECT=outa)(NODE=zeus))
此参数在 8.1.3 版中已废弃。
值范围: TRUE | FALSE
默认值: FALSE
mts_servers:
说明 : 指定在启动例程后, 要为共享服务器环境创建的服务器进程的数量。
值范围: 根据操作系统而定。
默认值 : 1
mts_service:
说明 : 一个共享服务器参数, 用于指定已在调度程序上注册,
用来建立数据库连接的唯一服务名。如果要在没有调度程序的情况下仍能连接到数据库, 请将该值设置为与例程名相同。此参数自
8.1.3 版起已废弃。
值范围: 根据操作系统而定。
默认值 :0
mts_sessions:
说明 : 指定允许的共享服务器体系结构用户会话的总数。设置此参数可为专用服务器保留一些用户会话。
值范围: 0 到 SESSIONS - 5
默认值 : 派生: MTS_CIRCUITS 和 SESSIONS - 5 两者中的较小值
shared_server_sessions:
说明 : 指定允许的共享服务器体系结构用户会话的总数。设置此参数可为专用服务器保留一些用户会话。
值范围: 0 到 SESSIONS - 5
默认值 : 派生: MTS_CIRCUITS 和 SESSIONS - 5 两者中的较小值
mts_max_dispatchers
说明 : 指定在一个共享服务器环境中可同时运行的调度程序进程的最大数量。
值范围: 根据操作系统而定。
默认值 : 如果已配置了调度程序, 则默认值为大于 5 的任何数目或配置的调度程序的数目
mts_max_servers:
说明 : 指定在一个共享服务器环境中可同时运行的共享服务器进程的最大数量。
值范围: 根据操作系统而定。
默认值 : 20
dispatchers:
说明 : 为设置使用共享服务器的共享环境而设置调度程序的数量和类型。可以为该参数指定几个选项。有关详细信息,
请参阅“Oracle8i 管理员指南”和“Oracle Net Administrator's Guide”。这是字符串值的一个示例:
'(PROTOCOL=TCP)(DISPATCHERS=3)'。
值范围: 参数的有效指定值。
默认值 : NULL
max_shared_servers:
说明 : 指定在一个共享服务器环境中可同时运行的共享服务器进程的最大数量。
值范围: 根据操作系统而定。
默认值 : 20
mts_circuits:
说明 : 指定可用于入站和出站网络会话的虚拟电路总数。 该参数是构成某个例程的总 SGA 要求的若干参数之一。
默认值 : 派生: SESSIONS 参数的值 (如果正在使用共享服务器体系结构); 否则为 0。
Mts_listener_address:
说明 : 指定共享服务器的监听程序配置。监听程序进程需要一个监听地址, 以便处理系统所用的各个网络协议的连接请求。 除非
MTS_MULTIPLE_LISTENERS=TRUE, 否则每个条目都必须有一个独立的相邻值。此参数自 8.1.3 版起已废弃
语法 : (ADDRESS=(PROTOCOL=tcp)(HOST=myhost)(PORT=7002))
默认值 : NULL
mts_dispatchers:
说明 : 为设置使用共享服务器的共享环境而设置调度程序的数量和类型。可以为该参数指定几个选项。有关详细信息,
请参阅“Oracle8i 管理员指南”和“Oracle Net Administrator's Guide”。这是字符串值的一个示例: '(PROTOCOL=TCP)(DISPATCHERS=3)'。
值范围: 参数的有效指定值。
默认值 : NULL
max_dispatchers:
说明 : 指定在一个共享服务器环境中可同时运行的调度程序进程的最大数量。
值范围: 根据操作系统而定。
默认值 : 如果已配置了调度程序, 则默认值为大于 5 的任何数目或配置的调度程序的数目
nls_nchar_conv_excp:
说明: (如果值为 TRUE) 当在隐式转换中丢失数据时返回错误的参数。
值范围: FALSE | TRUE
默认值: TRUE
nls_numeric_characters:
说明: 指定将用作组分隔符和小数位的字符。组分隔符就是用来分隔整数位组 (如千, 百万等等) 的字符。小数分隔符用来将一个数字的整数部分与小数部分分隔开。其格式是
<decimal_character><group_separator>。
值范围: 任何单字节字符, '+', '-', '<', '>' 除外。
默认值: 从 NLS_TERRITORY 中获得
nls_sort:
说明: 指定 ORDER BY 查询的比较顺序。对于二进制排序, ORDER BY 查询的比较顺序是以数值为基础的。对于语言排序,
则需要进行全表扫描, 以便将数据按照所定义的语言排序进行整理。
值范围: BINARY 或有效的语言定义名。
默认值: 从 NLS_LANGUAGE 中获得
nls_territory:
说明: 为以下各项指定命名约定, 包括日期和星期的编号, 默认日期格式, 默认小数点字符和组分隔符, 以及默认的 ISO 和本地货币符号。可支持的区域包括美国, 法国和日本。有关所有区域的信息, 请参阅 Oracle8i National Language Support Guide。
值范围: 任何有效的地区名。
默认值: 根据操作系统而定
nls_timestamp_format:
说明: 与 NLS_TIME_FORMAT 相似, 只不过它设置的是 TIMESTAMP 数据类型的默认值, 该数据类型既存储YEAR, MONTH 和 DAY 这几个日期值, 也存储 HOUR, MINUTE 和 SECOND 这几个时间值。
语法: TIMESTAMP '1997-01-31 09:26:50.10' (将值存储为 11 个字节)。
默认值: 从 NLS_TERRITORY 中获得
nls_time_format:
说明: 指定一个字符串值, 设置 TIME 数据类型的默认值, 该数据类型包含 HOUR, MINUTE 和 SECOND 这几个日期时间字段。
语法: TIME '09:26:50' (将值存储为 7 个字节)。
默认值: 从 NLS_TERRITORY 中获得
nls_time_tz_format:
说明: 指定一对值 (UTC,TZD), 设置 TIME WITH TIME ZONE 数据类型的默认值, 该数据类型包含 HOUR, MINUTE, SECOND, TIMEZONE_HOUR 和 TIMEZONE_MINUTE 这几个日期时间字段。UTC 是世界时而 TZD 是当地时区。
语法: TIME '09:26:50.20+ 02:00' (将值存储为 9 个字节)。
默认值: 从 NLS_TERRITORY 中获得
nls_length_semantics:
说明: 使用字节或码点语义来指定新列的创建, 如 char, varchar2, clob, nchar, nvarchar2, nclob 列。各种字符集对字符都有各自的定义。在客户机和服务器上使用同一字符集时, 应以该字符集所定义的字符来衡量字符串。现有的列将不受影响。
值范围: BYTE 或 CHAR。
默认值: nls_length_semantics 的数据库字符集的字符所使用的度量单位。BYTE。
nls_date_format:
说明: 指定与 TO_CHAR 和 TO_DATE 函数一同使用的默认日期格式。该参数的默认值由 NLS_TERRITORY 确定。该参数的值可以是包含在双引号内的任何有效的日期格式掩码。例如: ''MMM/DD/YYYY''。
值范围: 任何有效的日期格式掩码, 但不得超过一个固定长度。
默认值: 派生
nls_timestamp_tz_format:
说明: 与 NLS_TIME_TZ_FORMAT 相似, 其中的一对值指定 TIMESTAMP 数据类型的默认值, 该类型除存储 YEAR, MONTH 和 DAY 日期值, HOUR, MINUTE 和 SECOND 时间值, 还存储 TIMEZONE_HOUR 和 TIMEZONE_MINUTE。
语法: TIMESTAMP '1997- 01- 31 09:26:50+ 02:00' (将值存储为 13 个字节)。
默认值: 从 NLS_TERRITORY 中获得
nls_language:
说明: 指定数据库的默认语言, 该语言将用于消息, 日期和月份名, AD, BC, AM 和 PM 的符号, 以及默认的排序机制。可支持的语言包括英语, 法语和日语等等。
值范围: 任何有效的语言名。
默认值: 根据操作系统而定
nls_comp:
说明: 在 SQL 语句中, 应避免使用繁琐的 NLS_SORT 进程。正常情况下, WHERE 子句中进行的比较是二进制的, 但语言比较则需要 NLSSORT 函数。可以使用 NLS_COMP 指定必须根据NLS_SORT 会话参数进行语言比较。
值范围: Oracle8i National Language Support Guide 中指定的任何有效的10 字节字符串。
默认值: BINARY
nls_currency:
说明: 为 L 数字格式元素指定用作本地货币符号的字符串。该参数的默认值由 NLS_TERRITORY 确定。
值范围: Oracle8i National Language Support Guide 中指定的任何有效的10 字节字符串。
默认值: 从 NLS_TERRITORY 中获得
nls_date_language:
说明: 指定拼写日期名, 月名和日期缩写词 (AM, PM, AD, BC) 的语言。该参数的默认值是由 NLS_LANGUAGE指定的语言。
值范围: 任何有效的 NLS_LANGUAGE 值。
默认值: NLS_LANGUAGE 的值
nls_dual_currency:
说明: 用于覆盖 NLS_TERRITORY 中定义的默认双重货币符号。如果不设置该参数, 就会使用默认的双重货币符号; 否则就会启动一个值为双重货币符号的新会话。
值范围: 任何有效的格式名。。
默认值: 双重货币符号
nls_iso_currency:
说明: 为 C 数字格式元素指定用作国际货币符号的字符串。该参数的默认值由 NLS_TERRITORY 确定。
值范围: 任何有效的 NLS_TERRITORY 值。
默认值: 从 NLS_TERRITORY 中获得
nls_calendar:
说明: 指定 Oracle 使用哪种日历系统作为日期格式。例如, 如果 NLS_CALENDAR 设置为 'Japanese Imperial', 那么日期格式为 'E YY-MM-DD'。即: 如果日期是 1997 年 5 月 15 日, 那么 SYSDATE 显示为 'H 09-05-15'。
值范围: Arabic Hijrah, English Hijrah, Gregorian, Japanese Imperial, Persian, ROC Official (Republic of China) 和 Thai Buddha。
默认值: Gregorian
plsql_native_c_compiler:
说明: 指定用于将生成的 C 文件编译为目标文件的 C 编译程序的完整路径名。此参数是可选的。随每个平台附带的特有的 make
文件中包含此参数的默认值。如果为此参数指定了一个值, 则该值将覆盖 make 文件中的默认值。
值范围: C 编译程序的完整路径。
默认值: 无
remote_dependencies_mode:
说明: 用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果设置为 TIMESTAMP, 只有在服务器与本地时间戳相匹配的情况下, 才能执行该过程。如果设置为 SIGNATURE, 在签名安全的情况下即可执行该过程。
值范围: TIMESTAMP | SIGNATURE
默认值: TIMESTAMP
utl_file_dir:
说明: 允许数据库管理员指定 PL/SQL 文件 I/O 许可的目录。使用多个 UTL_FILE_DIR 参数即可指定多个目录。请注意所有用户均可读取或写入 UTL_FILE_DIR 参数中指定的所有文件。
值范围: 任何有效的目录路径。
默认值: 无
plsql_v2_compatibility:
说明: 设置 PL/SQL 兼容级。如果设置为 FALSE, 将执行 PL/SQL V3 行为, 而不允许 V2 行为; 否则在运行 PL/SQL V3 时将接受某些 PL/SQL V2 行为。
值范围: TRUE | FALSE
默认值: FALSE
plsql_native_make_utility:
说明: 指定 make 实用程序 (如 UNIX 中的 make 或 gmake, 即 GNU make) 的完整路径名。要从生成的 C 源中生成共享对象或 DLL, 需要使用 make 实用程序。
值范围: make 实用程序的完整路径名。
默认值: 无
plsql_native_library_dir:
说明: 由 PL/SQL 编译程序使用。它指定目录名, 其中存储了本机编译程序生成的共享对象。
范围值: 目录名。
默认值: 无
plsql_compiler_flags:
说明: 由 PL/SQL 编译程序使用。它将编译程序标志列表指定为一个用逗号分隔的字符串列表。
值范围: native (PL/SQL 模块将按本机代码来编译。), interpreted (然后 PL/SQL 模块将被编译为 PL/SQL 字节代码格式), debug (PL/SQL 模块将用探测调试符号来编译), non_debug。
默认值: " interpreted, non_debug "
plsql_native_linker:
说明: 此参数指定链接程序 (如: UNIX 中的 ld, 或用于将目标文件链接到共享对象或 DLL 的 GNU ld) 的完整路径名。此参数是可选的。随每个平台附带的特有的 make 文件中包含此参数的默认值。如果为此参数指定了一个值, 则该值将覆盖 make 文件中的默认值。
值范围: 链接程序的完整路径名。
默认值: 无
plsql_native_make_file_name:
说明: 指定 make 文件的完整路径名。make 实用程序 (由 PLSQL_NATIVE_MAKE_UTILITY 指定) 使用此 make 文件生成共享对象或 DLL。每个平台附带有端口专用的 make 文件, 该文件包含使用 make
实用程序在该平台上生成 DLL 时要遵循的规则。
值范围: make 文件的完整路径名。
默认值: 无
plsql_v2_compatibility:
说明: 设置 PL/SQL 兼容级。如果设置为 FALSE, 将执行 PL/SQL V3 行为, 而不允许 V2 行为; 否则在运行 PL/SQL V3 时将接受某些 PL/SQL V2 行为。
值范围: TRUE | FALSE
默认值: FALSE
remote_dependencies_mode:
说明: 用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果设置为 TIMESTAMP,
只有在服务器与本地时间戳相匹配的情况下, 才能执行该过程。如果设置为 SIGNATURE, 在签名安全的情况下即可执行该过程。
值范围: TIMESTAMP | SIGNATURE
默认值: TIMESTAMP
shared_memory_address:
说明: SHARED_MEMORY_ADDRESS 和 HI_SHARED_MEMORY_ADDRESS 指定运行时 SGA 的起始地址。许多平台在链接时间指定 SGA 起始地址, 在这类平台上这些参数将被忽略。如果两个参数都设置为 0 或 NULL, 那么地址将根据平台而定。
值范围: 任何整数值。
默认值: 0
lock_sga:
说明: 用于将整个 SGA 锁定在物理内存中。在不支持这种功能的平台上, 该值将被忽略。
值范围: TRUE | FALSE
默认值: FALSE
hi_shared_memory_address:
说明: 指定系统全局区 (SGA) 的运行时起始地址。在指定 SGA 连接时起始地址的平台上, 该值被忽略。在 64 位平台上, 请使用该值来指定高 32 位和低 32 位。如果不指定该值, 默认值是平台指定的位置。
值范围: 任何整数值。
默认值: 0
pre_page_sga:
说明: 一个根据平台而定的参数, 如果该参数为 TRUE, 将把所有 SGA 页装载到内存中, 以便使该例程迅速达到最佳性能状态。这将增加例程启动和用户登录的时间, 但在内存充足的系统上能减少缺页故障的出现。
值范围: TRUE | FALSE
默认值: FALSE
sga_max_size:
说明: 指定例程存活期间所占用的系统全局区的最大大小。
值范围: 0 到各操作系统所允许的最大值。请注意, 由于该参数值的最小值在启动时已经调整完毕, 因而它无关紧要。
默认值: 如果未指定值, sga_max_size 的默认值将与启动时 SGA 的最初大小 (比如说 X) 相同。该大小取决于 SGA 中各种池的大小, 如缓冲区高速缓存, 共享池, 大型池等。如果指定的值小于 X, 则所使用的 sga_max_size 的值将为 X。也就是说, 它是 X 与用户指定的 sga_max_size 值两者之间的较大值。
Fast_start_parallel_rollback:
说明: 执行并行回退时确定进程的最大数量。在多数事务处理的运行时间都较长的系统上, 该值很有用。
值范围: FALSE | LOW | HIGH
默认值: LOW (2 * CPU_COUNT)
transaction_auditing:
说明: 确定事务处理层是否生成一个特殊的重做记录, 其中包含用户登录名, 用户名, 会话 ID, 部分操作系统信息以及客户机信息。在使用某一重做日志分析工具时, 这些记录可能很有用。
值范围: TRUE | FALSE
默认值: TRUE
transactions:
说明: 指定并行事务处理的最大数量。如果将该值设置得较大, 将增加 SGA 的大小,
并可增加例程启动过程中分配的回退段的数量。默认值大于 SESSIONS, 以实现递归事务处理。
值范围: 一个数值。
默认值: 派生 (1.1 * SESSIONS)
enqueue_resources:
说明: 入队可使并行进程能够共享资源。例如, Oracle 允许一个进程以共享模式锁定一个表, 以共享更新模式锁定另一个表。
值范围: 10 - 65535 (7.3) 或 10 - 无限制 (8.1)。
默认值: 派生 (该值大于 DML_LOCKS + 20 即已足够)
dml_locks:
说明: 所有用户获取的表锁的最大数量。对每个表执行 DML 操作均需要一个 DML 锁。例如, 如果 3 个用户修改 2 个表, 就要求该值为 6。
值范围: 0 或 20 到无限制。
默认值: 4 * TRANSACTIONS (派生)
hash_join_enabled:
说明: 如果设置为 TRUE, 优化程序将在计算最有效的联接方法时考虑散列联接。Oracle 建议数据仓库应用程序应使用 TRUE值。
值范围: TRUE | FALSE
默认值: TRUE
optimizer_features_enable:
说明: 允许更改 init.ora 参数, 该参数控制着优化程序的行为。受此影响的参数包括 PUSH_JOIN_PREDICATE,
FAST_FULL_SCAN_ENABLED, COMPLEX_VIEW_MERGING 和
B_TREE_BITMAP_PLANS。
值范围: 8.0.0; 8.0.3; 8.0.4; 8.1.3。
默认值: 8.0.0
query_rewrite_integrity:
说明: Oracle Server 执行的查询重写的程度。如果设置为 ENFORCED, Oracle
将保证其一致性和完整性。如果设置为 TRUSTED, 将使用明确声明的关系来允许重写。如果设置为
STALE_TOLERATED, 即使实体化视图与基础数据不一致, 也仍可以进行重写。
值范围: ENFORCED, TRUSTED, STALE_TOLERATED
默认值: ENFORCED
query_rewrite_enabled
说明: 启用或禁用对实体化视图的查询重写。一个特定实体化视图只在如下条件下启用: 会话参数和单独实体化视图均已启用,
并且基于成本的优化已启用。
值范围: TRUE | FALSE
默认值: FALSE
partition_view_enabled:
说明: 如果将 PARTITION_VIEW_ENABLED 设置为 TRUE, 该优化程序将剪除 (或跳过)
分区视图中不必要的表访问。该参数还能更改基于成本的优化程序从基础表统计信息计算分区视图统计信息的方式。
值范围: TRUE | FALSE
默认值: FALSE
optimizer_max_permutations:
说明: 对带有大量联接的查询进行语法分析时,
优化程序将会考虑限制表的交换数。这有助于确保对查询进行语法分析的时间保持在可接受的限制范围内,
但代价是无法找到最佳计划。如果该值小于 1000, 就应该可以确保每次查询的时间仅为几秒钟或更短。
值范围: 4-2^32 (~4.3 G)。
默认值: 80,000
optimizer_index_cost_adj:
说明: 在考虑太多或太少索引访问路径的情况下, 可以用来优化优化程序的性能。该值越低, 优化程序越容易选择一个索引。也就是说,
如果将该值设置为 50%, 索引访问路径的成本就是正常情况下的一半。
值范围: 1 -10000
默认值: 100 (一个索引访问路径的常规成本)
star_transformation_enabled:
说明: 确定基于成本的查询转换是否将被应用到星型查询中。如果设置为 TRUE, 优化程序将考虑将基于成本的转换应用于星型查询中;
如果设置为 FALSE, 将不使用任何转换; 如果设置为 TEMP_DISABLE, 将考虑查询转换, 但不使用临时表。
值范围: TRUE | FALSE | TEMP_DISABLE
默认值: FALSE
optimizer_mode:
说明: 指定优化程序的行为。如果设置为 RULE, 就会使用基于规则的优化程序, 除非查询含有提示。如果设置为 CHOOSE,
就会使用基于成本的优化程序, 除非语句中的表不包含统计信息。ALL_ROWS 或 FIRST_ROWS
始终使用基于成本的优化程序。
值范围: RULE | CHOOSE | FIRST_ROWS | ALL_ROWS
默认值: CHOOSE
optimizer_index_caching:
说明: 调整基于成本的优化程序的假定值,
即在缓冲区高速缓存中期望用于嵌套循环联接的索引块的百分比。它将影响使用索引的嵌套循环联接的成本。将该参数设置为一个较高的值,
可以使嵌套循环联接相对于优化程序来说成本更低。
值范围: 0 - 100 %。
默认值: 0
job_queue_processes:
说明: 只用于复制环境。它指定每个例程的 SNP 作业队列进程的数量 (SNP0, ... SNP9, SNPA, ...
SNPZ)。要自动更新表快照或执行由 DBMS_JOB 创建的请求, 请将该参数设置为 1 或更大的值。
值范围: 0 到 36
默认值: 0
max_transaction_branches:
说明: 控制分布式事务处理中分支的数量。将 MAX_TRANSACTION_BRANCHES 设置为较低的值, 可以根据
MAX_TRANSACTION_BRANCHES * DISTRIBUTED_TRANSACTIONS * 72 字节,
略微减少共享池的空间量。此参数在 8.1.3 版中已废弃。
值范围: 1 - 32
默认值: 8
compatible:
说明: 允许您使用一个新的发行版, 同时保证与先前版本的向后兼容性。
值范围: 默认为当前发行版。
默认值: 由发行版确定
archive_lag_target:
说明: 此参数与基于时间的线程高级功能相关联。
值范围: 0 或 [60, 7200] 中的任意整数。
默认值: 0 为默认值, 此时将禁用基于时间的线程高级功能。否则, 值将代表秒数
aq_tm_processes:
说明: 如果大于零, 就会启用对队列消息的时间监视。该时间值可用于指定消息的延迟和失效属性 (用于应用程序的开发)。
值范围: 0 - 10
默认值: 0
tracefile_identifier:
spfile:
说明: 指定当前使用的服务器参数文件的名称。
值范围: 静态参数
默认值: SPFILE 参数可在客户端 PFILE 中定义, 以指明要使用的服务器参数文件的名称。服务器使用默认服务器参数文件时, SPFILE 的值要由服务器在内部设置。
Logmnr_max_persistent_sessions:
Standby_file_management:
Trace_enabled:
Ifile:
说明: 用于在当前参数文件中嵌入其他参数文件。您可以在一个参数文件的多个行上多次使用该参数, 但最多只能有三级嵌套。
值范围: 任何有效的参数文件名 (语法是 IFILE = parameter_file_name)。
默认值: NULL
remote_listener:
global_context_pool_size:
说明: 从 SGA 分配的用于存储和管理全局应用程序环境的内存量。
值范围: 任意整数值。
默认值: 1 M
plsql_native_library_subdir_count:
fixed_date:
说明: SYSDATE 返回的数据。对于必须始终返回固定日期而非系统日期的测试,
该值很有用。使用双引号或不使用引号。请勿使用单引号。
值范围: YYYY-MM-DD-HH24:MI:SS (或默认的 Oracle 日期格式)。
默认值: NULL
db_name:
说明: 一个数据库标识符, 应与
CREATE DATABASE 语句中指定的名称相对应。
值范围: 任何有效名称最多可有 8 个字符。
默认值: 无 (但应指定)
cluster_database:
cluster_interconnects:
cluster_database_instances:
sql_version:
replication_dependency_tracking:
说明: 跟踪相关性对复制服务器以并行方式传播所作的更改至关重要。如果设置为 FALSE, 数据库上的读/写操作将运行得更快,
但无法为复制服务器产生并行传播的相关性信息。
值范围: TRUE | FALSE
默认值: TRUE (即启用读/写相关性跟踪)
remote_os_roles:
说明: 将 REMOTE_OS_ROLES 设置为 TRUE, 允许由远程客户机的操作系统来分配角色。如果设置为 FALSE,
则由远程客户机的数据库来识别和管理角色。
值范围: TRUE | FALSE
默认值: FALSE
remote_os_authent:
说明: 将 REMOTE_OS_AUTHENT 设置为 TRUE, 允许使用 OS_AUTHENT_PREFIX
的值来验证远程客户机。
值范围: TRUE | FALSE
默认值: FALSE
open_links:
说明: 指定在一次会话中同时打开的与远程数据库的连接的最大数量。该值应等于或超过一个引用多个数据库的单个 SQL
语句中引用的数据库的数量, 这样才能打开所有数据库以便执行该语句。
值范围: 0 - 255 (如果为 0, 不允许分布式事务处理)。
默认值: 4
open_links_per_instance:
说明: 指定 XA 应用程序中可移植的打开连接的最大数量。XA 事务处理使用可移植的打开的连接,
以便在提交一个事务处理后能将这些连接高速缓存。如果创建连接的用户就是拥有事务处理的用户, 各事务处理则可共享连接。
值范围: 0 - UB4MAXVAL
默认值: 4
remote_login_passwordfile:
说明: 指定操作系统或一个文件是否检查具有权限的用户的口令。如果设置为 NONE, Oracle 将忽略口令文件。如果设置为
EXCLUSIVE, 将使用数据库的口令文件对每个具有权限的用户进行验证。如果设置为 SHARED, 多个数据库将共享
SYS 和 INTERNAL 口令文件用户。
值范围:NONE | SHARED | EXCLUSIVE
默认值: NONE
hs_autoregister:
说明: 启用或禁用“异构服务 (HS)”代理的自动自注册。如果启用, 信息将被上载到数据字典中,
以便在通过同一代理建立后续连接时降低开销。
值范围: TRUE | FALSE
默认值: TRUE
global_names:
说明: 指定是否要求数据库链接与所连接的数据库同名。如果该值为 FALSE, 则不执行检查。要使分布式处理中的命名约定一致,
请将该参数设置为 TRUE。
值范围: TRUE | FALSE
默认值: TRUE
distributed_transactions:
说明: 一个数据库一次可参与的分布式事务处理的最大数量。如果由于网络故障异常频繁而减少该值, 将造成大量未决事务处理。
值范围: 0 - TRANSACTIONS 参数值。
默认值: 根据操作系统而定
commit_point_strength:
说明: 一个用于确定分布式事务处理中提交点的位置的值。
值范围: 0 -255
默认值: 根据操作系统而定
db_domain:
说明: 指定数据库名的扩展名 (例如:US.ORACLE.COM) 为使一个域中创建的数据库名唯一, 建议指定该值。
值范围: 由句点分隔的任何字符串, 最长可以有 128 个字符。
默认值: WORLD
dblink_encrypt_login:
说明: 在连接到其他 Oracle Server 时, 数据库链接是否使用加密口令。
值范围: TRUE | FALSE
默认值: FALSE
backup_tape_io_slaves:
说明: 一个恢复管理器参数, 用于确定读取或写入磁带是否要使用服务器进程或一个附加的 I/O 从属。
值范围: TRUE | FALSE
默认值: FALSE
tape_asynch_io:
说明: 用于控制对顺序设备的 I/O 操作 (例如, 将 Oracle 数据备份或复原到磁带上, 或从磁带上备份或复原
Oracle 数据) 是否异步。只有在您的平台支持对顺序设备的异步 I/O 操作的情况下, 将该值设置为 TRUE
才有效; 如果异步 I/O 的执行情况不稳定, 请将该值设置为 FALSE。
值范围: TRUE | FALSE
默认值: FALSE
log_file_name_convert:
说明: 将主数据库上的一个日志文件的文件名转换为备用数据库上对等的路径和文件名。将一个日志文件添加到一个主数据库后,
必须将一个相应的文件添加到备用数据库中。该参数替代 Oracle7 中的 LOG_FILE_NAME_CONVERT
值范围: 任何格式为 ''主体日志文件的路径/文件名'' 和 ''备用日志文件的路径/文件名'' 的有效路径/文件名
默认值: NULL
fal_server:
说明: 指定此备用数据库的 FAL 服务器。该值是一个 Oracle Net 服务名。此 Oracle Net
服务名被假定为已在备用数据库系统上正确配置, 可指向期望的 FAL 服务器。
值范围: Oracle Net 服务名的字符串值。
Fal_client:
说明: 指定供 FAL 服务 (通过 FAL_SERVER 参数配置) 来引用 FAL 客户机的 FAL
客户机名称。该参数的值是一个 Oracle Net 服务名。此 Oracle Net 服务名被假定为已在 FAL
服务器系统上正确配置, 可指向 FAL 客户机 (即: 此备用数据库)。
值范围: Oracle Net 服务名的字符串值。
Drs_start:
说明: 使 Oracle 可以确定是否应启动 DRMON 进程。DRMON 是一种不会导致致命错误的 Oracle 后台进程,
只要例程存在, 该进程就存在。
值范围: TRUE | FALSE。
默认值: FALSE
remote_archive_enable:
说明: 控制是否可向远程目标执行重做日志文件归档操作。必须将该参数值设置为 "TRUE", 以便 Oracle
数据库例程对重做日志文件进行远程归档, 并且/或者接收远程归档的重做日志文件。
值范围: FALSE | TRUE
默认值: TRUE
standby_preserves_names:
说明: 表明备用数据库上的文件名是否与主数据库上的文件名相同。
值范围: TRUE 或 FALSE。注: 如果将值设置为 True, 且备用数据库与主数据库位于同一系统上, 则主数据库文件可能被覆盖。
默认值: FALSE。
Standby_archive_dest:
说明: 指定来自一个主例程的归档日志的到达位置。STANDBY_ARCHIVE_DEST 和 LOG_ARCHIVE_FORMAT
用于在备用位置上虚拟完全合格的归档日志文件名。备用数据库上的 RFS 服务器将使用该值, 而不是
ARCHIVE_LOG_DEST。
值范围: NULL 字符串或非 RAW 类型的有效路径/设备名。
默认值: NULL
db_file_name_convert:
说明: 将主数据库上的一个新数据文件的文件名转换为备用数据库上的文件名。
值范围: 一个有效的主/备用目录和文件名对。
默认值: 无
max_enable_roles:
说明: 指定一个用户可以启用的数据库角色 (包括子角色) 的最大数量。用户可启用的角色的实际数量是 2 加上
MAX_ENABLED_ROLES 的值, 因为每个用户都有两个附加的角色: PUBLIC 和用户自己的角色。
值范围: 0 -148
默认值: 20
O7_DICTIONARY_ACCESSIBILITY:
说明: 主要用于从 Oracle7 移植到 Oracle8i。如果该值为 TRUE, SYSTEM 权限 (如
SELECT ANY TABLE) 将不限制对 SYS 方案中各对象的访问 (Oracle7 行为)。如果该值为
FALSE, 只有被授予了 SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE 或
DELETE_CATALOG_ROLE 权限的用户才能访问 SYS 方案中的各对象。
值范围: TRUE | FALSE
默认值: TRUE
sql92_security:
说明: 指定要执行一个更新或删除引用表列的值是否需要具有表级的
SELECT 权限。
值范围: TRUE | FALSE
默认值: FALSE
audit_trail:
说明: 启用或禁用数据库审计。如果该参数为 TRUE 或 DB, 审计记录将被写入 SYS.AUD$ 表中; 如果参数为 OS,
则写入一个操作系统文件。
值范围: NONE | FALSE | DB | TRUE | OS
默认值: NONE
rdbms_server_dn:
说明: RDBMS 服务器的唯一判别名。它用于在一个企业目录服务中检索企业角色。有关详细信息, 请参阅“Oracle
Advanced Security Administrator's Guide”。
值范围: 所有 X.500 唯一判别名格式值。
默认值: 无
os_roles:
说明: 确定操作系统或数据库是否为每个用户标识角色。如果设置为 TRUE, 将由操作系统完全管理对所有数据库用户的角色授予。否则,
角色将由数据库标识和管理。
值范围: TRUE | FALSE
默认值: FALSE
os_authent_prefix:
说明: 使用用户的操作系统帐户名和口令来验证连接到服务器的用户。该参数的值与各用户的操作系统帐户连接在一起。要去除 OS 帐户前缀,
请指定空值。
值范围: 任何标识符。
默认值: 根据操作系统而定 (通常是 'OPS$')
object_cache_max_size_percent:
说明: 指定会话对象的高速缓存增长可超过最佳高速缓存大小的百分比,
最大大小等于最佳大小加上该百分比与最佳大小的乘积。如果高速缓存大小超过了这个最大大小,
系统就会尝试将高速缓存缩小到最佳大小。
值范围: 0% 到根据操作系统而定的最大值。
默认值: 10%
object_cache_optimal_size:
说明: 指定在高速缓存超过最大大小的情况下, 会话对象高速缓存将被缩小到的大小。
值范围: 10K 到根据操作系统而定的最大值。
默认值: 100K
session_max_open_files:
说明: 指定可在任一给定会话中打开的 BFILE 的最大数量。一旦达到这个数量,
此后将无法在该会话中打开更多文件。该参数还取决于操作系统参数 MAX_OPEN_FILES。
值范围: 1 - 至少为 (50, OS 级上的 MAX_OPEN_FILES)。
默认值: 10
parallel_execution_message_size:
说明: 指定并行执行 (并行查询, PDML, 并行恢复和复制) 消息的大小。如果值大于 2048 或 4096,
就需要更大的共享池。如果 PARALLEL_AUTOMATIC_TUNING = TRUE,
将在大存储池之外指定消息缓冲区。
值范围: 2148 - 无穷大。
默认值: 如果 PARALLEL_AUTOMATIC_TUNING 为 FALSE, 通常值为 2148; 如果 PARALLEL_AUTOMATIC_TUNING 为 TRUE , 则值为 4096 (根据操作系统而定)。
Paralle_min_percent:
说明: 指定并行执行要求的线程的最小百分比。设置该参数, 可以确保并行执行在没有可用的恰当查询从属进程时, 会显示一个错误消息,
并且该查询会因此而不予执行。
值范围: 0 -100
默认值: 0, 表示不使用该参数。
Parallel_automatic_tuning:
说明: 如果设置为 TRUE, Oracle 将为控制并行执行的参数确定默认值。除了设置该参数外,
你还必须为系统中的表设置并行性。
值范围: TRUE | FALSE
默认值: FALSE
parallel_threads_per_cpu:
说明: 说明一个 CPU 在并行执行过程中可处理的进程或线程的数量,
并优化并行自适应算法和负载均衡算法。如果计算机在执行一个典型查询时有超负荷的迹象, 应减小该数值。
值范围: 任何非零值。
默认值: 根据操作系统而定 (通常为 2)
parallel_broadcast_enabled:
说明 : 通过使用一个散列联接或合并联接, 可以在将多个大结果集联接到一个小结果集 (以字节而不是行为单位来衡量大小)
时改善性能。如果该值设置为 TRUE, 优化程序可以将小结果集内的每个行都传播到大型集内的每个集群数据库处理行中。
值范围: TRUE | FALSE
默认值 : FALSE
parallel_adaptive_multi_user:
说明: 启用或禁用一个自适应算法, 旨在提高使用并行执行方式的多用户环境的性能。通过按系统负荷自动降低请求的并行度,
在启动查询时实现此功能。当 PARALLEL_AUTOMATIC_TUNING = TRUE 时, 其效果最佳。
值范围: TRUE | FALSE
默认值: 如果 PARALLEL_AUTOMATIC_TUNING = TRUE, 则该值为 TRUE; 否则为 FALSE
parallel_max_servers:
说明: 指定一个例程的并行执行服务器或并行恢复进程的最大数量。如果需要, 例程启动时分配的查询服务器的数量将增加到该数量。
值范围: 0 -256
默认值: 由 CPU_COUNT, PARALLEL_AUTOMATIC_TUNING 和 PARALLEL_ADAPTIVE_MULTI_USER 确定
parallel_min_servers
说明: 指定为并行执行启动例程后, Oracle 创建的查询服务器进程的最小数量。
值范围: 0 - PARALLEL_MAX_SERVERS。
默认值: 0
log_archive_dest_state_3:
说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_3) 的可用性状态。如果启用,
日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。
值范围: ENABLE | DEFER
默认值: ENABLE
log_archive_dest_state_4:
说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_4) 的可用性状态。如果启用,
日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。
值范围: ENABLE | DEFER
默认值: ENABLE
log_archive_dest_state_5:
说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_5) 的可用性状态。如果启用,
日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。
值范围: ENABLE | DEFER
默认值: ENABLE
log_archive_dest_state_6:
说明: 标识特定日志归档目标的最近的用户定义状态。
值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。
log_archive_dest_state_7:
说明: 标识特定日志归档目标的最近的用户定义状态。
值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。
log_archive_dest_state_8:
说明: 标识特定日志归档目标的最近的用户定义状态。
值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。
log_archive_dest_state_9:
说明: 标识特定日志归档目标的最近的用户定义状态。
值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。
Log_archive_start:
说明: n只在数据库处于“归档日志”模式的情况下适用。它指定重做日志是自动还是手动复制。建议值是 TRUE, 即执行自动归档;
否则就需要手动干预, 使用
ALTER SYSTEM ARCHIVE LOG ... 命令来阻止例程挂起。
值范围: TRUE | FALSE
默认值: FALSE
log_archive_duplex_dest:
说明: 指定 LOG_ARCHIVE_DEST 外的另一个归档目标。在 Oracle8i 企业版中, 该参数被
LOG_ARCHIVE_DEST_n 代替。
值范围: 一个 NULL 字符串, 或者任何有效的路径或设备名, 原始分区除外。
默认值: NULL
log_archive_format:
说明: LOG_ARCHIVE_FORMAT 只在数据库处于“归档日志”模式的情况下有用。文本字符串与变量 %s (日志序列号)
和 %t (线程号) 结合使用, 用于指定各归档重做日志文件的唯一文件名。该字符串被附加到
LOG_ARCHIVE_DEST 参数。
值范围: 任何有效的文件名。
默认值: 根据操作系统而定
log_archive_max_processes:
说明: 指定要求的 ARCH 进程的数量。如果 LOG_ARCHIVE_START = TRUE, 该值可以在例程启动时被评估;
也可以在通过 SQL*Plus 或 SQL 语法调用 ARCH 进程时评估。
值范围: 1 - 10 (包括端点) 的任何整数。
默认值: 1
log_archive_dest_2:
说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置中的第二个,
归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库中有效。
值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer]
默认值: NULL
log_archive_min_succeed_dest:
说明: 定义在可以覆盖日志文件前必须将其复制到的目标的最小数量。该值应大于或等于 LOG_ARCHIVE_DEST_n 中
MANDATORY 目标的数量。
值范围: 1 - 5 (如果与 LOG_ARCHIVE_DEST 和 LOG_ARCHIVE_DUPLEX_DEST 共同使用, 则限制在 1-2)。
默认值: 1
log_archive_trace:
说明: 控制归档日志进程生成的输出。此进程可以通过下列方式启动
ARCn 后台进程 (在输出日志中指定为 ARCn)
明确的会话调用的前台进程 (在输出日志中指定为 ARCH) 或
“受管备用数据库”的远程文件服务器 (RFS) 进程。
0: 禁用归档日志跟踪 (这是默认设置)
1: 重做日志文件的追踪归档
2: 每个归档日志目标的追踪归档状态
4: 追踪归档操作阶段
8: 追踪归档日志目标活动
16: 追踪详细的归档日志目标活动
32: 追踪归档日志目标参数修改
64: 追踪 ARCn 进程状态活动
默认值: 0
log_archive_dest_10:
log_archive_dest_3:
说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置中的第三个,
归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库中有效。
值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer]
默认值: NULL
log_archive_dest:
说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置中的第三个,
归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库中有效。
值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer]
默认值: NULL
log_archive_dest_state_2:
说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_2) 的可用性状态。如果启用,
日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。
值范围: ENABLE | DEFER
默认值: ENABLE
log_archive_dest_5:
说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置中的第五个,
归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库中有效。
值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer]
默认值: NULL
log_archive_dest_6:
log_archive_dest_1:
log_archive_dest_8:
log_archive_dest_9:
log_archive_dest_state_1:
说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_1) 的可用性状态。如果启用,
日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。
值范围: ENABLE | DEFER
默认值: ENABLE
log_archive_dest_state_10
说明: 指定归档日志的目标。
值范围: 本地文件系统位置 (磁盘位置) 或通过 Oracle Net 服务名 (tns 服务) 指定的远程归档位置。:
log_archive_dest_4:
说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置中的第四个,
归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库中有效。
值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer]
默认值: NULL
create_bitmap_area_size:
说明: CREATE_BITMAP_AREA_SIZE 指定为创建位图索引而分配的内存量。
值范围: 根据操作系统而定。
默认值: 8 MB
pga_aggregate_target:
说明: 指定连接到例程的所有服务器进程的目标 PGA 总内存。请在启用自动设置工作区之前将此参数设置为一个正数。这部分内存不驻留在
SGA 中。数据库将此参数值用作它所使用的目标 PGA 内存量。设置此参数时, 要将 SGA 从可用于 Oracle
例程的系统内存总量中减去。然后可将剩余内存量分配给 pga_aggregate_target。
值范围: 整数加字母 K, M 或 G, 以将此限值指定为千字节, 兆字节或千兆字节。最小值为 10M, 最大值为 4000G
默认值: "未指定", 表示完全禁用对工作区的自动优化。
Sort_area_size:
说明: SORT_AREA_SIZE 以字节为单位, 指定排序所使用的最大内存量。排序完成后, 各行将返回,
并且内存将释放。增大该值可以提高大型排序的效率。如果超过了该内存量, 将使用临时磁盘段。
值范围: 相当于 6 个数据库块的值 (最小值) 到操作系统确定的值 (最大值)。
默认值: 根据操作系统而定
sort_area_retained_size
说明: 以字节为单位, 指定在一个排序运行完毕后保留的用户全局区 (UGA) 内存量的最大值。最后一行从排序空间中被提取后,
该内存将被释放回 UGA, 而不是释放给操作系统。
值范围: 从相当于两个数据库块的值到 SORT_AREA_SIZE 的值。
默认值: SORT_AREA_SIZE 的值
bitmap_merge_area_size:
说明: 指定合并从对索引的某一范围进行扫描而检索得到的位图要使用的内存量。
值范围: 根据系统而定。
默认值: 1MB
workarea_size_policy:
说明: 指定调整工作区大小的策略。此参数控制优化工作区时所处的模式。
值范围: AUTO, MANUAL。
默认值: 如果设置了 PGA_AGGREGATE_TARGET, 则为 AUTO; 否则为 MANUAL。
Hash_area_size:
说明: 与并行执行操作和 DML 或 DDL 语句相关。它以字节为单位, 指定要用于散列联接的最大内存量。有关详细信息,
请参阅手册 Oracle8i Concepts。
值范围: 0 到根据操作系统而定的值。
默认值: 派生:2 * SORT_AREA_SIZE 参数值
db_create_online_log_dest_4:
说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。
值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。
db_create_online_log_dest_3:
说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。
值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。
Db_files:
说明: 可为该数据库打开的数据文件的最大数量。
值范围: MAXDATAFILES - 根据操作系统而定。
默认值: 根据操作系统而定 (在 Solaris 系统上为 200)
db_create_online_log_dest_2:
说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。
值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。
db_create_online_log_dest_1:
说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。
值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。
Db_create_file_dest:
说明: 设置所创建的数据文件, 控制文件和联机日志的默认位置。
值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。
Control_files:
说明: 指定一个或多个控制文件名。Oracle 建议对于不同设备或 OS 文件镜象使用多个文件。
值范围: 1 - 8 文件名 (带路径名)。
默认值: 根据操作系统而定
db_create_online_log_dest_5:
说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。
值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。
Large_pool_size:
说明 : 指定大型池的分配堆的大小, 它可被共享服务器用作会话内存, 用作并行执行的消息缓冲区以及用作 RMAN
备份和恢复的磁盘 I/O 缓冲区。
值范围: 600K (最小值); >= 20000M (最大值是根据操作系统而定的)。
默认值 : 0, 除非配置了并行执行或 DBWR_IO_SLAVES
shared_pool_size:
说明: 以字节为单位, 指定共享池的大小。共享池包含如: 共享游标, 存储的过程,
控制结构和并行执行消息缓冲区等对象。较大的值能改善多用户系统的性能。
值范围:300 KB - 根据操作系统而定。
默认值: 如果是 64 位操作系统, 值为 64MB; 其他情况下, 值为 16MB。
Java_pool_size:
说明: 以字节为单位, 指定 Java 存储池的大小, 它用于存储 Java 的方法和类定义在共享内存中的表示法,
以及在调用结束时移植到 Java 会话空间的 Java 对象。有关详细信息, 请参阅 Oracle8i Java
Developer's Guide。
值范围: 根据操作系统而定。
默认值: 根据操作系统而定
shared_pool_reserved_size:
说明: 指定要为较大连续共享池内存请求而保留的空间,
以避免由碎片引起的性能下降。该池的大小应符合这样的条件:能存储为防止对象从共享池刷新而普遍要求的所有大型过程和程序包。
值范围: SHARED_POOL_RESERVED_MIN_ALLOC 到
SHARED_POOL_SIZE 的一半 (字节)。
默认值: SHARED_POOL_SIZE 值的 5%
cursor_sharing:
说明: 控制可以终止共享相同的共享游标的 SQL 语句类型。
强制: 强制表达方式不同但语句意思相同的语句共享一个游标。
EXACT: 只令完全相同的 SQL 语句共享一个游标。
默认值: EXACT
open_cursors:
说明: 指定一个会话一次可以打开的游标 (环境区域) 的最大数量, 并且限制 PL/SQL 使用的 PL/SQL
游标高速缓存的大小, 以避免用户再次执行语句时重新进行语法分析。请将该值设置得足够高,
这样才能防止应用程序耗尽打开的游标。
值范围: 1 - 操作系统限制值。
默认值: 64
serial_reuse:
说明: 指定何种类型的 SQL 游标应利用串行可重用内存功能。如果 CURSOR_SPACE_FOR_TIME = TRUE,
那么 SERIAL_REUSE 值将被忽略, 当作被设置为
DISABLE 或 NULL 的情况处理。
值范围: DISABLE | SELECT | DML | PLSQL | ALL | NULL
默认值: NULL
session_cached_cursors:
说明: 指定要高速缓存的会话游标的数量。对同一 SQL 语句进行多次语法分析后,
它的会话游标将被移到该会话的游标高速缓存中。这样可以缩短语法分析的时间, 因为游标被高速缓存, 无需被重新打开。
值范围: 0 到根据操作系统而定的值。
默认值: 0
cursor_space_for_time:
说明: 在一个游标引用共享 SQL 区时, 确定将 SQL 区保留在共享池中还是从中按过期作废处理。
值范围: TRUE | FALSE
默认值: FALSE (过期作废)
rollback_segments:
说明: 指定要在例程启动过程中获取的一个或多个回退段, 即使其数量超过了 TRANSACTIONS /
TRANSACTIONS_PER_ROLLBACK_SEGMENT 的值。公式为 ROLLBACK_SEGMENTS =
(rbseg_name [, rbseg_name] ...)
值范围:除 SYSTEM 外, DBA_ROLLBACK_SEGS 中列出的任何回退段。
默认值: NULL (默认情况下使用公用回退段)
undo_suppress_errors:
说明: 允许用户在 SMU 模式下尝试执行 RBU 操作 (如
ALTER ROLLBACK SEGMENT ONLINE) 时忽略错误。这样能让用户在将所有应用程序和脚本转换到 SMU
模式之前即可使用 SMU 功能。
值范围: True 或 False
默认值: False。
Max_rollback_segments:
说明: 指定 SGA 中高速缓存的回退段的最大大小。该数值指定一个例程中可同时保持联机状态 (即状态为 INUSE)
的回退段的最大数量。
值范围: 2 -65535
默认值: 最大值 (30, TRANSACTIONS/TRANSACTIONS_PER_ROLLBACK_SEGMENT)
undo_retention:
说明: UNDO_RETENTION
参数用来指定要在数据库中保留的已提交的撤消信息总量。可在例程启动时设置该参数值。可以计算满足撤消保留要求所需的撤消空间量:
UndoSpace = RD * UPS, 其中 UndoSpace 以撤消块数来表示, RD 用以秒为单位的
UNDO_RETENTION 来表示, UPS 以每秒撤消块数来表示。
值范围: 所允许的最大值为 (2 ** 32) 秒。
默认值: 30 秒。
Transactions_per_rollback_segment:
说明: 指定每个回退段允许的并行事务处理的数量。启动时获取的回退段的最小数量为 TRANSACTIONS
除以该参数值的结果。如果在参数 ROLLBACK_SEGMENTS 中命名了其他回退段, 就可以获取这些回退段。
值范围: 1 - 根据操作系统而定。
默认值: 5
undo_management:
说明: 指定系统应使用哪种撤消空间管理模式。如果设置为 AUTO, 例程将以 SMU 模式启动。否则将以 RBU 模式启动。在
RBU 模式下, 撤消空间会象回退段一样在外部分配。在 SMU 模式下, 撤消空间会象撤消表空间一样在外部分配。
值范围: AUTO 或 MANUAL
默认值: 如果启动第一个例程时忽略了 UNDO_MANAGEMENT 参数, 则将使用默认值 MANUAL, 并且例程将以 RBU 模式启动。如果这不是第一个例程, 则将按其他现有例程启动时使用的撤消模式来启动该例程。
Undo_tablespace:
说明: 撤消表空间仅用于存储撤消信息。UNDO_TABLESPACE 仅允许在系统管理撤消 (SMU)
模式下使用。例程将使用指定的撤消表空间, <undoname>。如果该表空间不存在, 或不是撤消表空间,
或正在由另一例程使用, 则例程 STARTUP 将失败。
默认值: 每个数据库都包含 0 个或更多的撤消表空间。在 SMU 模式下, 将为每个 ORACLE 例程分配一个 (且仅限一个) 撤消表空间。
Instance_name
说明: 在多个例程使用相同服务名的情况下, 用来唯一地标识一个数据库例程。INSTANCE_NAME 不应与 SID 混淆,
它实际上是对在一台主机上共享内存的各个例程的唯一标识。
值范围: 任何字母数字字符。
默认值: 数据库 SID
service_names:
说明 : 为 Oracle Net 监听程序用来识别一个服务 (如: 复制环境中的一个特定数据库)
的例程指定服务名。如果该服务没有域, 将附加 DB_DOMAIN 参数。
语法 : SERVICE_NAMES = name1.domain, name2.domain
默认值 : DB_NAME.DB_DOMAIN (如果已定义)
local_listener:
说明 : 一个 Oracle Net 地址列表, 用于标识 Oracle Net
监听程序所在的同一台计算机上的数据库例程。所有例程和调度程序都在该监听程序上注册, 以便启用客户机连接。该参数覆盖在
8.1 版本中废弃的 MTS_LISTENER_ADDRESS 和 MTS_MULTIPLE_LISTENERS 参数。
值范围: 一个有效的 Oracle Net 地址列表。
默认值: (ADDRESS_LIST=(Address=(Protocol=TCP)(Host=localhost)(Port=1521)) (Address=(Protocol=IPC)(Key=DBname)))
license_sessions_warning:
说明: 指定对并行用户会话数量的警告限制。达到该限制后, 其他用户仍然可以连接, 但一条消息将被写入 ALERT 文件。具有
RESTRICTED SESSION 权限的用户将收到一条警告消息, 表明系统已接近最大容量。
值范围: 0 - LICENSE_MAX_SESSIONS
默认值: 0
license_max_sessions:
说明: 指定允许同时进行的并行用户会话的最大数量。达到该限制后, 只有具有 RESTRICTED SESSION
权限的用户才能连接到服务器。所有其他用户都会收到一条警告消息, 表明已达到系统最大容量的限制。
值范围: 0 - 会话许可的数量。
默认值: 0
license_max_users:
指定您可在该数据库中创建的用户的最大数量。并行会话使用许可和用户使用许可不应被同时启用。LICENSE_MAX_SESSIONS
或 LICENSE_MAX_USERS 或这两者的值应为零。
值范围: 0 - 用户许可的数量。
默认值: 0
db_block_checksum:
说明: DBWn, ARCH 和 SQL*loader 是否为每一个数据块读或写计算或校验块的校验和。
值范围: TRUE | FALSE
默认值: FALSE
shadow_core_dump:
说明: 一个针对 UNIX 的参数, 用于指定是否将 SGA 信息转储到一个生成的核心文件中。如果设置为 FULL, SGA
将被包括在核心转储中。如果设置为 PARTIAL, SGA 将不被转储。
值范围: FULL | PARTIAL
默认值: FULL
db_block_checking:
说明: 用于控制是否检查事务处理管理的块有无损坏。
值范围: TRUE | FALSE
默认值: FALSE
background_core_dump:
说明: 是否将 SGA 信息转储到一个生成的核心文件中 (用于 UNIX)。
值范围: FULL | PARTIAL
默认值: FULL
event:
说明: 由 Oracle 技术支持人员使用, 以调试系统。一般情况下, 不应变更该值。
值范围:不可用。
默认值: 无
user_dump_dest:
说明: 为服务器将以一个用户进程身份在其中写入调试跟踪文件的目录指定路径名。例如, 该目录可这样设置: NT 操作系统上的 C:/
ORACLE/UTRC; UNIX 操作系统上的 /oracle/utrc; 或 VMS 操作系统上的
DISK$UR3:[ORACLE.UTRC]。
值范围: 一个有效的本地路径名, 目录或磁盘。
默认值: 根据操作系统而定
timed_statistics:
说明: 收集操作系统的计时信息, 这些信息可被用来优化数据库和 SQL 语句。要防止因从操作系统请求时间而引起的开销,
请将该值设置为零。将该值设置为 TRUE 对于查看长时间操作的进度也很有用。
值范围: TRUE | FALSE
默认值: FALSE
timed_os_statistics:
说明 : 由系统管理员使用, 以收集操作系统统计信息。为了有效地使用资源, 请只在需要时才设置该值。对于专用服务器,
会在用户连接, 断开连接以及弹出调用 (如果超出了指定的时间限制) 的情况下收集操作系统统计信息。对于共享服务器,
将为推入或弹出的调用收集统计信息。
值范围: 以秒为单位的时间。
默认值 : 0 (操作系统统计信息不被刷新)
core_dump_dest:
说明: 指定核心转储位置的目录名 (用于 UNIX)。
值范围: 任何有效的目录名。
默认值: ORACLE_HOME/dbs
oracle_trace_collection_name:
说明: 指定 Oracle Trace 收集名, 并在输出文件名中使用 (收集定义文件 .cdf 和数据收集文件
.dat)。如果该参数不为空, 且 ORACLE_TRACE_ENABLE = TRUE, 就会启动一个默认的
Oracle Trace 收集, 直到该值再次设置为 NULL。
值范围: 一个有效的收集名, 最长可为 16 个字符 (使用 8 个字符文件名的平台除外)。
默认值: NULL
oracle_trace_collection_path:
说明: 指定 Oracle Trace 收集定义文件 (.cdf) 和数据收集文件 (.dat) 所在的目录路径名。
值范围: 完整的目录路径名。
默认值: 根据操作系统而定 (通常是 ORACLE_HOME/otrace/admin/cdf)
background_dump_dest:
说明: 指定在 Oracle 操作过程中为后台进程 (LGWR, DBW n 等等) 写入跟踪文件的路径名
(目录或磁盘)。它还定义记录着重要事件和消息的数据库预警文件的位置。
值范围: 任何有效的目录名。
默认值: ORACLE_HOME/rdbms/log (根据操作系统而定)
oracle_trace_enable:
说明: 要为服务器启用 Oracle Trace 收集, 请将该值设置为 TRUE。如果设置为 TRUE, 该服务器就可以使用
Oracle Trace。要启动一个收集过程, 请为 ORACLE_TRACE_COLLECTION_NAME
指定一个非空值; 或者使用 Oracle Trace Manager 来启动一个收集。
值范围: TRUE | FALSE
默认值: FALSE
oracle_trace_collection_size:
说明: 以字节为单位, 指定 Oracle Trace 收集文件的最大大小。一旦该收集文件的大小达到这个最大值,
收集就会被禁用。如果值范围指定为零, 就表示没有大小限制。
值范围: 0 -4294967295
默认值: 5242880
oracle_trace_facility_path:
说明: 指定 Oracle TRACE 工具的定义文件 (.fdf) 所在的目录路径名。
值范围: 完整的目录路径名。
默认值: ORACLE_HOME/otrace/admin/fdf/ (根据操作系统而定)
sql_trace:
说明: 禁用或启用 SQL 跟踪设备。如果设置为 TRUE, 将收集优化信息, 这些信息对改善性能很有用。由于使用 SQL
跟踪设备将引发系统开销, 只应在需要优化信息的情况下使用 TRUE。
值范围: TRUE | FALSE
默认值: FALSE
oracle_trace_facility_name:
说明: 指定 Oracle Trace 产品定义文件名 (.fdf 文件名)。该文件包含可为使用 Oracle Trace
数据收集 API 的产品收集的所有事件和数据项的定义信息。Oracle 建议使用默认的文件 ORCLED.FDF。
值范围: 一个有效的设备名, 最长可有 16 个字符。
默认值: oracled
max_dump_file_size:
说明: 指定每个跟踪文件的最大大小。如果您担心跟踪文件会占用太多空间, 可更改该限制。如果转储文件可以达到操作系统允许的最大大小,
请将该值指定为“无限制”。
值范围: 0 - 无限制 (可以用 'K' 或 'M' 为单位)
默认值: 10000 块
resource_limit:
说明: 确定是否在数据库概要文件中实行资源限制。如果设置为 FALSE, 将禁用资源限制。如果值为 TRUE, 即启用资源限制。
值范围: TRUE | FALSE
默认值: FALSE
resource_manager_plan:
说明: 如果指定该值, 资源管理器将激活计划和例程的所有子项 (子计划, 指令和使用者组)。如果不指定, 资源管理器将被禁用,
ALTER SYSTEM 命令还可以启用。
值范围: 任何有效的字符串。
默认值: NULL
sessions:
说明: 指定用户会话和系统会话的总量。默认数量大于 PROCESSES, 以允许递归会话。
值范围: 任何整数值。
默认值: 派生 (1.1 * PROCESSES + 5)
java_soft_sessionspace_limit:
说明: 以字节为单位, 指定在 Java 会话中使用的 Java 内存 的 '软限制'。如果用户的会话持续时间 Java
状态使用过多的内存, Oracle 将生成一个警告并向跟踪文件写入一则消息。
值范围: 0 - 4GB
默认值: 0
cpu_count:
说明: Oracle 可用的 CPU 的数目 (用于计算其他参数值)。请勿更改该值。
值范围: 0 - 无限制。
默认值: 由 Oracle 自动设置
java_max_sessionspace_size:
说明: 以字节为单位, 指定可供在服务器中运行的 Java 程序所使用的最大内存量。它用于存储每次数据库调用的 Java
状态。如果用户的会话持续时间 Java 状态超过了该值, 则该会话会由于内存不足而终止。
值范围: 根据操作系统而定。
默认值: 0
processes:
说明: 指定可同时连接到一个 Oracle Server 上的操作系统用户进程的最大数量。该值应允许执行所有后台进程, 如:
作业队列 (SNP) 进程和并行执行 (Pnnn) 进程。
值范围: 6 到根据操作系统而定的一个值。
默认值: 由 PARALLEL_MAX_SERVERS 确定
control_file_record_keep_time:
说明: 控制文件中可重新使用部分中的记录必须保留的最短时间 (天数)。
值范围: 0 -365
默认值: 7
log_checkpoint_timeout:
说明: 指定距下一个检查点出现的最大时间间隔 (秒数)。将该时间值指定为 0,
将禁用以时间为基础的检查点。较低的值可以缩短例程恢复的时间, 但可能导致磁盘操作过量。
值范围: 0 - 无限制。
默认值: Oracle8i:900 秒。企业版: 1800 秒
recovery_parallelism:
说明: 指定参与例程或介质恢复的进程的数量。如果值为 0 或 1, 就表明恢复将由一个进程以串行方式执行。
值范围: 根据操作系统而定 (不能超过 PARALLEL_MAX_SERVERS)。
默认值: 根据操作系统而定
fast_start_mttr_target:
说明: 指定从单个数据库例程崩溃中恢复所需的时间 (估计秒数)。FAST_START_MTTR_TARGET
将在内部被转换为一组参数, 用于修改数据库的操作, 从而将它的恢复时间控制在总 "恢复平均时间 (MTTR)"
中的一定范围之内。只有具有 "快速启动故障恢复" 功能的版本才支持此参数。
值范围: [0, 3600]。它将计算数据缓冲区高速缓存条目数之上, 且大于最大日志中的块数的限值。
默认值: 0
log_checkpoints_to_alert:
说明: 指定将检查点信息记录到预警文件中。该参数对于确定检查点是否按所需频率出现很有用。
值范围: TRUE | FALSE
默认值: FALSE
fast_start_io_target:
说明: 指定在系统崩溃或例程恢复期间需要的 I/O 数量。该值比 DB_BLOCK_MAX_DIRTY_TARGET
对恢复过程的控制更加精确。
值范围: 0 (禁用 I/O 恢复限制) 或 1000, 到高速缓存中的所有缓冲区数。
默认值: 高速缓存中的所有缓冲区数
log_checkpoint_interval:
说明: 指定在出现检查点之前, 必须写入重做日志文件中的 OS 块 (而不是数据库块) 的数量。无论该值如何,
在切换日志时都会出现检查点。较低的值可以缩短例程恢复所需的时间, 但可能导致磁盘操作过量。
值范围: 无限制 (指定 0 即可禁用该参数)。
默认值: 根据操作系统而定
log_buffer:
说明: 以字节为单位, 指定在 LGWR 将重做日志条目写入重做日志文件之前,
用于缓存这些条目的内存量。重做条目保留对数据
【问题思路】:
(1)首先我在数据库中刚查过数据(印刷流水号),sql为:
select visaserialno, businessno,visacode, visaname, usercode, visastatus, comcode from vsmark
where visacode like 'DAC051A3
S.USERNAME,
DECODE(L.TYPE, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
O.OWNER,
O.OBJECT_NAME,
O.OBJECT_TYPE,
S.SID,
S.SERIAL#,
S.TERMINAL,
S.MACHINE,
1.在通过远程方式连接上数据库后,首先对数据库主机的CPU/内存等硬件资源进行检查,未发现明显资源瓶颈。
2.在数据库实例中检查是否存在锁等问题,相关进程有enq: TM – contention表锁等待,但是未发现对应的阻塞源头进程。
3.根据报错信息中的分布式事务超时问题,查看数据库相关视图表,发现有110个状态为collecting的分布式事务,是是非正常状态的,之后进
ORA-02036:preceding...
原因:远端的目标表独占锁,导致本地的连接一直在等待,导致连接超时报错。
还有一种情形就是当通过dblink更新视图报错ORA-02036的时候,可能是创建的dblink包含order by等子句,无法进行更新。
可更新的视图不得包含以下任何构造:set...
ORA-01555错误是Oracle数据库中的一个常见错误,它表示读取的数据已经被其他事务修改,导致读取的数据不一致。这个错误通常发生在长时间运行的查询或事务中,因为Oracle数据库使用了读一致性的机制,如果读取的数据在查询或事务执行期间被修改了,就会出现ORA-01555错误。
快照过旧是ORA-01555错误的一种情况,它表示查询或事务使用的快照(snapshot)已经过时,不能再用于读取数据。这个错误通常发生在长时间运行的查询或事务中,因为Oracle数据库使用了快照机制来保证读一致性,如果快照过旧,就会出现ORA-01555错误。
要解决ORA-01555错误,可以采取以下措施:
1. 增加UNDO表空间的大小,以便存储更多的历史数据。
2. 调整事务的隔离级别,以减少读取数据的并发性。
3. 优化查询语句,减少查询的数据量和执行时间。
4. 增加数据库的内存和CPU资源,以提高查询和事务的性能。
5. 使用Oracle的Flashback技术,可以回滚到历史版本的数据,避免出现ORA-01555错误。