Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1097255
  • 博文数量: 276
  • 博客积分: 10077
  • 博客等级: 上将
  • 技术积分: 2513
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-24 20:31
文章分类

全部博文(276)

文章存档

2020年(1)

2015年(5)

2012年(2)

2011年(6)

2010年(7)

2009年(224)

2008年(31)

我的朋友

分类: Oracle

2008-08-21 21:13:26

1.用户管理备份与恢复原理
alter tablespace users begin backup
的时候是锁定了users表空间对应的数据文件头的change scn.首先考虑一下数据库怎么用日志文件做恢复:查找不一致的数据文件(根据文件头中旧的scn)如果锁定了文件头,这个文件头中的scn就不会改变(当然了数据块还是会变化的,还可以做读写)。 然后就会应用这个scn到现在的日志。那我锁定了scn,不管你后边怎么修改,总之做恢复的时候是应用锁定的时候的scn一直到现在的日志(完全恢复的话).
select tablespace_name,checkpoint_change#,checkpoint_count,name from v$datafile_header;
alter system checkpoint;
 
2.RMAN备份与恢复原理
Rman备份并不需要将数据库或者表空间置于backup状态,但是它会把scn记录在catalog中对应你的backupset准备在恢复的时候来使用.
list backup of database;
恢复的时候应用CKP SCN开始到现在的归档日志和重做日志。
 
rman的增量备份的基本原理其实原理很简单,主要就是弄明白怎么样在做增量备份时确定某个数据块需要备份,哪个不需要rman在做1级备份的时候怎么来确定0级备份之后都有哪些数据块做了修改呢?看下面一段
 
Each data block in a datafile contains a systemchange number (SCN), which is the SCN at which the most recent change was made to the block. During an incrementalbackup, RMAN reads the SCN of each data block in the input file and
compares it to the checkpoint SCN of the parentincremental backup. If the SCN in the input data block is greater than or equal to the checkpoint SCN of the parent,then RMAN copies the block.
 
原来block里边也有一个change scn也就是说在做level 1级备份的时候,需要扫描所有的数据块并且用块中记录修改的SCN跟level 0备份时的SCN做比较(备份记录中的Ckp SCN),来确定这个块是否需要备份。
在10g中rman做增量备份不再需要扫描整个数据文件了10g引入的新特性 block change tracking:Block change tracking进程记录自从上一次备份以来数据块的变化,并把这些信息记录在跟踪文件中。RMAN使用这个文件判断增量备份中需要备份的变更数据。这极大的促进了备份性能,RMAN可以不再扫描整个文件以查找变更数据。
 
RMAN's change tracking feature for incremental backups improves incremental backup performance by recording changed blocks in each datafile in a change tracking file. If change tracking is enabled, RMAN uses the change tracking file
to identify changed blocks for incremental backup, thus avoiding the need to scan every block in the datafile.
 
 

 
阅读(1408) | 评论(0) | 转发(0) |
0

上一篇:崩溃恢复过程

下一篇:dbms_stats使用

给主人留下些什么吧!~~