Overview

In oracle we can migrate a datafiles accross different operation systems, unlike other databases (cough DB2, cough cough) To do that, we have prictically 2 options. Convert the datafile at the SOURCE OR at the TARGET. It doesn't matter which one you will do. If you know the destination OS, convert it on the source is my recommendation.

Prepare

First we have to find out, the endian of the destination (target) operation system:

Check Endian format

So, our current endian is Big, but we want to migrate a datafile to standard Linux x86-64 which has little endian. For that we have to use a combination of RMAN and EXPDP/IMPDP utilities. If it was the same endian we would've used ONLY RMAN.

Firstly, make the tablespace READ ONLY.

Make the TBS Read only

That is needed in order to export the tablespace metadata

Convert(backup)

Then, using the RMAN utility, we can make a convert(backup) the datafiles and generated the necessary metadata for the restore

Convert the tablespace

That procedure will generate us 2 files:

Backup of the tablespace

Metadata of the tablespace (expdp dump file)

Once we are done with that migrate both to the new server:

Move the datafiles

Restore(Import)

After that is done, we can saftly restore (import) the data as follows:

Restore the transported data

As you can see, the restored tablespace is in state of READ ONLY, which we changed to READ WRITE. P.S. If the target (destination) database has a physical standby, you will have to migrate the datafile there and do further actions.