Oracle RMAN big-endian到little-endian

时间:2010-09-28 09:33:25

标签: oracle endianness rman

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

我已经在维基百科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并且我必须以正确的endian开头的控制文件。

我知道我可以将上面的RMAN备份导入到Solaris SPARC计算机上,然后执行exp / imp进程,但我真的对实现单机还原过程感兴趣。

任何人都可以建议实现我正在寻找的路线吗? - 这是;从Solaris SPARC系统恢复到小端Win32 x86-64平台的大端RMAN备份?

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

似乎从CONVERT DATAFILES命令恢复数据库/数据文件会导致在目标主机上创建新的控制文件,这意味着无法从同一来源的未来RMAN备份进行恢复。

考虑到上述所有情况,除非其他任何人都能纠正我,否则RMAN将在与源平台不同的端点上恢复。

答案 2 :(得分:0)

您是否尝试使用RMAN目录还原控制文件?这样,您就可以使用convert选项恢复控制文件。 此外,目录将允许您再次使用convert选项访问备份集以还原数据文件。 为此,您必须在rman目录中注册和同步数据库,因此它具有所备份的信息。

相关问题