0

I have just been awarded with the task of recovering a oracle database with some given datafiles. However, nobody knows from which OS this backup comes from.

I have an AIX box to make the recover. Is there any way that i can determine the OS from the original datafiles?

2 Answers 2

3

Mount the database and make a level 3 datafile header dump:

alter session set tracefile_identifier = 'header_dump';
alter session set events 'immediate trace name file_hdrs level 3';

In the trace file, you will find this section:

Platform Information:    Creation Platform ID: 13
Current Platform ID: 13 Last Platform ID: 13

The platform ID identifies the platform of the datafile, and that is all what matters. You can match the platform ID to platform name by using the information in the V$TRANSPORTABLE_PLATFORM view. For example platform 13 is x86 Linux 64-bit:

SQL> select platform_name from v$transportable_platform where platform_id = 13;

PLATFORM_NAME
-------------------------------------------------------------------------------- 
Linux x86 64-bit
0

[Can some moderator please make this answer a comment to Balazs Papp`s answer?]

I'm not sure if the above solution works across different endianesses. I tried to copy a cold backup of a 64bit SPARC Database to a 64bit Linux x86 system and tried to verify the the answer but I keep getting errors

e.g. if I try to generate a new control file I keep on getting errors like

ORA-27048: skgfifi: file header information is invalid

a

dbv --file d$DATAFILE

gives a

DBV-00107: Unknown header format (162) (2105310074) error.

@Balazs Papp: given the fact that you generally should use transportable tablespaces if you change your platform, can you please clarify if your solutions works across different endiannesses?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.