日期:2014-05-16 浏览次数:20486 次
--- 说明闪回数据库
--- 使用闪回表将表内容还原到过去的特定时间点
--- 从删除表中进行恢复
--- 使用闪回查询查看截止到任一时间点的数据库内容
--- 使用闪回版本查询查看某一行在一段时间内的各个版本
--- 使用闪回事务查询查看事务处理历史记录或行
优点:
闪回技术由于只能处理更改数据,所以从根本上改变了恢复技术。使用这个技术时,从错误中恢复花费的时间等于制造错误所花费的时间。当闪回技术使用时,它与介质恢复相比,在易用性、可用性和还原时间方面有明显的优势。
闪回数据库使用闪回日志执行闪回。闪回删除使用回收站。其他所有功能都使用还原数据。
闪回数据库 -----这个功能可撤销导致逻辑数据损坏的更改
就是当出现逻辑错误时,能够将整个数据库回退到出错前的那个时间点上,
闪回数据库的日志文件不是由传统的Log Writer (LGWR)进程写入,而是由一个称为RecoVery WRiter (RVWR)的新进程写入,闪回日志文件由RCWR进程在恢复区中自动创建和维护。
[oracle@tyger ~]$ ps -ef|grep rvwr|grep -v grep
oracle 8414 1 0 14:33 ? 00:00:00 ora_rvwr_ORCL
可以使用闪回数据库的场景包括
1. 用户截断了表(trucate)
2. 系统管理员误删除了用户
3. 用户错误的执行了某个批处理任务,或者该批处理任务的脚本编写错误,使得多个表的数据发生混乱,我们无法采用闪回表的方式进行恢复
实现闪回数据库的基础是闪回日志,只要我们配置了闪回数据库,就会自动创建闪回日志。这时,只要数据库里的数据发生变化,oracle就会将数据被修改前的旧值保存在闪回日志里,当我们需要闪回数据库时,oracle就会读取闪回日志里的记录,并应用到数据库上,从而将数据库回退到历史的某个时间点上。
闪回数据库:减少还原时间
闪回数据库比使用还原文件和重做日志文件的传统时间点恢复的速度要更快。随着数据库规模的增加,通过还原所有数据文件来执行传统的时间点恢复所需的时间长度变得不太现实。使用闪回数据库时,因为不要需要还原数据文件,所以恢复数据库的时间与需要回退的更改数目(而不是数据库大小)成比例。
闪回数据库是通过使用一类被称为闪回数据库日志的日志文件来实施的。oracle数据库会定期将数据块的“前像”记录在闪回数据库日志中。为了快速将数据文件更改回退到捕获闪回日志的时间(就在所需目标时间之前),可以重用块前像。然后,应用重做日志文件中的更改来填充间隔。在快速恢复区中会自动创建和管理闪回数据库日志。
在不能使用闪回数据库功能的情况下,必须使用不完全恢复操作将数据库返回到特定时间。闪回数据库操作完成后,可在只读模式下打开数据库,验证是否使用了正确的目标时间或系统更改号(SCN)。如果没有,可以再次闪回数据库,或者通过执行恢复操作来前滚数据库。因此,要撤销闪回数据库操作,必须向前恢复数据库。
注:闪回保留目标并不能绝对保证闪回可用。如果闪回恢复区中必须存在的文件需要占用空间,可能会自动删除闪回日志。
闪回数据库操作完成后,必须使用以下一种方法打开数据库:
· 在只读模式下验证是否使用了正确的目标时间或SCN
· 使用RESETLOGS 参数才允许进行更新
闪回数据库限制:(不能使用闪回数据库)
· 已还原或重新创建了控制文件
· 已删除了表空间
· 已收