假设整个数据库系统每秒产生一次提交,也就是每秒SCN增加1,SCN假设开始是=1,我有一个表有10个块,每个ORACLE块4K,由8个512字节的OS块组成,每行记录1个OS块。块号分别是001-010,这个过程也就我们热备的过程
1.未修改数据前
001是一个块,由8个os块组成,总共有001-010,10个块,一个OS块存储一行数据2.
修改4个块的4条记录
上图分别有4个UPDATE 语句,对应RBA (4,9,21,30),3和4是一起的,都是对block002的修改,他们在检查点队列在同一个块,队列里面在一起,红色块被更新(002第1行,007第2行,001第3行,006第4行),RBA3是修改前的值O (OLD )会写到UNDO TABLESPACE
0->N ,所以
O 肯定得进入UNTO
3.重复修改同一个块对检查点队列的影响
BLOCK2(002)被修改2次,但是在检查点队列里仍然排在图上的第2位,SCN=61是日志文件的RBA ,也就是日志文件的地址,也就是当我们执行10:01:30update t..where block=2and row=3;scn=61时, 块2在检查点队列中的位置没有变
ALTER TABLESPACE TEST BEGING BACKUP;
ORACLE 在发送BEGIN BACKUP 后先确定检查点SCN (本例子的检查点SCN 确定为68),就是在SCN=68的时候收到这个命令,再进行检查点,此后检查点计数器会继续增加,以保证数据文件版本为当前版本,不需要介质恢复。检查点计数器checkpoint cnt ,也就是检查点执行了多少次,是一个次数上次修改者: 残日
热备份恢复的过程10步原理
2011年7月16日
22:46