为TSPITR选择正确的目标时间或SCN是非常重要的。
在TSPITR使表空间联机之后,不能使用表空间联机之前做的备份。
如果有恢复目录,则可以执行重复的TSPITR操作到不同的目标时间,因为目录中包含表空间的历史信息。
如果RMAN只使用一个控制文件,只有在删除表空间之后TSPITR才可能执行,因为控制文件没有表空间的历史信息。
此时,RMAN只知道表空间的当前集合。TSPITR执行的表空间有一个创建时间,与它被联机的时间相同。
为了调查数据的历史状态来确认TSPITR的目标时间,可以使用闪回查询、
Oracle事务查询和闪回版本查询来找到不希望的改变发生的时间点。
初始时,恢复集包含你想恢复的表空间的数据文件。
然而你需要的表空间中的对象与其它表空间的对象有有关系(如约束),则在执行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
|
--对于包含tools和users表空间的初始恢复集如何使用DBMS_TTS.TRANSPORT_SET_CHECK 过程。 --查询可传输表空间违背表来管理依赖关系,当所有的关系被管理之后,这个查询没有返回行 BEGIN EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('USERS,TOOLS', TRUE,TRUE); END; / SELECT * FROM TRANSPORT_SET_VIOLATIONS; |
当在表空间上执行RMAN TSPITR,则在目标恢复时间点之后的对象的改变都丢失。
可以在它们被识别之后保留这些对象,通过在TSPITR之前导出(使用数据库泵导出工具)
它们并在之后导入(使用数据泵导入工具)它们来保留。
为了确定在TSPITR过程上丢失的对象,查询主库上的TS_PITR_OBJECTS_TO_BE_DROPPED视图。
|
列名 |
意义 |
|
OWNER |
被删除的对象的所有者 |
|
NAME |
经历TSPITR之后丢失的对象的名称 |
|
CREATION_TIME |
对像创建时间时间戳 |
|
TABLESPACE_NAME |
包含对象的表空间的名称 |
过滤视图查看创建时间在TSPITR目标时间点之后对象。
场景:
恢复集包含users和tools
恢复点是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相关的时间戳
如果恢复表空间uses和tools的SCN为1645780,则可以如下确定被删除的对象
|
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博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1097459/ ,如需转载,请注明出处,否则将追究法律责任。