深入解析oracle第二章,深入解析Oracle学习笔记(第二章)

本文详细介绍了Oracle数据库中的系统改变编号(SCN)机制,包括SCN的组成、变化情况以及在数据恢复过程中的作用。SCN在事务提交或回滚时更新,并在日志文件和数据文件头中记录,用于确定恢复所需日志。检查点(CKPT)进程在数据库恢复中扮演关键角色,减少恢复时间。此外,文章还提及了FAST_START_MTTR_TARGET参数对恢复时间的影响以及实例恢复的步骤。
摘要由CSDN通过智能技术生成

SCN由两部分组成,高位SCN Wrap由2Bytes记录,低位SCN Base由4Bytes记录。

select dbms_flashback.get_system_change_number from dual;

通常在事务提交或回滚时改变,并不是任何时候都会改变的。

(1)数据文件头中包含该数据文件的checkpoint SCN  (checkpoint 计数,scn,时间,stop scn无穷大)

(2)日志文件头包含了Low SCN和Next SCN,正在使用的redo,next scn为无穷多大。查看v$log;

oracle在进行恢复时,根据低SCN和高SCN来判断需要恢复的信息位于哪个日志或归档文件中。

checkpoint

DBWR写脏数据

CKPT通知DBWR写,并更新数据文件头及控制文件上的检查点信息

检查点是为了缩短恢复时间

常规检查点需要写出全部脏数据,又叫完全检查点。同时跟新数据文件及控制文件。

LRBA:Low RBA ,第一次对数据库块修改对应的Redo Block Address。

如果一个数据块被多次修改,它在检查点队列上的位置不会改变。

相对应的,有HRBA。

增量检查点时,CKPT进程只更新控制文件中的检查点SCN及RBA信息。

v$latch  存在多个子latch,可以查看v$latch_children。

检查点队列CKPTQ

文件检查点队列FILEQ     (表空间offline等操作时会触发)

每个buffer的header上都存在CKPTQ和FILEQ队列信息,双向连边。dirty buffer才有,否则为null。

10g开始,额外增加了对象检查点队列,OBJQ。

Low cache RBA 是下一次恢复的起点 (已经写入到磁盘的dirty buffer?)

On disk RBA则是已经写入到磁盘的RBA地址,是恢复时,前滚的终点。  (已经写入到磁盘的redo?)

LOG SWITCH触发的是增量检查点,但会促使数据文件头与控制文件信息的同步。

控制文件中的heartbeat每3秒更新一次,验证实例存活。

log_checkpoint_to_alert参数设置为true,则在告警日志中,记录log switch checkpoint信息。

数据文件头中的ctl checkpoint cnt比ckpt cnt小1,目的是什么?

开始SCN记录在数据文件头。结束SCN记录在控制文件中。数据库打开后,将控制文件中的结束SCN置为无穷大。

查看数据库安装了哪些组件 v$option 视图。

FAST_START_MTTR_TARGET 参数定义了数据库进行crash恢复时间,单位是秒。

v$mttr_target_advice视图评估在不同FAST_START_MTTR_TARGET设置下,系统需要进行的IO次数等操作。

statistic_level参数设置为typical或者ALL,才会收集MTTR建议信息。

查询视图v$statistic_level,查看数据库目前收集什么信息。

v$instance_recovery查看数据库当前实例恢复状态。(系统运行过程中,不是恢复过程中。查看如果现在数据库挂了,需要多长时间恢复。系统每次执行检查点后,会重新计算。在很繁忙的系统中,预估恢复时间可能会大于FAST_START_MTTR_TARGET,因为DBWR来不及写,甚至检查点不能及时完成。)

10g新特性,自动调整检查点,利用系统地IO负载时段写出数据。FAST_START_MTTR_TARGET参数未设置时,该功能生效。

Low cache RBA:指在cache中,最低的RBA地址,实例恢复的起点。

on disk RBA:是磁盘上最高的重做值,实例恢复的终点。

除了shutdown abort之外,其他关闭方式都是执行了完全检查点,不需要实例恢复。

实例恢复包括两个步骤:1. cache recovery 2.transaction recovery。

FAST_START_PARALLEL_ROLLBACK 参数,控制并行回滚度,false 禁用,low 不超过2倍cpu_count, high 不超过4倍cpu_count。

v$rollstat 回滚段相关视图

v$fast_start_transaction 视图,显示正在回滚的事务的相关信息。

数据库重启之后,v$transaction事务表中的事务信息将消失,恢复事务变成死事务。

查看死事务恢复进度 x$ktuxe

bootstrape$

BBED

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值