`

关于Oracle Restore Point

 
阅读更多

还原点(Restore point)是Oracle10gR2配合Flashback database推出的一个新特性。Restore point可以单独使用,也可以和Flashback database联合使用。

 

我们知道,Flashback database提供了一种将数据库整个的回滚到之前某个时间点的功能,相当于使用之前的某个备份做基于时间点的恢复,但是比基于时间点的恢复更有效率,因为无需执行备份数据文件的复制,只需要使用flashback log执行数据库回滚即可。也就是说,要使用flashback database功能,必须保证所需要的所有flashback log存在。flashback log存放在flashback recovery area中。由于falshback log中需要包含变更的数据块的映象,设置过长的flashback retention target,可能导致flashback recovery area空间不足。

 

 

Restore point有两种类型:Normal和Guaranteed。

 

Normal restore point相当于某个时间点或者SCN的一个别名。restore point的名字和对应的SCN会保存在控制文件中。创建了normal restore point后,如果需要执行flashback database/flashback table/point-in-time recovery等操作时,就可以制定目标时间点为该restore point,而不需要指定当时的SCN了。在很多关于恢复和闪回的试验中,作者都是在试验前查询系统当前的SCN,执行某些操作,然后恢复或者闪回到之前查询到的SCN。有了normal restore point后,就不再需要查询系统当前scn了,只需要创建一个有意思的normal restore point名,以后使用该名字即可。

 

Guaranteed restore point的功能和normal restore point的功能基本一致,也是作为SCN的一个别名。但是它还有一些和flashback database相关的特性。前面也提到,在执行flashback database到之前的某个时间点时,必须保证所需要的flashback log存在。

 

创建一个guaranteed restore point,可以保证能将数据库flashback到该点,即使没有系统启用flashback database日志!这是因为,在创建guaranteed restore point之后,对于任何block的第一次变更,都会将其前映象整个的记录下来。

 

如果系统启用了flashback database日志,那么guaranteed restore point可以保证能将数据库flashback到guaranteed restore point之后的任何时间点。

 

启用flashback database日志功能,需要使用alter database flashback on并且设置DB_FLASHBACK_RETENTION_TARGET参数(默认为1天)。默认情况下,会启用所有tablespace的flashback日志,也可以针对某个tablespace单独设置,如ALTER TABLESPACE tbs_3 FLASHBACK OFF。

 

有了Guaranteed restore point,甚至可以将数据库flashback到几天或者几个星期之前,只要flashback recovery area中空间足够。所以创建了guaranteed restore point后,需要对flashback recovery area空间保持密切的监控。

 

a.创建normal restore point

 

SQL> CREATE RESTORE POINT before_upgrade;

Restore point created.

 

b.创建guaranteed restore point

 

SQL> CREATE RESTORE POINT before_upgrade GUARANTEE FLASHBACK DATABASE;

Restore point created.

 

c.列举系统中已经创建的restore point

 

SQL> SELECT NAME, SCN, TIME, DATABASE_INCARNATION#,

GUARANTEE_FLASHBACK_DATABASE,STORAGE_SIZE

FROM V$RESTORE_POINT;

 

d.列举系统中已经创建的guaranteed restore point

 

SQL> SELECT NAME, SCN, TIME, DATABASE_INCARNATION#,

GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE

FROM V$RESTORE_POINT

WHERE GUARANTEE_FLASHBACK_DATABASE=’YES’;

 

对于normal retore point,storage_size为0。而guaranteed restore point的storage_size则为保证系统能够flashback到该点所需要的记录前映象的磁盘空间。

 

e.删除restore point

 

SQL> DROP RESTORE POINT before_app_upgrade;

Restore point dropped.

 

 

 还原点是10GR2新增加的一个功能,它是建立在数据库层面上的, 跟savepoint不同. 必须在数据库处于ARCHIVELOG模式下才可以使用,主题思想是在数据库的某个时间点创建一个restore point,在随后的某个时间点可以将表或数据库falshback 到这个restore point.那么能否真正的完成flashback,依赖于创建的restore point类型和flashback要操作的对象.flashback database需要SYSDBA权限,flashback table需要 FLASHBACK ANY TABLE的权限.

    guarantee restore point for flashback database  

 

    guarantee restore point必须在数据库处于flashback on 的状态下,才可以定义的一中restore point,它的主题思想是保证数据库能够准确完整的flashback 到定义的 restore point. 操作依赖于flashback log和archivelog, 如果定义了guarantee restore point,那么flashback logs将不受db_recovery_retention_target参数的限制,oracle不会删除flashback log,只要flashback arae有足够的磁盘空间,oracle就会保存足够的flashback logs,满足flashback database to restore point. 

 

    如果数据库没有处于flashback on,那么定义一个guarantee restore point必须在database mount状态下进行.其实这个也可以理解,oracle根据定义的restore point,可以个保证database open后的归档可以不被删除.但有一点必须明确的是,guarantee restore point是针对flashback database而言的,不对flashback table起作用,为什么呢, 因为flashback table依赖于undo,如果在guarantee时间范围内,undo过期了, 那么flatable table 还是不能还原到定义的guarantee restore point.

    Normal restore point 

 

    普通的restore point 非常简单, 如果要flashback database,那么数据库必须处于flashback on 状态,但这个时候不一定可以flashback database到定义的restore point,oracle会根据db_recovery_retention_target自动维护创建的restore ponit和flashback logs,如果超过db_recovery_retention_target 定义的restore point,oracle会自动删除 , 无论是flashback table或者flashback database都不能完成.

    

分享到:
评论

相关推荐

    Oracle从10g升级到11g详细步骤

    本文档依据metalink详细介绍了 Oracle从10g升级到11g详细步骤,以及各项需要注意的地方

    NETBACKUP oracle 恢复脚步

    这种类型的恢复通常被称为“时间点恢复”(Time Point Recovery, TPR),即恢复到一个指定的时间点,而不是最近的完整备份之后。 - **恢复数据库操作**:`restore database` 命令用于从备份中恢复数据文件。这一...

    oracle命令整理.7z

    FLASHBACK DATABASE TO TIMESTAMP (timestamp_value) BEFORE RESTORE POINT restore_point_name; ``` 3. 表闪回:除了闪回整个数据库,Oracle还提供了对单个表的闪回能力。通过`FLASHBACK TABLE`命令,我们可以...

    Oracle会闪点问题

    使用 `DROP RESTORE POINT` 命令,如 `DROP RESTORE POINT MACLEAN_ROLLBACK;`。 3. **管理会闪点状态**:通过 `ALTER DATABASE FLASHBACK` 命令来启用或禁用会闪点功能。在数据库关闭或打开时,可能需要调整此状态...

    Oracle 10gR2中设定指定恢复点实现闪回

    Oracle 10gR2通过引入恢复点(RESTORE POINT)解决了这个问题。恢复点提供了一个方便的命名机制,用户可以通过指定恢复点名称来执行闪回操作,而无需关心具体的SCN值。创建恢复点的命令非常简单,只需要使用`CREATE ...

    Oracle闪回特性

    这通过`CREATE RESTORE POINT`命令完成,为数据库提供了额外的安全保护层。 综上所述,Oracle的闪回特性是一个综合的数据管理工具集,为数据库管理员提供了灵活的恢复选项和历史数据分析能力。然而,使用这些特性时...

    oracle常用sql.rar

    - `FLASHBACK DATABASE`和`RESTORE POINT`用于实现快速恢复。 7. **故障诊断**: - `V$ views`和`DBA_ views`提供丰富的数据库运行状态信息,如`V$SESSION_WAIT`查看等待事件,`V$LOCKS`查看锁信息。 - `SQL ...

    oracle-备份恢复脚本

    时间点恢复 (Time Point Recovery) ```sql connect target / connect catalog rman200/@catdb run { allocate channel d1 type disk; set until time "2008042715:22:00"; restore controlfile; sql 'alter ...

    ORACLE闪回技术恢复指南

    CREATE RESTORE POINT rp1 GUARANTEE FLASHBACK DATABASE; ``` **闪回数据库语法**: ```sql FLASHBACK DATABASE TO TIMESTAMP to_timestamp('xxxx', 'yyyy-mm-dd hh24:mi:ss'); ``` **闪回数据库限制**: - ...

    ORACLE 12c DG实测-搭建

    RMAN> BACKUP DATABASE TAG 'STANDBY' FORMAT '/backup/standby_%U' KEEP UNTIL TIME 'SYSDATE+30' RESTORE POINT 'STANDBY'; ``` 2. **创建standby控制文件**: ```sql RMAN> DUPLICATE TARGET DATABASE TO /u...

    Oracle Solaris 11.3 Creating and Administering Oracle Solaris 11

    例如,`beadm create /mountpoint`将创建一个新的BE,并指定一个挂载点。默认情况下,新BE会继承当前BE的所有软件包和配置。 2. **激活启动环境**:使用`beadm activate [BE名称]`命令可以切换到已创建的BE。这不会...

    Oracle 11g 从入门到精通——第十八章(视频教程)

    - 闪回还原点(Flashback Restore Point):创建一个标记,以便在需要时能快速恢复到该点。 学习这些内容时,你将了解到如何在Oracle 11g中有效地利用闪回技术来提高数据安全性,减少错误修复的时间,并且更轻松地...

    Oracle备份与恢复总结

    1. Point-in-Time Recovery(PITR):恢复到数据库的任意时间点,需要归档日志和联机重做日志。 2. Flashback Recovery:利用闪回日志快速恢复到某个时间点,适用于误操作的紧急修复。 3. Crash Recovery:系统...

    Oracle备份与恢复培训教程.rar

    - **Point-in-Time Recovery(PITR)**:允许恢复到任意时间点,通常结合redo日志实现。 - **Flashback Database**:快速回滚整个数据库到一个先前的时间点,无需额外备份。 - **Multitenant架构下的容器数据库...

    Oracle 数据库备份与恢复的基本步骤和方法

    - **Point-in-Time Recovery (PITR)**:恢复到某一时间点的状态,常用于误操作后的数据修复。 - **Flashback Database**:Oracle提供的一种快速恢复机制,无需备份,直接回滚到某个时间点。 - **Data Pump导出...

    闪回oracle

    6. **闪回数据库至还原点(Flashback to Restore Point)**:创建一个还原点后,可以将数据库闪回到该点,这样可以避免全库恢复的复杂性,只需要恢复到指定的还原点即可。 7. **闪回交易日志(Flashback ...

    用Oracle闪回功能恢复偶然丢失的数据.rar

    此外,闪回功能也可能受到还原点(Restore Point)的影响,如果恢复点之后的数据被删除,那么无法回到这个点之前的状态。 在实际工作中,配合定期备份和适当的数据库维护策略,可以最大化地利用Oracle闪回功能来...

    第16章Oracle资料学习.pptx

    需要先创建还原点,然后使用`FLASHBACK DATABASE TO RESTORE POINT`命令。 **闪回数据归档 (Flashback Data Archive)** 是用于长期保留历史数据的区域,可以提供对旧数据的查询,而不会影响当前数据库性能。创建和...

    日志文件的恢复

    此外,理解并熟悉Oracle的恢复机制,包括如何使用`RESTORE`和`RECOVER`命令,是数据库管理员必备的技能。 总之,日志文件的恢复涉及识别错误、理解日志状态、使用适当的恢复命令以及可能需要的归档日志文件。在处理...

    053考试总结60.pdf

    根据给出的选项,不正确的条件是使用RESTORE POINT子句(A和E)和不注册恢复目录(F)。 #### 2. Oracle资源管理器(Oracle Resource Manager) Oracle资源管理器是Oracle数据库中用于资源控制的组件,它允许DBA...

Global site tag (gtag.js) - Google Analytics