Today i was challenged with a migration from an AIX platform ( Big Endian ) to Linux ( Little Endian ) using transportable tablespaces. When performed using a RDBMS 10.2.0.1 all seemed well , but after a short period problems started to occur on specific tables imported using the transportable tablespaces method. Users that execute DML on certian tables within the transported tablespace would cause an ORA-600 errors.
After some research i found this to be a bug in certain version of the RDBMS. As a migration is a big thing by itself , you always want to keep the risks low and therefor don’t introduce an extra element on which problems can stick. But as the migration had to be done , and no other option was for hand , we found the following migration/ upgrade to be successful.
First prepare your source database to be able to export the tablespaces and mark them for transport. After the export is made and the datafiles are transferred to the “convert” area on the target system, start the covert using the same version on both systems. In our case , this was RDBMS 10.2.0.1.
After this conversion is completed , upgrade your Oracle software to RDBMS 10.2.0.3 ( or higher , we used 10.2.0.4 ) and after this use the DBUA to upgrade the RDBMS itself.
This step is crucial to be done before importing the table object information which is made during the preparation as this is the part where the BUG ( Bug 5186784 ) resides.
!! When done before the convert , RMAN would throw an exception and would not be able to convert between different version of RDBMS. !!
Finish your steps as you would normally have done and complete the migration.
After this no ORA-600 errors are thrown upon DML statements against transported tablespace tables 🙂