ITPub博客

首页 > 数据库 > Oracle > Backup And Recovery User's Guide-为TSPITR做计划和准备

Backup And Recovery User's Guide-为TSPITR做计划和准备

原创 Oracle 作者:LuiseDalian 时间:2014-03-01 09:15:18 0 删除 编辑

TSPITR做计划和准备

步骤1:为TSPITR选择正确的目标时间

TSPITR选择正确的目标时间SCN是非常重要的。

TSPITR使表空间联机之后,不能使用表空间联机之前做的备份。

 

如果有恢复目录,则可以执行重复的TSPITR操作到不同的目标时间,因为目录中包含表空间的历史信息。

如果RMAN只使用一个控制文件,只有在删除表空间之后TSPITR才可能执行,因为控制文件没有表空间的历史信息。

此时,RMAN只知道表空间的当前集合。TSPITR执行的表空间有一个创建时间,与它被联机的时间相同。

 

为了调查数据的历史状态来确认TSPITR的目标时间,可以使用闪回查询

Oracle事务查询闪回版本查询来找到不希望的改变发生的时间点。

步骤2:确定恢复集合

初始时,恢复集包含你想恢复的表空间的数据文件。

然而你需要的表空间中的对象与其它表空间的对象有有关系(如约束),则在执行TSPITR之前必须考虑到这些关系。

此时有如下选择:

n  将包含关联对象的表空间添加到恢复集。

n  移除关系

n  TSPITR过程中挂起关系

识别和解决主库上的依赖关系

RMAN TSPITR要求表空间是自包含的,并且在表空间中没有SYS拥有的对象。

使用DBMS_TTS.TRANSPORT_SET_CHECK过程来定义表空间外的对象,识别跨越恢复集边界的对象之间的关系。

如果TRANSPORT_SET_VIOLATIONS视图返回行,则必根据上一节提供的方法来调查或修正这些问题

 

注意

如果在恢复集中的一个或多个表空间被删除了,RMAN TSPITR不能够运行DBMS_TTS.TRANSPORT_SET_CHECK过程。

在这种情况下,当辅助实例数据泵导出发生时,DBMS_TTS.TRANSPORT_SET_CHECK被运行。

RMAN TSPITR一样,如果导出操作遇到了任何非自包含的表空间,导出操作会失败。

 

记录在这个步骤中执行的所有操作,这样可以在完成TSPITR之后重新创建任何挂起的或移除的关系。

只有当TRANSPORT_SET_VIOLATIONS视图针对恢复集中的表空间是空的时候,再继续TSPITR

--对于包含toolsusers表空间的初始恢复集如何使用DBMS_TTS.TRANSPORT_SET_CHECK 过程。

--查询可传输表空间违背表来管理依赖关系,当所有的关系被管理之后,这个查询没有返回行

BEGIN

   EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('USERS,TOOLS', TRUE,TRUE);

END;

/

SELECT * FROM  TRANSPORT_SET_VIOLATIONS;

步骤3:识别和保留在TSPITR之后丢失的对象

当在表空间上执行RMAN TSPITR,则在目标恢复时间点之后的对象的改变都丢失。

可以在它们被识别之后保留这些对象,通过在TSPITR之前导出(使用数据库泵导出工具)

它们并在之后导入(使用数据泵导入工具)它们来保留。

 

为了确定在TSPITR过程上丢失的对象,查询主库上的TS_PITR_OBJECTS_TO_BE_DROPPED视图。

列名

意义

OWNER

被删除的对象的所有者

NAME

经历TSPITR之后丢失的对象的名称

CREATION_TIME

对像创建时间时间戳

TABLESPACE_NAME

包含对象的表空间的名称

过滤视图查看创建时间在TSPITR目标时间点之后对象。

 

场景:

恢复集包含userstools

恢复点是2007.12.2 7:03:11

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','TOOLS')

AND CREATION_TIME > TO_DATE('02-NOV-07:07:03:11','YY-MON-DD:HH24:MI:SS')

ORDER BY TABLESPACE_NAME, CREATION_TIME;

 

作为一选择,如何你有表空间的SCN,可以使用转换函数来确定与SCN相关的时间戳

如果恢复表空间usestoolsSCN1645780,则可以如下确定被删除的对象

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','TOOLS')

AND CREATION_TIME > TO_DATE(TO_CHAR(SCN_TO_TIMESTAMP(1645870), 'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS')

ORDER BY TABLESPACE_NAME, CREATION_TIME;

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

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    5687505