ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 联机重做日志的问题及诊断

联机重做日志的问题及诊断

原创 Linux操作系统 作者:gvora 时间:2009-01-16 19:00:45 0 删除 编辑

       Oracle依赖于联机重做日志来记录对数据库的改变。每次数据库中发生一次事务处理,联机重做日志文件就会增加一个条目。如果增大分配给日志的空间 ,就可以提高性能。没有提交的事务同样会生成日志条目。

如果想使大量的INSERTUPDATEDELETE操作速度更快,可以增大日志文件大小(可以增加用于介质恢复的时间),并确保这些文件在最快的磁盘上。

镜像联机重做日志可以提高归档性能,因为这样可以允许归档进程多路读取两个文件备份。

注意:增量检查点不会像全局检查点一样产生性能问题。

1、确保重做日志文件的大小是否存在问题

在此提到两个可能出现的问题:

问题一:批处理任务。该任务可能没有足够的完整重做空间来完成,或是因为速度快,以致联机重做日志在归档到归档日志文件前即已切换(使用了所有的重做日志,但没有归档)。

诊断:在操作系统级别上,按最近的更新日期和时间列出归档日志文件,判断他们切换的是否频繁;还可以用查询V$LOG_HISTORY来得到最近的100个日志交换记录。

解决:增加联机重做日志文件的大小,为那些执行大型的INSERTUPDATEDELETE操作的批处理任务提供足够的空间。另外一个解决方法就是增加联机重做日志的数目,这样就可以在有很频繁的日志切换时提供足够的空间,而且可以使恢复时间更短。

问题二:长时间运行的任务。这些任务可能要花大量的时间来切换联机重做日志文件。

对于OLTP环境,最好使用较小的重做日志。

以下SQL语句显示两个日志切换的间隔时间,这样可以方便地判断系统是否存在问题:

SQL> select b.recid,

  2         to_char(b.first_time,'dd-mon-yy hh:mi:ss') start_time,a.recid,

  3         to_char(a.first_time,'dd-mon-yy hh:mi:ss') end_time,

  4         round(((a.first_time-b.first_time)*24)*60,2) minutes

  5  from v$log_history a,v$log_history b

  6  where a.recid=b.recid+1

  7  order by a.first_time asc;

 

     RECID START_TIME           RECID END_TIME                   MINUTES

 

---------- ----------------------- ---------- ----------------------- ----------

 

         1 31-12-08 06:51:35              2 31-12-08 06:54:08           2.55

 

         2 31-12-08 06:54:08              3 31-12-08 06:54:24            .27

 

         3 31-12-08 06:54:24              4 31-12-08 10:01:44         187.33

 

         4 31-12-08 10:01:44              5 01-1 -09 11:21:03         799.32

 

         5 01-1 -09 11:21:03              6 01-1 -09 10:05:57          644.9

。。。。。。。。。。。。。。。。。。。。。。(省略)

 

 

2、确定日志文件的大小和检查点的时间间隔

通过在操作系统级别上检查联机重做日志文件的大小或查询V$LOGV$LOGFILE来确定这些文件的大小。

以下SQL显示关于重做日志文件的信息

SQL> select a.member,a.group#,b.thread#,b.bytes,b.members,b.status

  2  from v$logfile a,v$log b

  3  where a.group#=b.group#;

 

MEMBER

--------------------------------------------------------------------------------

 

    GROUP#    THREAD#      BYTES    MEMBERS STATUS

---------- ---------- ---------- ---------- ----------------

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\REDO03.LOG

         3          1   52428800          1 INACTIVE

 

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\REDO02.LOG

         2          1   52428800          1 INACTIVE

 

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\REDO01.LOG

         1          1   52428800          1 CURRENT

 

 

注意:在正常的业务条件下,如果低于每半个小时切换一次日志(不包括不频繁的批处理任务),就增加联机重做日志文件大小。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15203236/viewspace-539882/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-12-30

  • 博文量
    62
  • 访问量
    289394