2010-09-28 169 views
1

我有一个在Solaris SPARC盒子上创建的Oracle RMAN备份,因此它是big-endian格式。我希望将此备份恢复到基于Windows x86-64的计算机,但由于存在排序问题而遇到了障碍。Oracle RMAN big-endian到little-endian

我已阅读维基百科http://en.wikipedia.org/wiki/Endianness#Endianness_in_files_and_byte_swap,因为存储在二进制文件中的变量的第一部分是未知的,所以我无法理解,所以不可能对文件的字节序进行通用转换。

我发现RMAN会使用CONVERT命令转换数据文件或表空间的字节序,但为了实现这一目标,我必须使用数据文件,这意味着从控制文件恢复的数据文件必须已经发生是在大端,所以甚至不能这样做)。以下似乎表明,这是不可能的http://arjudba.blogspot.com/2008/08/rman-06172-no-autobackup-found.html,我必须控制文件在正确的排序开始。

我知道我可以将上面的RMAN备份导入到Solaris SPARC机器上,然后执行exp/imp进程,但我真的很想获得一个单机还原过程。

任何人都可以建议一条路线来实现我在找什么? - 这是;来自Solaris SPARC系统的大端RMAN备份还原为小端Win32 x86-64平台?

回答

0

我已经阅读了Oracle数据库备份和恢复高级用户指南的第15章,没有任何内容跳出来作为可行的选项。 CONVERT DATAFILE命令似乎是最合适的,但是这假设您可以访问数据文件,正如我所说的那样,它们都包含在RMAN备份中,因此它们处于多个备份“块”中。鉴于此,另一个想到的选择是在Windows计算机上执行RMAN恢复,然后转换结果数据文件,但控制文件无法被RMAN识别,因为我怀疑它是一种大端格式。

看起来,从CONVERT DATAFILES命令恢复数据库/数据文件会导致在目标主机上创建新的控制文件,这意味着从同一个源恢复未来的RMAN备份是不可能的。

鉴于上述所有情况,除非有其他人能够纠正我,否则RMAN在不同平台的平台上恢复到源平台的平台是不可能的。

0

查阅Oracle数据库备份和恢复高级版用户指南的第15章“RMAN跨平台可传输数据库和表空间”。

看来CONVERT是您正在寻找的工具,但您需要将它与可移动表空间结合使用。

+0

感谢您的指针,我已阅读本节并转换数据文件看起来很有前途,但我无法获取RMAN备份片段中的数据文件。 – 2010-09-30 14:31:22

0

您是否尝试过使用RMAN目录恢复控制文件?这样,您将能够使用convert选项恢复控制文件。 此外,该目录将允许您访问备份集以恢复数据文件,同样使用convert选项。 要做到这一点,您必须在rman目录中注册并同步数据库,以便获取备份信息。