`

SMON: Parallel transaction recovery tried 引发的问题

 
阅读更多

 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.

参考至:http://hi.baidu.com/%CC%D8%B0%AE%C0%B6%C1%AB%BB%A8/blog/item/9af29302b820fab22eddd439.html
如有错误,欢迎指正
邮箱:czmcj@163.com

分享到:
评论

相关推荐

    k8smon:简单的kubernetes到statsd桥

    k8smon k8smon是一个简单的kubernetes到statsd的桥梁。 它读取Kubernetes API,并每五秒钟发布一次发现的每个复制控制器的运行Pod数。 我们对其进行了构建,以便可以监视每个ReplicationController的运行Pod的数量...

    smon与pmon的区别

    smon与pmon的区别 Oracle进程中有两个重要的进程:SMON(System Monitor)和PMON(Process Monitor),它们都是Oracle数据库的后台进程,负责维护和管理数据库的各种资源和进程。下面是SMON和PMON的功能和特点: ...

    SMON交换监控

    在接受SMON最为业界标准的过程中,IETF委员会认识到,要将远程监控运用到交换机监控中区就必须对SMON加以扩展,因为SMON标准并不是为交换机结构儿设计的。只有专门为交换机环境设计的SMON才能作为交换机远程监控标准...

    升级数据库smon_scn_time

    6. **解决smon_scn_time问题**:升级过程中遇到了与`smon_scn_time`相关的问题,具体表现为`smon`进程持续占用资源。为了解决这个问题,采取了以下步骤: - **禁用跟踪**:通过设置`event='12500 trace name ...

    oracle心得及体会

    (1)SMON:系统监控程序 (2)PMON:进程监控程序 (3)DBWR:数据库写入程序 (4)LGWR:日志写入程序 (5)CKPT:检查点进程 (6)ARCH:归档日志 (7)RECO:恢复进程 (8)SNPn:快照进程 (9)LCKn:锁定进程 (10)Dnnn:调度程序...

    断电与ORA-600问题集

    SMON: enabling cache recovery Sun May 10 14:06:34 2009 Errors in file /u01/app/oracle/admin/orcl/udump/orcl2_ora_21637.trc: ORA-00600: internal error code, arguments: [4000], [6], [], [], [], [], ...

    地震前兆Oracle数据库UNDO表空间持续增长修复.pdf

    尝试通过ALTER SESSION命令结束SMON会话无效,且考虑到数据库安全,避免直接在操作系统级别终止进程,以免引发更大问题,选择重启数据库。然而,即使数据库重启,SMON仍在进行死事务恢复,导致UNDO空间占用未减少。 ...

    oracle入门简介1.ppt

    - SMON:执行系统恢复和清理工作。 - LCKN:处理锁定操作。 - RECO:恢复进程。 - DBWR:将数据缓冲区中的更改写入数据文件。 - LGWR:将重做日志缓冲区的内容写入重做日志文件。 - CKPT:创建检查点,记录...

    ORACLE 数据库入门.pptx

    - SMON:系统监控,进行自动恢复和清理工作。 - DBWR:数据写进程,将数据缓冲区中的更改写入数据文件。 - LGWR:日志写进程,将重做日志缓冲区的内容写入重做日志文件。 - CKPT:检查点进程,更新数据文件和...

    ORACLE-数据库1.ppt

    - SMON:系统监控,执行系统恢复。 - LCKN:锁定进程,处理表级和行级锁。 - RECO:恢复进程。 - DBWR:数据写进程,将数据缓冲区中的更改写入数据文件。 - LGWR:日志写进程,将重做日志缓冲区的内容写入重做...

    oracle教程02_oracle体系结构.pptx

    - SMON:执行数据库的物理恢复和结构维护。 - DBWn:数据库写进程,将缓冲区中的更改异步写入磁盘。 - LGWR:日志写入进程,将重做日志缓冲区的内容写入联机重做日志文件。 - ARCn:归档进程,将旧的日志文件移动到...

    ORACLE 认证试题lz0-040

    **问题:** 在Flash Recovery Area中维护了哪些文件?(选择六项) **选项:** A. 控制文件; B. RMAN文件; C. 密码文件; D. 参数文件; E. Flashback日志; F. 数据文件副本; G. 内核转储文件; H. 归档日志文件; I. ...

    Oracle Database 12c Architecture

    - **Parallel Recovery Process (PRnn)**:这种进程负责并行恢复操作,加快恢复速度。 - **Diagnostic Process (DIA0)**:用于收集诊断信息,帮助诊断和解决问题。 - **Space Management Coordinator (SMCO)**:负责...

    Oracle体系结构概述.pptx

    - SMON:定期检查并修复数据库的任何损坏,执行自动恢复操作。 - PMON:监控和清理已挂起的进程,释放资源。 5. **数据库结构**: - **表空间**:逻辑上的数据存储单元,可以包含一个或多个数据文件。常见的表...

    Oracle体系结构材料

    4. 后台进程SMON:负责数据库的自动维护,如合并表空间段,清理临时段等。 5. PMON:监控并管理用户进程,当进程异常时进行清理工作。 6. CKPT:在系统发生检查点时更新数据文件,以确保在系统故障后的快速恢复。 ...

    Oracle系统培训软公司技术支持中心PPT课件.ppt

    - SMON:系统监视进程,负责数据库的初始化和恢复。 - LCKN:处理锁定请求。 - RECO:协调分布式事务的恢复。 - DBWR:数据写进程,将缓存中的更改写入数据文件。 - LGWR:日志写入进程,定期将重做日志缓冲区的内容...

    oracle体系结构

    - SMON:进行数据库的初始化和恢复操作。 - CKPT:触发定期检查点,确保数据一致性。 7. **内存管理**: - SGA中的共享池包含库缓存和数据字典缓存,大小可通过SHARED_POOL_SIZE参数调整。 - 库缓存存储SQL和PL...

    oracle 10G常见进程

    #### SMON:系统监控进程 **功能介绍**: SMON(System Monitor Process)是负责在数据库启动时执行恢复操作的关键进程。它还负责清理临时表空间中的临时段,以及处理由于异常中断导致的临时段。 **主要职责**: -...

    第八章ORACLE 系统管理简介ppt.pptx

    - System Monitor (SMON):检查数据库的一致性,进行崩溃恢复(Crash Recovery)。 - Checkpoint (CKPT):标记数据库何时达到检查点,同步数据库状态。 - Archiver (ARCH):负责归档Redo Log Files,保证备份和恢复...

Global site tag (gtag.js) - Google Analytics