1

I want to know can we migrate Linux based oracle database 10gR2 (10.2.0.1.0) to windows server 2003 with oracle database 10gR2 (10.2.0.3.0). I have seen the documentation related to database migration where i don't understand the compatibility section. Is this important in migration that both host and target database versions and patch level should be same. Please help me.

this is the output that i get when i run the transport.sql to migrate my database from Linux to Windows

E:\new\test>set ORACLE_SID=newdb
E:\new\test>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Fri Dec 19 20:49:08 2014

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to an idle instance.

SQL> @transport.sql
ORACLE instance started.

Total System Global Area  452984832 bytes
Fixed Size                  1291120 bytes
Variable Size             150998160 bytes
Database Buffers          293601280 bytes
Redo Buffers                7094272 bytes

Control file created.

ALTER DATABASE OPEN RESETLOGS
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced


ERROR:
ORA-03114: not connected to ORACLE


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Your database has been created successfully!
* There are many things to think about for the new database. Here
* is a checklist to help you stay on track:
* 1. You may want to redefine the location of the directory objects.
* 2. You may want to change the internal database identifier (DBID)
*    or the global database name for this database. Use the
*    NEWDBID Utility (nid). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
SQL>
SQL> WHENEVER SQLERROR EXIT;
SQL>
SQL> DOC
DOC>#######################################################################
DOC>#######################################################################
DOC>   The following statement will cause an "ORA-01722: invalid number"
DOC>   error if there the database was not opened in UPGRADE mode
DOC>
DOC>   If you encounter this error, execute "SHUTDOWN", "STARTUP UPGRADE" and
DOC>   re-execute utlirp.sql
DOC>#######################################################################
DOC>#######################################################################
DOC>#
SQL> SELECT TO_NUMBER('MUST_BE_OPEN_UPGRADE') FROM v$instance
2  WHERE status != 'OPEN MIGRATE';
ERROR:
ORA-03114: not connected to ORACLE


Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Pr
oduction With the Partitioning, OLAP and Data Mining options
6
  • 1
    "where i don't understand the compatibility section", if you want to do cross platform migration, you must re-read until you fully understand that part. You can do cross-platform migration, there are multiple ways of doing the same based on total data, downtime etc.
    – Raj
    Dec 19, 2014 at 17:07
  • Create a database on the Windows 2003 server with all of the tablespaces that you need, use datapump to export the schemas that you need, move the file to the new server and import into the new database. The endian is different between Windows and Linux so you can't migrate with RMAN. You might be able to use transportable tablespaces, but would need to upgrade both to 11g on both servers. You may need to import several times given that you will have issues with grants, schemas, etc. Test as many times as you need, until you get the steps perfect. then cutover to the new database.
    – Gandolf989
    Dec 19, 2014 at 17:32
  • I used the RMAN utility for this task. i have successfully migrated my database 10gR2 with same release on both sides (10.2.0.1.0) from windows to Linux both OS are same 32bit. But my question that i ask above has different releases like windows database has release number (10.2.0.3.0) and linux database release (10.2.0.1.0).
    – M.AZ
    Dec 20, 2014 at 3:09
  • the Endian_format for Linux is (Linux IA (32-bit) Little) and Endian_format for windows is (Microsoft Windows IA (32-bit) Little). is this important that release number should be the same in RMAN or any other utility.
    – M.AZ
    Dec 20, 2014 at 3:10
  • I try to open the database with resetlogs. but i gives error SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01139: RESETLOGS option only valid after an incomplete database recovery
    – M.AZ
    Dec 20, 2014 at 11:34

1 Answer 1

1

To answer your question if you can migrate a linux database to a higher oracle release on a windows platform: Yes you can.

There are a few things to keep in mind...

Linux and windows use little endian, unix uses big endian -- basically it depends on the CPU not so much on the OS.

If you want to minimize downtime and restore the database on the windows server while the linux server is still productive, you have to apply the archivelogs from the linux database on the windows database until you do the switch. Basically this should work but there are some bugs I faced when doing this. So I would not recommend this option at least not with 10g or 11g (never tried it with 12c). Oracle officially supports DataGuard with windows and linux from 11gR2 but as I said there are some bugs. It failed in 3 of 5 attempts.

I personally don't like export-import migrations because you always have some trouble with invalid objects, characterset conversion, missing data, missing public synonyms etc.

--> I would recommend the the following action plan:

  1. shutdown the linux database
  2. startup mount the linux database
  3. create an rman backup
  4. restore the database on windows
  5. open the database with alter database open resetlogs upgrade
  6. run catupgrd.sql
  7. do post-upgrade tasks

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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