开发者

Oracle RMAN big-endian to little-endian

开发者 https://www.devze.com 2023-01-18 08:52 出处:网络
I have an Oracle RMAN backup that was created on a Solaris SPARC box and is therefore in big-endian format. I wish to restore this backup to a Windows x86-64 based machine but have hit a roadblock due

I have an Oracle RMAN backup that was created on a Solaris SPARC box and is therefore in big-endian format. I wish to restore this backup to a Windows x86-64 based machine but have hit a roadblock due to the endianness issue.

I have read on Wikipedia http://en.wikipedia.org/wiki/Endianness#Endianness_in_files_and_byte_swap that it's not possible to do a generic conversion of the endianness of a file as the legnth of the variables stored in the binary file are not known, which I can understand.

I have discovered that RMAN will convert the endianness of datafiles or tablespaces using the CONVERT command, however to get this far I have to have the datafiles in place which means restoring from the control file has to have already taken place (which is in 开发者_Go百科big-endian so can't even do that). The following seems to suggest that it's not possible http://arjudba.blogspot.com/2008/08/rman-06172-no-autobackup-found.html and that I must have the control file in the correct endian to begin with.

I know that I can import the above RMAN backup onto a Solaris SPARC machine then do an exp/imp process but I'm really interested in getting a one-machine restore process in place.

Can anyone suggest a route to achieve what I'm looking for? - which is; a big-endian RMAN backup from a Solaris SPARC system restored to a little-endian Win32 x86-64 platform?


Check out chapter 15, "RMAN Cross-Platform Transportable Databases and Tablespaces", of the Oracle® Database Backup and Recovery Advanced User's Guide.

It appears CONVERT is the tool you are looking for, but you need to use it in conjunction with transportable tablespaces.


I've read chapter 15 of the Oracle Database Backup and Recovery Advanced User's Guide and nothing jumps out as a viable option. The CONVERT DATAFILE command seems like the most appropriate but this assumes you have access to the datafiles to begin with, which as I had stated are wrapped in an RMAN backup, so they are in multiple backup 'pieces'. Given this, the other option that springs to mind is to do an RMAN restore on the windows machine then convert the resulting datafiles, but the control file is not recognised by RMAN as I suspect it's a big-endian format.

It would appear that restoring databases/datafiles from a CONVERT DATAFILES command results in a new control file being created on the destination host which means restoring from future RMAN backups from the same source is not possible.

Given all of the above and unless anyone else can correct me, RMAN restores on a platform of a different endian to that of the source platform are not possible.


Have you tried restoring the controlfile using an RMAN catalog? This way, you'll be able to restore the controlfile with the convert option. Also, the catalog will allow you to access the backupsets to restore the datafiles, again with the convert option. To do this, you'll have to register and synchronize your database in the rman catalog, so it has the information of the backups taken.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号