redo log buffer -> online redo log files -> archived redo log file

本文详细介绍了Oracle数据库的重做日志(redo log)管理,包括redo日志保存的数据信息(如SCN、事务ID、操作类型等)、重做日志文件的写入规则、动态性能视图(如v$log和v$logfile)、日志切换的触发条件和方法、查看归档日志信息的SQL查询、redo文件的多路复用设置以及在实例恢复中的关键作用。此外,还提供了查询日志切换次数的SQL示例,帮助管理员监控数据库运行状况。


在这里插入图片描述

问题1:redo日志保存了什么数据信息?

重做记录包含对数据库修改时的元数据信息
1 SCN(System Change Number)号和变化的时间戳(Time Stamp)
2 修改事务的事务ID
3 提交事务时的SCN号和时间戳
4 产生变化的操作类型
5 被修改数据段的名称和类型

https://img-blog.csdnimg.cn/20210119173112651.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlenVpaml1ZGV4aWFvYmFp,size_16,color_FFFFFF,t_70

问题2:联机重做日志文件可以同时写入吗?

不能,在任何时刻只有一个可以写入。【current

问题3:相关动态性能视图

v$log
记录从控制文件中读取的所有重做日志文件组的基本信息。
v$logfile
包括每个成员日志文件的基本信息、状态、重做日志组好、成员文件名称等信息。

问题4:日志切换

1 当前重做日志文件被写满
2 指定时间进行日志切换
alter system set archive_lag_target=1800; --单位:秒
3 手工日志切换
alter system switch logfile;


alter system archive log all; --所有未归档且写满的重做日志文件进行归档
alter system archive log current; --当前的联机重做日志文件进行归档,并进行日志切换。

问题5:查看归档日志信息

archive log list
显示当前连接实例的归档重做日志文件信息

v$database
数据库是否处与归档模式

v$archived_log
从控制文件中获取已归档日志的信息,如归档目标名称等

v$archived_dest
显示所有归档目标的位置和状态等信息

v$log_history
从控制文件中获得重做日志历史信息

问题6:redo文件多路复用

show parameter db_create

db_create_online_log_dest_n 

问题7:实例恢复中起到的作用

问题8:redo文件

在这里插入图片描述

问题9:日志切换次数

每小时日志切换次数

set linesize 150
select  THREAD#, to_char(first_time,'yyyy-mm-dd hh24') "switch/hour",count(*)
from v$log_history where first_time>=sysdate-1
--and THREAD#=2  
group by  THREAD#,to_char(first_time,'yyyy-mm-dd hh24') order by 1 desc ; 

日志切换次数

SELECT * FROM (
SELECT * FROM (
SELECT   thread#,
         TO_CHAR(FIRST_TIME, 'MM-DD') AS "DAY"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '00', 1, 0)), '999') "00:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '01', 1, 0)), '999') "01:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '02', 1, 0)), '999') "02:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '03', 1, 0)), '999') "03:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '04', 1, 0)), '999') "04:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '05', 1, 0)), '999') "05:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '06', 1, 0)), '999') "06:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '07', 1, 0)), '999') "07:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '08', 1, 0)), '999') "08:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '09', 1, 0)), '999') "09:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '10', 1, 0)), '999') "10:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '11', 1, 0)), '999') "11:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '12', 1, 0)), '999') "12:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '13', 1, 0)), '999') "13:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '14', 1, 0)), '999') "14:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '15', 1, 0)), '999') "15:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '16', 1, 0)), '999') "16:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '17', 1, 0)), '999') "17:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '18', 1, 0)), '999') "18:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '19', 1, 0)), '999') "19:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '20', 1, 0)), '999') "20:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '21', 1, 0)), '999') "21:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '22', 1, 0)), '999') "22:00"
       , TO_NUMBER(SUM(DECODE(TO_CHAR(FIRST_TIME, 'HH24'), '23', 1, 0)), '999') "23:00"
    FROM V$LOG_HISTORY
    WHERE first_time>sysdate-7 and 
    extract(year FROM FIRST_TIME) = extract(year FROM sysdate)
GROUP BY thread#,TO_CHAR(FIRST_TIME, 'MM-DD')
) ORDER BY TO_DATE(extract(year FROM sysdate) || DAY, 'YYYY MM-DD') DESC
) 
order by 2 desc,1 asc;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值