oracle强制闪回点,Oracle 10g 闪回 flashback --  restore point 恢复点

本文介绍了Oracle数据库10g中引入的恢复点功能,类似于SQL的保存点,允许用户在数据库中设置特定的时间点,以便在需要时进行闪回。在批处理作业失败等情况下,恢复点使得数据库可以轻松回滚到先前一致的状态,而无需回滚整个事务。创建和管理恢复点的示例代码和过程也进行了说明,强调了这一特性在数据库管理,尤其是测试和故障恢复场景中的实用性。
摘要由CSDN通过智能技术生成

还记得 SQL

中保存点的概念吗?在一个事务中,您可以创建保存点,进行某些修改,创建另一个保存点,等等。如果这些更改不是您想要的,则您所要做的就是将它们回滚到某个具体的保存点。

现在,我们将介绍Oracle数据库 10g 中引入的一个新功能 —

闪回数据库。通过它您可以将数据库倒回到前一个时间点。在这种情况下拥有一个与保存点类似的功能(即能够倒回到一个有名称的点,而不仅仅是一个时间点)岂不是很好?

在 Oracle 数据库 10g 第 2

版中,您可以使用一个名为恢复点的新功能来实现该操作。以下是它的工作方式。假设有一个长期运行的处理(涉及多个必须按顺序运行的批处理程序)。

以下是事件序列:

创建恢复点 rp1运行批处理作业 1

创建恢复点 rp2

运行批处理作业 2

等等。 批处理作业 2 在执行过程中失败,您需要将数据库恢复到一致的状态。 您不必将它一直恢复到运行的开始阶段。 由于恢复点 rp2

是在批处理作业执行之前创建的,因此只需将数据库闪回到该恢复点。

使用以下代码创建一个恢复点create restore point before_monthend_200503;

现在根据当前的数据库时间和 SCN 创建了恢复点

BEFORE_MONTHEND_200503。如果要确保可以将数据库闪回到某个特定恢复点,可以通过按如下所示创建有保证的恢复点来指定

guarantee:create restore point before_monthend_200503 guarantee flashback

database;

可以通过从动态性能视图 V$RESTORE_POINT 中执行 SELECT 来确认该恢复点是否存在:SQL> select * from v$restore_point; SCN

DATABASE_INCARNATION# GUA STORAGE_SIZE TIME NAME

---------------------------------------------------

1429811 1 YES 8192000 27-MAR-05 05.18.39.000000000 PM

BEFORE_MONTHEND_200503

稍后当您要将数据库闪回到该恢复点时,您只需发出:flashback database to restore point

before_monthend_200503;

如果检查警报日志,它将显示一个类似如下的行:Media Recovery Applied UNTIL CHANGE 1429814

恢复点(尤其是有保证的恢复点)在许多与数据库相关的任务中非常有用。 QA

数据库就是一个典型示例。在该数据库中,您可能要建立一个恢复点、运行某些测试并闪回到恢复点,从而使数据库看起来好象什么也没发生一样。然后,您可以执行另一轮测试,并再次将它恢复到恢复点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值