技术开发 频道

通过RMAN创建可传输表空间集

【IT168技术文档】
    前面各章从理论到实践详细论述了关于可传输表空间,还有个集(Transportable Tablespace Sets)的创建,其中都提到了很重要一点,就是被传输的表空间在传输过程中必须置为read-only。而在实际操作过程中,对于某些生产数据库,将表空间置为read-only是件非常复杂的事情甚至完全不允许,有了RMAN的Transportable Tablespace,这一切都得以避免。RMAN通过备份创建可传输表空间集,它并不需要存取活动的数据文件,相应也就不需要将表空间置为read-only。因此,数据库可用性得到提升,尤其对于超大的表空间,因为被传输的表空间在此期间仍可进行读写操作,而且把表空间置为read-only模式可能会花费较长时间,

使用RMAN创建可传输表空间集,允许你在传输过程中指定目标恢复时间点或SCN,这样传输的数据可以更灵活,不必完全复制现有表空间,只要备份中存在,你就可以选择性的恢复数据。例如,你的备份策略为保留一周,你希望创建的可传输表空间中数据是截止本月底最后一天的数据,那么你在下个月第一周内任何时候都可以进行传输操作而不需要考虑这期间生产库是否会有写入操作。

使用rman备份创建Transportable Tablespace Sets主要是通过RMAN中的TRANSPORT TABLESPACE命令完成的。
提示:即使并未使用rman备份数据库,TRANSPORT TABLESPACE命令也可以用来创建transportable tablespace sets。不过,你必须有要传输的表空间集数据文件拷贝,然后使用rman的catalog命令将数据文件、归档日志等文件的拷贝载入rman资料库。只有rman拥有了所需备份才能够正常执行TRANSPORT TABLESPACE。

一、适用场合
基本上,任何需要传输表空间的情况,你都可以使用rman的TRANSPORT TABLESPACE命令去创建,只要拥有所需的备份。


二、相关概念
RMAN可传输表空间的结构如下图: 
 

RMAN创建可传输表空间集与RMAN Tablespace Point-in-Time Recovery (TSPITR)极其相似,如果你有过TSPITR的操作经验,那么操作这个同样不在话下。

单枪不能成事,Oracle的霸业就是靠无数相互关联的对象以不同方式巧妙组合而成。对于创建TTS而言,RMAN仍然不是一个人在战斗,他不是一个人:
  RMAN客户端(Recovery Manager client) 
  源库(source database),即要传输的表空间所在库。
  源库归档及备份(Archived redo logs and backups)
  辅助实例(auxiliary instance),这个大家应该都比较熟了,如果你还不了解可以参见"Duplicate创建副本数据库"系列第2章。
  辅助集(auxiliary set),包括数据文件等其它传送所需但又并不是恢复集一部分的文件。例如SYSTEM表空间,Undo表空间之类。而辅助实例通常也不是一个人,它也有一些关联文件,例如控制文件、初始化参数文件、在线日志等,这些文件并不属于辅助集,虽然是起辅助目的,但它们的老主顾显然是辅助实例。
 
    辅助文件暂存地(auxiliary destination)即辅助集所包含的对象在rman transport tablespace命令执行过程中物理存放的位置,执行完之后这些文件会被删除。
提示:auxiliary destination并非必须指定,如果不指定的话,必须确保协助实例相关的各文件在初始化参数中均已指定具体存储位置。 
    表空间目的地(tablespace destination),tablespace transport命令执行期间生成的传输集数据文件及其它输出文件的存储路径。
    可传输集(transportable set),由待传输表空间数据文件以及expdp生成的导出文件(export dump file)组成的,用于填充到目标数据库表空间的集合,默认情况下,这些集合中的文件保存在表空间目的地指定路径下。
    RMAN自动生成的导入脚本(import script)以及expdp生成的导出日志(export log),可传输集的一部分。
上述提到的术语在后面会反复涉及,所以大家最好能记住其概念。

0
相关文章