log file switch (日志切换)

日志文件相关等待:Redo 对于数据库来说非常重要, 有一系列等待事件和日志相关,通过 v$event_name 视图可以找到这些等待事件 SQL> select name from v$e

日志文件相关等待:Redo 对于数据库来说非常重要, 有一系列等待事件和日志相关,通过 v$event_name 视图可以找到这些等待事件 

 

SQL> select name from v$event_name where name like '%log%';

NAME

logout restrictor

LNS ASYNC archive log

LNS ASYNC end of log

log file sequential read

log file single write

log file parallel write

log buffer space

log file switch (checkpoint incomplete)

log file switch (private strand flush incomplete)

log file switch (archiving needed)

switch logfile command

log file switch completion

log file sync

 

log file switch( 日志文件切换)
log file switch 当日志文件发生切换时出现, 在数据库进行日志切换时,后台进程 LGWR需要关闭当前日志组,切换并打开下一个日志组,在这个切换过程中, 数据库的所有 DML 操作都处于停顿状态,直至这个切换完成。

log file switch 主要包含两个子事件 log file switcharchiving needed)和 log file switchcheckpoint incomplete)。
 

1log file switcharchiving needed),即日志切换( 需要归档), 这个等待事件出现时通常是因为日志组循环写满以后, 在需要覆盖先前日志时,发现日志归档尚未完成,出现该等待。由于 Redo 不能写出,该等待出现时,数据库将陷于停顿状态。出现该等待,可能表示 I/O 存在问题、归档进程写出缓慢,也有可能是日志组设置不合理等原因导致。 针对不同原因,可以考虑采用的解决办法有:
1. 可以考虑增大日志文件和增加日志组;
2. 移动归档文件到快速磁盘;
3. 调整 log_archive_max_processes 参数等( alter system set log_archive_max_processes=n scope=both;)。


2log file switchcheckpoint incomplete),即日志切换(检查点未完成)。 当所有的日志组都写满之后, LGWR 试图覆盖某个日志文件,如果这时数据库没有完成写出由这个日志文件所保护的脏数据时(检查点未完成),该等待事件出现。 该等待出现时,数据库同样将陷于停顿状态。 

 

同时警告日志文件中会记录如下信息:
Fri Nov 18 14:26:57 2008
Thread 1 cannot allocate new log, sequence 7239
Checkpoint not complete
Current log# 5 seq# 7238 mem# 0: /opt/oracle/oradata/hsmkt/redo05.log
该等待事件通常表示 DBWR 写出速度太慢或者 I/O 存在问题。为解决该问题, 用户可能需要考虑增加额外的 DBWR 或者增加日志组或日志文件大小。 log file switch 引起的等待都是非常重要的,如果出现就应该引起重视,并由 DBA 介入进行及时处理。 

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754940370a5218041.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信