ITPub博客

首页 > 数据库 > Oracle > 华恩Oracle班第五十八天

华恩Oracle班第五十八天

Oracle 作者:eva198538 时间:2013-08-30 21:20:30 0 删除 编辑
华恩
执行表空间时间点恢复
表空间时间点恢复(TSPITR):概念
• 通过执行TSPITR 可将一个或多个表空间快速恢复到以前的某个时间。
• 执行TSPITR 并不影响数据库中其它表空间或对象的状态。
表空间时间点恢复(TSPITR):术语
讨论TSPITR 时使用了以下术语:
• 目标时间:执行TSPITR 期间表空间将恢复到的时间点或系统更改号(SCN) 
• 恢复集:组成要恢复的表空间的数据文件
• 辅助集:对恢复集执行TSPITR 时所必需的,但本身不属于恢复集的数据文件。辅助集通常包括:
- SYSTEM表空间的副本
- 包含来自目标实例的还原段的数据文件
- 某些情况下从辅助实例导出数据库对象期间使用的临时表空间
• 辅助目标:执行TSPITR 期间在磁盘上存储辅助实例的任何辅助集数据文件、控制文件和联机日志的位置。执行完TSPITR 之后可删除辅助目标中存储的文件。

表空间时间点恢复:体系结构
图表中显示了下列TSPITR 实体:
• 目标数据库:包含要恢复的表空间
• 控制文件:向RMAN 提供备份信息
• 备份集:来自目标数据库,用作重建表空间的来源
• 归档重做日志:来自目标数据库,用作重建表空间的来源
• 辅助实例:在恢复过程中用来执行恢复的Oracle DB 实例RMAN 在执行表空间时间点恢复期间会执行下列步骤:
1.将目标时间之前某个时间点的备份控制文件还原到辅助实例。将恢复集的数据文件还原到目标数据库,将辅助集的数据文件还原到辅助实例。
2.将还原的数据文件恢复到指定的时间点

何时使用TSPITR 
RMAN TSPITR 可用来:
• 恢复因错误的TRUNCATE TABLE语句而丢失的数据
• 从表逻辑损坏中恢复
• 撤消只对数据库子集有影响的不正确批处理作业或其它数据操纵语言(DML) 语句的结果
• 将逻辑方案恢复到与物理数据库其它部分不同的时间点

确定正确的目标时间
• 除非使用了恢复目录,否则不能再次执行TSPITR。
• 执行TSPITR 并使表空间联机以后,就不能使用更早时间的备份。
• 请使用下列方法确定正确的目标时间:
– 闪回查询
– 闪回事务处理查询
– 闪回版本查询
定恢复集的表空间
如果不能确定是否已考虑了与要执行TSPITR 操作的表空间中的对象有关系的所有对象,则可以使用TS_PITR_CHECK视图来确定任何其它对象。查询这个视图时,会显示阻止继续执行TSPITR 的任何对象的信息。表空间时间点恢复不能继续进行的原因显示在S_PITR_CHECK视图的“REASON(原因)”列中。
例如,如果打算对USERS和EXAMPLE表空间执行TSPITR,请通过执行以下查询来确定是否与其它表空间中未考虑的对象存在关系:
SELECT * FROM SYS.TS_PITR_CHECK 
WHERE (TS1_NAME IN ('USERS','EXAMPLE') 
AND TS2_NAME NOT IN ('USERS','EXAMPLE')) 
OR (TS1_NAME NOT IN ('USERS','EXAMPLE') 
AND TS2_NAME IN ('USERS','EXAMPLE'));

标识将丢失的对象
查询TS_PITR_OBJECTS_TO_BE_DROPPED视图,确定是否存在执行表空间时间点恢复后会丢失的对象。
例如,要对USERS和EXAMPLE表空间执行TSPITR,目标时间为2006 年4 月3 日上午8:30:00。请通过发出以下询,确定是否存在执行TSPITR 后会丢失的任何对象:
SELECT OWNER, NAME, TABLESPACE_NAME, 
TO_CHAR(CREATION_TIME, 'YYYY-MM-DD:HH24:MI:SS') 
FROM TS_PITR_OBJECTS_TO_BE_DROPPED 
WHERE TABLESPACE_NAME IN ('USERS','EXAMPLE') 
AND CREATION_TIME > 
TO_DATE('2006-APR-03:08:30:00','YY-MON-DD:HH24:MI:SS') 
ORDER BY TABLESPACE_NAME, CREATION_TIME;

执行基本RMAN TSPITR 
执行TSPITR 时有下列选项:
• 完全自动执行的TSPITR:指定辅助目标,RMAN 会管理TSPITR 操作的所有方面。这是最简单的执行TSPITR 的方法,建议采用这种方法,除非明确指出需要在执行SPITR 之后控制恢复集的位置,或者在执行TSPITR 期间控制辅助集文件的位置,或者需要控制辅助实例的通道配置或其它某个方面。
• 使用自动辅助实例的定制TSPITR:TSPITR 基于完全自动执行的TSPITR 的行为,可能仍使用辅助目标。可以定义其行为的一个或多个方面,如辅助集文件或恢复集文件的位置。可以为RMAN 创建并管理的辅助实例指定初始化参数或通道配置。
• 使用您自己辅助实例的TSPITR:设置、启动、停止和清除在TSPITR 中使用的辅助实例。另外,可以借助使用自动辅助实例的定制TSPITR 中的一些方法来管理TSPITR 过程。

RMAN TSPITR 处理
RMAN 执行下列步骤:
1. 创建辅助实例,启动该实例,然后连接到该实例
2. 使要恢复的表空间脱机
3. 将目标时间之前某个时间点的备份控制文件还原到辅助实例
4. 将恢复集和辅助集的数据文件还原到辅助实例
5. 将已还原数据文件恢复到指定时间
6. 通过RESETLOGS选项打开辅助数据库
7. 将已恢复表空间中对象的字典元数据导出到目标数据库
8. 关闭辅助实例
9. 将辅助实例中的字典元数据导入目标实例
10.删除所有辅助集文件

使用RMAN 管理的辅助实例执行RMAN TSPITR 如果要自定义RMAN TSPITR,则可以使用RMAN 管理的辅助实例并进行下列更改:
• 使用SET NEWNAME重命名恢复集数据文件,从而不在原始位置还原和恢复它们。
• 通过使用SET NEWNAME指定单个文件的新名称,并使用DB_FILE_NAME_CONVERT提供目标数据库中数据文件名转换为辅助数据库中数据文件名的规则,控制辅助集数据文件的位置。
• 为了提高RMAN TSPITR的性能,使用磁盘上的恢复集数据文件和辅助集数据文件的现有映像副本,而不是从备份中还原它们。

使用您自己的辅助实例执行RMAN TSPITR 
Oracle 建议您通过RMAN 来管理创建和删除在执行RMAN TSPITR 期间使用的辅助实例
的操作。但是,我们也支持您创建并使用自己的辅助实例。
要创建适合用作辅助实例的Oracle 实例,请执行以下步骤:
1.使用orapwd实用程序创建辅助实例的Oracle 口令文件。
2.创建辅助实例的文本初始化参数文件。
3.使用有效的网络服务名验证到辅助实例的Oracle Net 连接。要执行TSPITR,请完成下列步骤:
4.在NOMOUNT模式下启动辅助实例。
5.将RMAN 客户机连接到目标实例和辅助实例。
6.执行RECOVER TABLESPACE命令。


更多详情参见施嘉伟的博客
<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22376537/viewspace-1116692/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-08-19