Oracle 重做日志管理

重做日志(Redo Log)是Oracle数据库事务的记录者。LGWR后台进程和联机重做日志是Oracle日志机制的组成部分。在出现实例失败或数据库崩溃时,可以实现实例的自动恢复和数据库的介质恢复。

--查看每天切换日志数量
select to_char(first_time,'yyyy-mm-dd') day1,count(*)
from v$log_history
where first_time>=to_date('2019-05-03','yyyy-mm-dd')
group by to_char(first_time,'yyyy-mm-dd') order by day1;

--查看当前数据库重做日志配置(如果是rac集群就是rac各节点共有的配置)
col member format a30
select b.THREAD#,a.GROUP#,a.TYPE,a.MEMBER,b.BYTES/1024/1024,b.STATUS,b.ARCHIVED from v$logfile a,v$log b where a.GROUP#=b.GROUP#;

状态列(status)所显示常用状态的含义:
• inactive:表示实例恢复已不再需要这组联机重做日志组了。
• active: 表示该组是活动的但不是当前组,实例恢复时需要这组日志。
• current:表示该组日志是当前组,该联机重做日志组是活动的。
• unused:表示该日志组从未写过,是重做日志刚刚添加到状态。

--添加一个重做日志组redo04(单机非rac情况下)
alter database add logfile '/db/oradata/orcl/redo04.log' size 50M; 

--删除一个日志组redo09
alter database drop logfile group 9;
注意:如果只剩下两个日志组,则任何一个日志组都不能删除;

如果日志组,组成员还在,但不能访问,可以重新初始化该日志组
alter database clear logfile group 9;

 

RAC 集群下的日志管理
说明:RAC集群下各个实例都有自己的日志线程(thread)及属于自己的日志组

--查看当前线程数量和对应的系统改变号SCN及日志序列信息
col instance format a30
select THREAD#,INSTANCE,OPEN_TIME,CHECKPOINT_CHANGE#,SEQUENCE# from v$thread;

--查看rac各节点对应的线程日志
select b.THREAD#,a.GROUP#,a.TYPE,a.MEMBER,b.BYTES/1024/1024,b.STATUS,b.ARCHIVED from v$logfile a,v$log b where a.GROUP#=b.GROUP#;

上面结果显示,当前RAC集群有两个线程 THREAD1 和 THREASD2 及各rac节点对应的日志文件 

RAC下添加日志组文件:
先确定是加给rac1还是rac2,登陆要添加的节点用上面SQL语句添加即可

 

posted @ 2020-08-15 12:03  莫让年华付水流  阅读(409)  评论(0编辑  收藏  举报