使用RMAN创建传输表空间集能让你指定一个目标时间点,SCN或者你恢复窗口中的还原点并且传输数据的时间并不是transport tablespace的时间。例如,如果你的备份保留策略是保证一周的恢复窗口并且想创建传输表空间来报告数据库在每个月最后一天时间的内容,可以使用RMAN在下个月的第一周内的任何时间来完成这个任务。
RMAN的transport tablespace命令被用来从RMAN备份中创建传输表空间集。注意,即使用没有使用RMAN对数据库进行备份,RMAN的transport tablespace命令也仍然能被用来创建传输表空间集。然而,对于传输表空间集所期待的SCN之前必须有传输表空间集所有的数据文件副本,并且为了执行transport tablespace命令使用RMAN的catalog命令将数据文件副本和归档重做日志登记到RMAN的档案库中。当RMAN记录了所有需要的备份和日志后,就可以执行传输表空间。
何时使用RMAN来创建传输表空间集
?在任何需要传输表空间的情况下,只要你有将表空间恢复到指定SCN所需要的数据库备份,都可以使用RMAN的transport tablespace命令来创建它们。
然而在以下两种特殊情况下更好有用:
.使用表空间档案库来创建传输表空间集。例如,数据库中有些表空间用来做季报。使用transport
?tablespace命令来为这些存储在表空间档案库中的生成季报的表空间创建传输表空间集。之后从档案库中被请求的表空间版本被附加到一些其它数据库中来生成报表。
.当准备使用流来使用源数据库同步目标数据库时,必须安装流,为了使用目标数据库及时更新到指定的SCN,两个数据库必须被同步。
--------------------------------------推荐阅读 --------------------------------------
--------------------------------------分割线 --------------------------------------
使用RMAN生成传输表空间集要有以下实例:
1.RMAN客户端
2.源数据库,包含了被传输的表空间
3.源数据库的归档重做日志备份,将用来恢复被传输的表空间
4.辅助实例,由RMAN在源数据库所在主机上创建的实例,用来执行表空间的还原和恢复,如果处成功会清除它
5.辅助集,包含了执行传输表空间所要求的数据文件和其它文件但它们不是恢复集的一部分。辅助集包括:system和sysaux表空间的副本,undo表空间和源数据库中包含 undo段或回滚段的数据文件。辅助实例还有其它相关的文件,比如,控制文件,参数文件和联机重做日志文件,但这些都是辅助集的一部分
6.辅助目录,当执行RMAN的transport tablespace命令时,磁盘上用来存储辅助集文件的目录,比如参数文件,数据文件(除了传输表空间的数据文件之外的数据文件),控制文件和辅助实例的联机重做日志文件。如果传输表空间执行成功,这些文件都会被删除。
?注意:设置辅助目录是可选项,然而,如果没有设置辅助目录,必须确保对所有辅助实例文件,包括所有数据文件,联机重做日志文件都使用辅助实例参数来指定存储目录,Oracle建议使用辅助目录来简化transport tablespace命令。
7.表空间目录,存储数据文件副本和表空间传输命令完成后的输出文件的磁盘目录。
8.传输集,包含了被传输表空间的数据文件和用于在目标数据库附加表空间的导出dump文件(通常是使用Data Pump导出)。
9.用于在目标数据库附加表空间的示例导入脚本(由RMAN生成)和Data Pump导出的日志文件。
RMAN使用备份执行传输表空间的操作步骤
1.在启动阶段,RMAN会构建一个辅助实例。首先RMAN会为辅助实例自动创建参数文件,并将辅助实例启、动到nomount状态。然后,RMAN使用源数据库的控制文件备份还原辅助实例控制文件并加载控制文件。
2.当辅助实例控制文件被加载后,RMAN就会使用源数据库备份,辅助目录中的辅助数据文件和表空间目录中的传输集文件来还原辅助实例和传输集数据文件。RMAN然后在辅助实例中执行switch操作,因此辅助实例使用还原的数据文件作为辅助实例的数据文件。
RMAN对辅助实例执行数据库按时间点还原。这将辅助集和传输集数据文件中的内容更新到transport tablespace命令所指定目标时间点。(如果没有指定目录时间就是执行完全恢复)。执行transport tablespace命令时间会使用备份将需要的归档重做日志文件还原到辅助目录中(或其它目录中)并在应用给辅助实例之后将其删除。
一旦恢复完成,RMAN会对辅助实例执行open resetlogs操作。这时数据文件反映了表空间在传输表空间操作所指定的目标时间点的内容。
3.辅助实例的恢复集表空间将会被设置为只读模式,并且调用Data Pump来为恢复集表空间生成dump文件缺省情况下,生成的dump文件存储在表空间目录中,也可以指定dump文件目录。
在这时RMAN也生成了用于在目标数据库中附加传输表空间的Data Pump导入的示例脚本。脚本内容将被写入到一个名叫impscript.sql的文件中,并且存储在表空间目录中。这个脚本的命令也被包含在RMAN的transport tablespace命令的输出信息中。
如果所有操作都执行成功,RMAN会关闭辅助实例并删除除了传输集文件之外的,transport tablespace命令生成的所有文件,Data Pump导出日志和示例导入脚本。
注意:transport tablespace失踪不会自动地对恢复集数据文件进行字节序的转换。如果需要,在创建传输集后将数据文件转换为目标数据库的字节序。导入的示例脚本是假设要被附加到目标数据库的传输表空间的数据文件的存储目录与transport tablespace操作创建这些文件的目录相同。如果这些文件在表空间被附加之前移动到新的磁盘目录中,必须修改示例脚本指向新的目录。
RMAN transport tablespace命令的限制
?使用RMAN创建传输表空间有以下限制:
1.必须对transport tablespace操作将数据库恢复到指定目标时间点所有需要的表空间(包括辅助集中的表空间)和归档重做日志进行备份。
2.因为RMAN在使用备份创建传输表空间的过程中会使用到Data Pump导出和导入工具,如果被传输的表空间使用XMLTypes就不能使用RMAN进行操作。在这种情况下必须使用Oracle管理手册中介绍的方法
3.因为RMAN会在与源实例相同的主机上自动创建辅助实例来还原和恢复,在执行transport tablespace命令时会有些性能开销。
4.如果删除了一个表空间,即使transport tablespace命令指定的SCN早于表空间被删除时的SCN,也不能将被删除的表空间包含在transport tablepsace命令的传输表空间集中。
5.如果对表空间重命名后,不能使用transport tablespace命令来创建表空间集的目标时间不能早于表空间被删除的时间(RMAN有关于表空间之前的名字)。
6.不能传输传表没有相关约束的表或者没有相