⊙ 平均故障间隔时间(MTBF)
怎么样延长MTBF:将重要的文件分布在不同的卷组、不同的文件系统、不同的RAID设备上等设置硬件级、操作系统级冗余以提高高可用性,可以对在线日志文件文件、控制文件实现文件镜像分布到不同磁盘控制器下的不同磁盘上,以实现数据库级的冗余,实现高可用性,减少故障和DOWN机的频率,避免MTBF过短。
⊙ 平均恢复时间(MTTR) |
怎么样缩短MTTR:
|
常见故障的类型
⊙ 语句故障
⊙用户进程故障
⊙ 用户错误
⊙ 介质故障(需要DBA进行干预)
|
改动向量
改动向量描述对数据库中任何单个数据块所做的一次改动,所以改动向量是数据块变化的线索。改动向量中的信息包括版本号、事务操作代码以及被改动的数据块的地址。改动向量中的信息包括版本号、事务操作代码以及被改动的数据块的地址。当改动向量应用到数据块时,该数据块版本号(当前数据块被修改次数的计数器)加1。
|
|
检查点
两类:增量检查点和完全检查点
⊙ 完全检查点
当关闭数据库(异常关闭除外)或通过ALTER SYSTEM CHECKPOINTA 命令手动启动检查点操作时,将执行称为完全检查点的过程。在完全检查点操作中,DBWn 将数据库缓冲区高速缓存中的所有脏缓冲区数据写入数据文件。所以完全检查点,写入的数据最多。
⊙ 增量检查点 |
增量检查点(跟快速启动检查点相关)是持续活动的检查点,是一种心跳机制,每3秒检查一次,DBWn 定期从检查点队列写出缓冲区数据,从而不断推进内存中的增量检查点操作。
|
增量检查点记录在控制文件中
|
⊙ 部分检查点
ALTER TABLESPACE BEGIN BACKUP 命令仅对缓冲区高速缓存中属于该表空间的脏缓冲区启动部分检查点操作。
|
◎ 检查点用来确定应从何处开始恢复。
|
◎ 检查点位置
恢复开始的位置 |
◎ 检查点队列
脏数据块的链接列表 |
各种RBA
⊙ RBA
|
RBA由三个部分组成:
|
◎ 日志文件序列号(4字节)
◎ 日志文件块编号(4字节) ◎ 重做日志记录在日志块中的起始偏移字节数(2字节) |
◎ LRBA:数据缓存(buffer cache)中一个脏块
最早一次被更新的时候产生的重做日志记录在重做日志文件中所对应的位置就称为LRBA
|
◎ HRBA:数据缓存(buffer cache)中一个脏块
最近一次被更新的时候产生的重做日志记录在重做日志文件中所对应的位置就称为HRBA
|
◎ target rba:与增量检查点密切相关。比如检查点RBA=100,而计算出来的target rba=105,那我们这次增量检查点要写的脏数据是100-105的数 据,然后检查点RBA被更新成105
checkpoint rba target rba <----------------------------------------> 这一部分是要刷新到数据文件的, 等刷新完后,target rba变成了checkpoint rba,并记录在控制文件中,作为崩溃恢复的起点 |
◎ On-disk RBA 是指LGWR 已经写到log file 中最后一个RBA的地址
|
查看SCN
数据库检查点SCN
select checkpoint_change# from v$database; 各个数据文件检查点SCN select name,checkpoint_change# from v$datafile; 数据文件启动SCN select checkpoint_change# from v$datafile_header; 数据文件结束SCN select name,last_change# from v$datafile; |
系统scn
|
select current_scn from v$database;
|
或者用dbms_flashback包
select dbms_flashback.get_system_change_number from dual; |