v$log中status说明及redo log大小修改

原文链接:http://blog.vsharing.com/mark97/A1419542.html

1.current

指current是目前的日志文件,该日志文件是活动的,当前正在被使用的,在进行崩溃恢复时,current的日志是必须的;

2.active

是活动的非当前日志,该日志可能已经完成归档也可能没有归档,对应的脏数据还未下盘,在实例恢复时需要;

active状态意味着,checkpoint尚未完成,如果日志文件循环使用再次到达该文件,数据库将处于等待停顿状态,此时数据库日志中有如下记录:

Thread 1cannot allocate new log,sequence 7239

Checkpoint not complete

   Current log# 5 seq# 7238 mem#0: /opt/oracle/oradata/hsmkt/redo05.log

可通过v$session_wait来查看,显示数据库当前哪些session正在处于这种等待

Checkpoint not complete 在数据库中体现为等待事件 log file switch(checkpoint incomplete)

 _selectsid,event,state from v$session_wait; 

日志文件必须等待dbwr完成checkpoint触发的写操作之后才能被覆盖,如果设置参数 log_checkpoint_to_alert 为 true,在alert 文件中可以看到checkpoint的增进和完成情况:

引起checkpoint incomplete 可能原因如下:

1.日志文件太小,切换过于频繁

2.日志组太小,不能满足正常事务量的需要

3.日志文件所在磁盘I/O 存在颈瓶,导致写出缓慢,阻塞数据库正常运行

4.数据文件磁盘I/O瓶颈,DBWR写出过于缓慢

5.事务量具大,DBWR负荷过高,不堪重负

 

3. inactive

非活动日志,对应的脏数据已经下盘,实例恢复时不再需要,但在介质恢复时可能会用到,如果数据库启动在归档模式,在没有完成归档之前,日志文件也不容许被覆盖,这时活动进程会处于log file switch(archiving needed)等待之中


 4.unused

指该日志从未被写入,这类日志可能是刚被添加到数据库或者resetlogs 之后被重置    以上状态的日志文件是否归档 ,要看v$log.archived

 

redo file大小修改:

1.select a.status,a.group#,b.member from v$log a,v$logfile b
where a.group#=b.group#;

(status= INACTIVE,UNUSED 可以删除)

或者 select  * from v$log;
2.alter database drop logfile group 1; -----1为上面查询出来的状态为 INACTIVE,UNUSED的
3.alter database add logfile group 5 ('C:\ORACLE\PRODUCT\10.2.0\ORADATA\YWDB\REDO06.LOG','C:\ORACLE\PRODUCT\10.2.0\ORADATA\YWDB\REDO07.LOG') size 100m;
(注意路径,文件名,组编号,size大小)
4.将现在使用的日志切换到下一组
alter system switch logfile;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值