Tuesday, July 9, 2013

How to fix ORA-01130: database file version 11.1.0.0.0 incompatible with ORACLE version 11.0.0.0.0

Today while duplication database I faced strange error:

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 07/09/2013 16:02:16
RMAN-06136: ORACLE error from auxiliary database: ORA-01503: CREATE CONTROLFILE failed
ORA-01130: database file version 11.1.0.0.0 incompatible with ORACLE version 11.0.0.0.0
ORA-01110: data file 1: '/u01/app/oracle/oradata/DUPLPROD/system01.dbf'

I checked all actions and tried again, but result was same. Error happened creation control file. Let me note that I used to duplication on the same host and Oracle version 11.1.0.7.0

SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE    11.1.0.7.0      Production
TNS for IBM/AIX RISC System/6000: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
SQL>

SQL> show parameter compatible

NAME          TYPE   VALUE
-----------   ------   ----------
compatible    string   11.1.0.0.0
SQL>

I just added below line on duplication DB`s init file:

compatible='11.1.0'


Here is step by step creation duplication:

My production db is PROD and planning to create duplication from action database without backup and name will be DUPLPROD.

So, firstly
create listener, tns for duplication.

listener.ora

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = PROD)
      (ORACLE_HOME = /u01/app/oracle/product/11.1.0/db_1)
      (SID_NAME = PROD)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = DUPLPROD)
      (ORACLE_HOME = /u01/app/oracle/product/11.1.0/db_1)
      (SID_NAME = DUPLPROD)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = xxxxxxxxx)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

tnsname.ora

PROD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xxxxxxx)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PROD)
    )
  )

DUPLPROD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xxxxxxx)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DUPLPROD)
    )
  )



create folders : ../oradata/DUPLPROD ../flashback/DUPLPROD etc


create init file (I created it under dbs)

create password file:

cd $ORACLE_HOME/dbs

orapwd password=oracle file=orapwDUPLPROD

file_name : initDUPLPROD.ora

DB_NAME=DUPLPROD
diagnostic_dest='/u01/app/oracle/admin/DUPLPROD'
DB_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/PREPROD','/u01/app/oracle/oradata/DUPLPROD')
LOG_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/PREPROD','/u01/app/oracle/oradata/DUPLPROD')
compatible='11.1.0'

Now, start DUPLPROD in nomount mode using pfile.

export ORACLE_SID=DUPLPROD
sqlplus "/as sysdba"

SQL> startup nomount pfile=/u01/app/oracle/product/11.1.0/db_1/dbs/initDUPLPROD.ora
ORACLE instance started.

Total System Global Area  217157632 bytes
Fixed Size                  2152328 bytes
Variable Size             159385720 bytes
Database Buffers           50331648 bytes
Redo Buffers                5287936 bytes
SQL>



Test connectivity to auxiliary and target instance from the Both Sides.

sqlplus "sys/oracle@PREPROD" as sysdba

sqlplus sys/oracle@DUPLPROD as sysdba


Now connect to RMAN and make duplication:

-bash-3.00$ rman target sys/oracle@PREPROD auxiliary sys/oracle@DUPLPROD

or

-bash-3.00$ rman target sys/oracle@PREPROD

Recovery Manager: Release 11.1.0.7.0 - Production on Tue Jul 9 15:07:49 2013

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: PREPROD (DBID=628957311)

RMAN> connect auxiliary sys/oracle@DUPLPROD

connected to auxiliary database: DUPLPROD (not mounted)

RMAN>


run
{
DUPLICATE TARGET DATABASE TO 'DUPLPROD' FROM ACTIVE DATABASE
NOFILENAMECHECK;
}


No comments:

Post a Comment