在这章中你将会学到如何:
·使用回闪技术恢复被删除的表
·治理回收的二进制文件
·执行回闪表操作
·使用回闪版本查询从用户错误中恢复
·使用回闪事务查询执行事务级别的恢复
前面的章节介绍了回闪数据库,一种强大但是非常有个性的功能,相当于不完全恢复。这一章覆盖的内容是Oracle 10g数据库中可用的其它回闪技术。这些都不像回闪数据库那么极端,它们都不依靠于停机时间或者损失的数据量。它们是静态的,然而,也是通过撤销你不想要的修改提交来恢复错误的非常强大的技术。
这里讨论的回闪技术,首先,使回闪删除,可以通过使用DROP TABLE命令来激活和执行;第二,使用UNDO功能的不同方式:回闪版本查询,回闪表查询,以及回闪事务查询。
回闪和ACID测试
还记得第9章中描述的ACID测试吗。这是关系型数据库必须遵循的规则的一部分,对于理解回闪技术也是至关重要的:不论是它们的功能,还是它们的局限性。
所有的数据治理语言事务都是通过COMMIT或者ROLLBACK语句来结束的。到那个时候,因为事务已经执行了,出于Oracle实现的事务隔离的原则(ACID测试中的I),保证除了执行事务的会话之外,没有人能够看到进行的修改。
进一步讲,原子性的原则(ACID测试中的A)也保证了事务可以用ROLLBACK来终结这个事务,这可以将修改彻底地恢复过来;没有其它会话会知道进行了哪些修改。假如事务是以COMMIT终结的,那么修改就会立即被所有其它会话看到。惟一的例外情况就是任何出于读一致性原因(ACID测试中的C)的会话必须与这个修改相隔离。此外,一旦事务被提交了,那么数据库要丢失这个修改是决对不可能的;这就是ACID测试中的D,持久性。
评论加载中…
![]() |