If you have MOS access check "RMAN DUPLICATE/RESTORE/RECOVER Mixed Platform Support [1079563.1]" so you can see that mixed platforms are supported in specific cases only. Basically both system have to have the same endian.
also "Frequently Asked Questions about Restoring Or Duplicating Between Different Versions And Platforms (Doc ID 369644.1)"
Plus it is important to have the same version on each systems...
Thank you very much for your reply. What does mean by "same endian combinations"?
SunOS immte1dev 5.9 Generic_122300-60 sun4u sparc SUNW,Netra-T12
Linux immdlx01.ca.boeing.com 2.6.18-308.13.1.el5 #1 SMP Thu Jul 26 05:45:09 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
Are they the same endian?
From the note you provided, Solaris x86-64 <-> Linux x86-64 is a certified combination. Would you please explain to me?
Thank you again.
One of the source I used to get this info is transportable system view:
SELECT platform_id, platform_name, endian_format FROM v$transportable_platform
Unfortunately Solaris sparc has big endian while linux x86-64 has little endian.
So these are not compatible as I know.
I was not able to duplicate a Solaris database to a Linux one using rman duplicate in the past.
So you may need to use export data pump or convert the data files... I was working with 11g that time so not sure if anything changed here in 12c.
So I have to use exp/imp.
I am using the doc 211905.1 to create a db template on the source. Got error:
select 'MAXLOGMEMBERS '||dimlm from sys.x$kccdi
ERROR at line 1:
ORA-00942: table or view does not exist,
I used export data pump.
I would prefer to use expdp / impdp instead of the old exp/imp because these are faster...
As of your error msg. Does your source database version is the same as the tool you are using to create the export dump? I guess not. Use the older export version to create the dump and use the new version to import in.
Most likely yes.
But impdp will try to create other tablespaces but if you have different directory structure it may fail.
So it is a good idea to prepare for this an pre-create all tablespaces before start up impdp.
You can get the tablespace creator sql commands from a impdp sqlfile output.
Or you can reverse engineer them using dbms_metadata in the source db.
e.g. I have a script save like this:
set long 9999 set pages 0 set lines 300 set serveroutput on size 1000000 spool tbs.sql DECLARE c CLOB; BEGIN FOR t IN (SELECT tablespace_name FROM dba_tablespaces WHERE tablespace_name IN ('APPL1', 'ETC')) LOOP SELECT dbms_metadata.get_ddl('TABLESPACE', t.tablespace_name) INTO c FROM dual; dbms_output.put_line(c); dbms_output.put(';'); END LOOP; END; / spo off