SMON: Parallel transaction recovery tried 这个一般是在 具有在跑大数据量的 transaction的时候 kill 掉了进程而导致 smon 去清理 回滚段时导致的。
这个在 业务高峰期的时候,如果发现这个,有可能导致 SMON 占用了 100% cpu 而导致 系统 hang 在那边。
即使你 shutdown immediate ,oracle 也会等待 smon 清理完毕才能关机,而这个等待过程也许是漫长的。
如果你 shutdown abort,那么oracle 会麻烦 shutdown ,但是,当你 startup的时候,有可能就会很慢,因为 smon 会接着清理 undo,这个等待过程也许是很漫长的:
——————————————————————————————————
Completed: ALTER DATABASE MOUNT
Thu Aug 26 22:43:57 2010
ALTER DATABASE OPEN
Thu Aug 26 22:43:57 2010
Beginning crash recovery of 1 threads
Thu Aug 26 22:43:57 2010
Started first pass scan
Thu Aug 26 22:43:57 2010
Completed first pass scan
402218 redo blocks read, 126103 data blocks need recovery
Thu Aug 26 22:45:05 2010
Restarting dead background process QMN0
QMN0 started with pid=16
Thu Aug 26 22:45:19 2010
Started recovery at
Thread 1: logseq 13392, block 381202, scn 0.0
Recovery of Online Redo Log: Thread 1 Group 3 Seq 13392 Reading mem 0
Mem# 0 errs 0: /zxindata/oracle/redolog/redo03.dbf
Recovery of Online Redo Log: Thread 1 Group 1 Seq 13393 Reading mem 0
Mem# 0 errs 0: /zxindata/oracle/redolog/redo01.dbf
Thu Aug 26 22:45:21 2010
Completed redo application
Thu Aug 26 22:48:35 2010
Ended recovery at
Thread 1: logseq 13393, block 271434, scn 2623.1377219707
126103 data blocks read, 115641 data blocks written, 402218 redo blocks read
Crash recovery completed successfully
________________________________________________
看 红色标注的那个,等待了 3 分钟才做完 recovery。
那如何才能让它快呢,metalink(238507.1) 有给出一些做法:
---------------------------------------------------------------------------------------------
1. Find SMON's Oracle PID:
Example:
SQL> select pid, program from v$process where program like '%SMON%';
PID PROGRAM
---------- ------------------------------------------------
6 oracle@stsun7 (SMON)
2. Disable SMON transaction cleanup:
SVRMGR> oradebug setorapid <SMON's Oracle PID>
SVRMGR> oradebug event 10513 trace name context forever, level 2
3. Kill the PQ slaves that are doing parallel transaction recovery.
You can check V$FAST_START_SERVERS to find these.
4. Turn off fast_start_parallel_rollback:
alter system set fast_start_parallel_rollback=false;
If SMON is recovering, this command might hang, if it does just control-C out of it. You may need to try this many times to get this to complete (between SMON cycles).
5. Re-enable SMON txn recovery:
SVRMGR> oradebug setorapid <SMON's Oracle PID>
SVRMGR> oradebug event 10513 trace name context off
——————————————————————————————————
以上的思路主要是要把 SMON 并行 recovery 的功能给改成 非并行,主要
是 fast_start_parallel_rollback 这个参数的作用。
There are cases where parallel transaction recovery is not
as fast as serial transaction recovery, because the pq slaves
are interfering with each other. This depends mainly on the
type of changes that need to be made during rollback and
usually may happen when rolling back INDEX Updates in
parallel.
我们也可以通过 V$FAST_START_TRANSACTIONS.UNDOBLOCKSTOTAL 来查
看需要 recover 的undo 的量,但是很遗憾,在我测试中,该视图始终为空。
另外:也许 SMON: Parallel transaction recovery tried 这个会伴
随着 SMON: Restarting fast_start parallel rollback 一起出现(曾经在 接口机上看到 10.2.0.4)
相关网址:
metalink [ID 144332.1]
http://blog.chinaunix.net/u/1110/showart_1672525.html
http://hi.baidu.com/edeed/blog/item/c28f0a4610130d006b63e53f.html
http://space.itpub.net/?uid-160455-action-viewspace-itemid-617954
分享到:
相关推荐
10. **进程**(Processes):Oracle数据库运行时涉及多种进程,如数据库服务器进程(DBWn)、检查点进程(CKPT)、日志写入进程(LGWR)、系统监控(SMON)和进程监控(PMON)等,它们协同工作以保证数据库的正常...
Oracle有多个后台进程执行特定任务,如PMON(Process Monitor)、SMON(System Monitor)、LCKN(Lock Manager)、RECO(Recovery Process)、DBWR(Database Writer)、LGWR(Log Writer)、CKPT(Checkpoint ...
- **物理结构**:Oracle数据库的核心组成部分包括数据文件(*.dbf)、重做日志文件(*.log)、控制文件(*.ctl)和参数文件(init.ora)。数据文件存储实际的数据,重做日志文件记录所有事务的更改,控制文件保存...
并行数据库系统在Oracle中表现为Oracle Parallel Server (OPS),它在并行计算技术的支持下,允许多个实例同时访问同一个数据库,提高处理效率。自Oracle8i开始,几乎所有的数据库操作都支持并行性,包括SQL查询、...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据着核心地位。本课件将深入探讨Oracle数据库的应用,旨在帮助学习者掌握其基础知识和操作技能。 首先,我们来了解一下“数据库的基础...
Oracle数据库实例的可用性是DBA最关心的问题之一。使用以下命令可以检查实例的可用性: $ ps -ef | grep smon 这条命令将显示当前服务器上的所有Oracle实例。例如: oracle 22086 1 0 02:32:24 ? 0:04 ora_smon_...
1. **数据库实例**:Oracle数据库实例是内存结构和后台进程的集合,它们一起管理和处理对数据库的请求。内存结构包括数据缓冲区缓存、重做日志缓冲区和共享池等,而后台进程如系统监控(SMON)、进程监控(PMON)和...
- **RMAN (Recovery Manager)**:Oracle提供的强大备份和恢复工具,支持完整的数据库备份和恢复操作。 - **备份类型**:包括完整备份、增量备份等。 - **恢复场景**:如介质恢复、时间点恢复等。 #### 七、性能监控...
### ORACLE 数据库入门知识点详解 #### 一、Oracle体系结构概述 Oracle数据库是一个高度复杂的系统,其架构设计包括了物理结构与内存结构等多个层面。理解这些基础概念对于初学者来说至关重要。 ##### 1. 物理...
- **物理结构**:Oracle数据库的核心物理组件包括数据文件(datafiles)、重做日志文件(redo log files)、控制文件(control files)和参数文件(parameter file)。数据文件存储表、索引和其他数据库对象;重做...
2. **可兼容性**:Oracle支持SQL(Structured Query Language)这一国际标准的数据查询语言,能够与其他使用SQL的标准数据库如IBM的SQL/DS、DB2等实现兼容。此外,Oracle还提供了读取其他非Oracle数据库文件的方法,...
- **文件结构**:Oracle数据库主要包含五种类型的文件,分别是Oracle RDBMS代码文件、数据文件(存储表、视图、索引等信息)、日志文件(记录所有数据库变化以用于恢复)、控制文件(包含数据库启动所需的配置参数...
Oracle数据库是业界广泛应用的关系型数据库管理系统,它的体系结构是理解和管理数据库的关键。Oracle数据库的体系结构可以分为物理结构和逻辑结构两大部分。了解这两部分是进行数据库优化、维护和故障排除的重要基础...
- **物理结构**:Oracle数据库由数据文件(datafiles)、重做日志文件(redo log files)、控制文件(control files)和参数文件(parameter file)组成。数据文件存储数据,重做日志文件记录所有对数据库的更改,...
Oracle数据库是一种广泛应用于企业级应用的高性能关系型数据库管理系统,其设计复杂且高效。本文将深入探讨Oracle数据库的基础概念,包括Oracle体系结构、实例、内存结构以及进程。 1. Oracle体系结构 Oracle...
Oracle数据库是企业级关系型数据库管理系统,用于存储和管理大量结构化数据。以下是对题目中涉及的Oracle数据库知识点的详细解释: 1. **客户端连接配置**:为了使客户应用程序访问Oracle Server,需要在客户端配置...
### Oracle数据库的表格设计 #### Oracle数据库概述与结构 Oracle数据库是业界领先的数据库管理系统之一,广泛应用于企业级数据管理和分析领域。它由Oracle实例和Oracle数据库本身构成,两者相辅相成,共同支撑起...
### Oracle 数据库系统作业知识点详解 #### 一、Oracle数据库系统的物理存储结构 **1. 数据文件** - **概念**: 数据文件是Oracle数据库物理存储结构的重要组成部分之一,用于存储数据库的实际数据。 - **特点**:...