Subscribe to Posts by Email

Subscriber Count

    701

Disclaimer

All information is offered in good faith and in the hope that it may be of use for educational purpose and for Database community purpose, but is not guaranteed to be correct, up to date or suitable for any particular purpose. db.geeksinsight.com accepts no liability in respect of this information or its use. This site is independent of and does not represent Oracle Corporation in any way. Oracle does not officially sponsor, approve, or endorse this site or its content and if notify any such I am happy to remove. Product and company names mentioned in this website may be the trademarks of their respective owners and published here for informational purpose only. This is my personal blog. The views expressed on these pages are mine and learnt from other blogs and bloggers and to enhance and support the DBA community and this web blog does not represent the thoughts, intentions, plans or strategies of my current employer nor the Oracle and its affiliates or any other companies. And this website does not offer or take profit for providing these content and this is purely non-profit and for educational purpose only. If you see any issues with Content and copy write issues, I am happy to remove if you notify me. Contact Geek DBA Team, via geeksinsights@gmail.com

Pages

Heterogeneous Standby Database : Primary on windows , standby on Linux – Different Bits together

Quick Question: Is it possible to have Standby Database on different platforms? i.e Windows (Primary) –> Linux (Standby)

Answer: Yes, From 11gr2 onwards. You can have different Operating Systems on primary and standby.

Note: From 10g onwards, Different endian support  i.e Linux 64bit(Primary) –> Linux 32bit (Standby) is possible but not different platforms.

How to: Using RMAN duplicate database from either active database,image copies, backupsets, service (12c) methods and this is only supported method.

References: Metalink Note: [Article ID 413484.1] & [Article ID 1085687.1]

Test Environment:

( I have completely mixed up the environments to test all possible mixed cases, 32 Bit DB to 64 Bit DB, Non-ASM to ASM, not only just Operating systems combination)

Description Primary Database Standby Database
Operating System Windows 64 Bit Linux 64 Bit
Database Version 11.2.0.1 – 32 Bit 11.2.0.1 – 64 Bit
Database Name Geek DBA11g Geek DBA11g_dr
Storage Non-ASM ASM
Others
used password feature redo_transport_user redo_transport_user
password file case sensitive off off

Steps:-

1. Create a 32 bit database in windows 64 bit operating system

2. Prepare the linux 64 bit operating system with 64 bit database binaries (no database we will create with rman duplicate)

3. Set the tnsnames.ora and listener.ora on both sides

4. Create pfile and password file in standby side

5. Run rman duplicate command

6. Startup the mrp process and keep standby in active data guard

Additional tests:-

1. Add a datafile in primary and see creating in standby, as the endianness and platform is different I want to test it

2. Switchover the Primary to standby and Switch back.

3. Use flashback feature

Step 3: Tnsnames.ora and Listener.ora

Geek DBA11G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Geek DBA)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = Geek DBA11g)
    )
  )

Geek DBA_DR =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Geek DBA11g)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = Geek DBA_dr)
    )
  )

On Primary Listener, add static entry

(SID_DESC =
          (GLOBAL_NAME = Geek DBA11g)
          (ORACLE_HOME = c:\oracle\app\product\11.2.0\dbhome_1)
          (SID_NAME = Geek DBA11g)
    )

On Standby Listener, add static entry

(SID_DESC =
          (GLOBAL_NAME = Geek DBA_dr)
          (ORACLE_HOME = c:\oracle\app\product\11.2.0\dbhome_1)
          (SID_NAME = Geek DBA_dr)
    )

Step 4:  create password file on standby

orapwd file=/u01/app/oracle/product/11.2.0/db_1/dbs/orapwGeek DBA11g password=admin123 entries=5

Step 4: Create a single entry pfile on standby and create necessary directories

!cat initGeek DBA_dr.ora

*.db_name=Geek DBA_dr

[oracle@Geek DBA11g admin]$ mkdir -p /u01/oradata/Geek DBA_dr
[oracle@Geek DBA11g admin]$ mkdir -p /u01/app/oracle/admin/Geek DBA_dr/adump
[oracle@Geek DBA11g admin]$ mkdir -p /u01/oradata/Geek DBA_dr/arch

Step 5: Connect to rman on Primary and auxiliary to Standby

[oracle@Geek DBA11g admin]$  rman target auxiliary sys/admin123@orcl_dr

DUPLICATE TARGET DATABASE
FOR STANDBY
BACKUP LOCATION '/home/oracle/backup/'
NOFILENAMECHECK
DORECOVER
SPFILE
SET DB_UNIQUE_NAME="Geek DBA_dr"
SET AUDIT_FILE_DEST="/u01/app/oracle/admin/Geek DBA_dr/adump"
SET DIAGNOSTIC_DEST="/u01/app/oracle"
SET LOG_ARCHIVE_DEST_2="service=Geek DBA_dr LGWR SYNC REGISTER VALID_FOR=(online_logfile,primary_role)"
SET FAL_SERVER="Geek DBA_dr"
SET FAL_CLIENT="Geek DBA"
SET CONTROL_FILES='/u01/oradata/Geek DBA_dr/control01.ctl','/u01/oradata/Geek DBA_dr/control02.ctl','/u01/oradata/Geek DBA_dr/control03.ctl'
SET DB_FILE_NAME_CONVERT='C:\oracle\app\oradata\Geek DBA11g\','/u01/oradata/Geek DBA_dr/'
SET LOG_FILE_NAME_CONVERT='C:\oracle\app\oradata\Geek DBA11g\','/u01/oradata/Geek DBA_dr/';

Failure: 1

Starting Duplicate Db at 22-MAR-14
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=19 device type=DISK

contents of Memory Script:
{
   backup as copy reuse
   targetfile  'c:\oracle\app\product\11.2.0\dbhome_1\DATABASE\PWDGeek DBA11g.ORA' auxiliary format
'/u01/app/oracle/product/11.2.0/db_1/dbs/orapwGeek DBA_dr'   targetfile
'C:\ORACLE\APP\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEGeek DBA11G.ORA' auxiliary format
'/u01/app/oracle/product/11.2.0/db_1/dbs/spfileGeek DBA_dr.ora'   ;
   sql clone "alter system set spfile= ''/u01/app/oracle/product/11.2.0/db_1/dbs/spfileGeek DBA_dr.ora''";
}
executing Memory Script

Starting backup at 22-MAR-14
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=8 device type=DISK
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 03/22/2014 10:25:18
ORA-17627: ORA-12577: Message 12577 not found;  product=RDBMS; facility=ORA
continuing other job steps, job failed will not be re-run
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 03/22/2014 10:25:25
RMAN-03015: error occurred in stored script Memory Script
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 03/22/2014 10:25:25
ORA-17627: ORA-12577: Message 12577 not found;  product=RDBMS; facility=ORA

DB is 32 bit on source side and 64 Bit on Target side, duplicate from active database will not work

    Note: 1344615.1

    Issue:- Different 'Word Size' between Primary/Standby

    eg:
      Primary  OS Details Redhat Linux 5 64-bits
      Standby OS Details Redhat Linux 4 32-bits

    This is a known bug:
     Bug 8406972: ACTIVE DATABASE DUPLICATION 64BITS - 32 BITS FAILS WITH ORA-12577
    There is no fix available

    Solution:- Use RMAN duplicate database based on backup from standby database.

Need to take a backup in rman and move them to Standby database. Ensure your backup contains spfile and controlfile too.

Okay done.... ( :))

Step 5:- This time from standby site

Few things to note and must see,

1. Backup location

2. Ensure keep the windows format path's in CAPITAL Letters

RMAN> DUPLICATE TARGET DATABASE FOR STANDBY BACKUP LOCATION '/home/oracle/backup/'
NOFILENAMECHECK
DORECOVER
SPFILE
SET DB_UNIQUE_NAME="Geek DBA_dr"
SET AUDIT_FILE_DEST="/u01/app/oracle/admin/Geek DBA_dr/adump"
SET DIAGNOSTIC_DEST="/u01/app/oracle"
SET LOG_ARCHIVE_DEST_2="service=Geek DBA_dr LGWR SYNC REGISTER VALID_FOR=(online_logfile,primary_role)"
SET FAL_SERVER="Geek DBA_dr"
SET FAL_CLIENT="Geek DBA"
SET CONTROL_FILES='/u01/oradata/Geek DBA_dr/control01.ctl','/u01/oradata/Geek DBA_dr/control02.ctl','/u01/oradata/Geek DBA_dr/control03.ctl'
SET DB_FILE_NAME_CONVERT='C:\oracle\app\oradata\Geek DBA11g\','/u01/oradata/Geek DBA_dr/'
4> SET LOG_FILE_NAME_CONVERT='C:\oracle\app\oradata\Geek DBA11g\','/u01/oradata/Geek DBA_dr/'
SET db_recovery_file_dest='/u01/oradata/flash_recovery_area/';5> 6> 7> 8> 9> 10> 11> 12> 13> 14>

Starting Duplicate Db at 22-MAR-14

contents of Memory Script:
{
   restore clone spfile to  '/u01/app/oracle/product/11.2.0/db_1/dbs/spfileGeek DBA_dr.ora' from
'/home/oracle/backup/O1_MF_NCSNF_TAG20140322T103934_9LT6T794_.BKP';
   sql clone "alter system set spfile= ''/u01/app/oracle/product/11.2.0/db_1/dbs/spfileGeek DBA_dr.ora''";
}
executing Memory Script

Starting restore at 22-MAR-14
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=19 device type=DISK

channel ORA_AUX_DISK_1: restoring spfile from AUTOBACKUP /home/oracle/backup/O1_MF_NCSNF_TAG20140322T103934_9LT6T794_.BKP
channel ORA_AUX_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 22-MAR-14

sql statement: alter system set spfile= ''/u01/app/oracle/product/11.2.0/db_1/dbs/spfileGeek DBA_dr.ora''

contents of Memory Script:
{
   sql clone "alter system set  db_unique_name =
''Geek DBA_dr'' comment=
'''' scope=spfile";
   sql clone "alter system set  AUDIT_FILE_DEST =
''/u01/app/oracle/admin/Geek DBA_dr/adump'' comment=
'''' scope=spfile";
   sql clone "alter system set  DIAGNOSTIC_DEST =
''/u01/app/oracle'' comment=
'''' scope=spfile";
   sql clone "alter system set  LOG_ARCHIVE_DEST_2 =
''service=Geek DBA_dr LGWR SYNC REGISTER VALID_FOR=(online_logfile,primary_role)'' comment=
'''' scope=spfile";
   sql clone "alter system set  FAL_SERVER =
''Geek DBA_dr'' comment=
'''' scope=spfile";
   sql clone "alter system set  FAL_CLIENT =
''Geek DBA'' comment=
'''' scope=spfile";
   sql clone "alter system set  CONTROL_FILES =
''/u01/oradata/Geek DBA_dr/control01.ctl'', ''/u01/oradata/Geek DBA_dr/control02.ctl'', ''/u01/oradata/Geek DBA_dr/control03.ctl'' comment=
'''' scope=spfile";
   sql clone "alter system set  db_file_name_convert =
''C:\oracle\app\oradata\Geek DBA11g\'', ''/u01/oradata/Geek DBA_dr/'' comment=
'''' scope=spfile";
   sql clone "alter system set  LOG_FILE_NAME_CONVERT =
''C:\oracle\app\oradata\Geek DBA11g\'', ''/u01/oradata/Geek DBA_dr/'' comment=
'''' scope=spfile";
   sql clone "alter system set  db_recovery_file_dest =
''/u01/oradata/flash_recovery_area/'' comment=
'''' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

sql statement: alter system set  db_unique_name =  ''Geek DBA_dr'' comment= '''' scope=spfile

sql statement: alter system set  AUDIT_FILE_DEST =  ''/u01/app/oracle/admin/Geek DBA_dr/adump'' comment= '''' scope=spfile

sql statement: alter system set  DIAGNOSTIC_DEST =  ''/u01/app/oracle'' comment= '''' scope=spfile

sql statement: alter system set  LOG_ARCHIVE_DEST_2 =  ''service=Geek DBA_dr LGWR SYNC REGISTER VALID_FOR=(online_logfile,primary_role)'' comment= '''' scope=spfile

sql statement: alter system set  FAL_SERVER =  ''Geek DBA_dr'' comment= '''' scope=spfile

sql statement: alter system set  FAL_CLIENT =  ''Geek DBA'' comment= '''' scope=spfile

sql statement: alter system set  CONTROL_FILES =  ''/u01/oradata/Geek DBA_dr/control01.ctl'', ''/u01/oradata/Geek DBA_dr/control02.ctl'', ''/u01/oradata/Geek DBA_dr/control03.ctl'' comment= '''' scope=spfile

sql statement: alter system set  db_file_name_convert =  ''C:\oracle\app\oradata\Geek DBA11g\'', ''/u01/oradata/Geek DBA_dr/'' comment= '''' scope=spfile

sql statement: alter system set  LOG_FILE_NAME_CONVERT =  ''C:\oracle\app\oradata\Geek DBA11g\'', ''/u01/oradata/Geek DBA_dr/'' comment= '''' scope=spfile

sql statement: alter system set  db_recovery_file_dest =  ''/u01/oradata/flash_recovery_area/'' comment= '''' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     801701888 bytes

Fixed Size                     2230768 bytes
Variable Size                222299664 bytes
Database Buffers             574619648 bytes
Redo Buffers                   2551808 bytes

contents of Memory Script:
{
   restore clone standby controlfile from  '/home/oracle/backup/O1_MF_NCSNF_TAG20140322T103934_9LT6T794_.BKP';
}
executing Memory Script

Starting restore at 22-MAR-14
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=19 device type=DISK

channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u01/oradata/Geek DBA_dr/control01.ctl
output file name=/u01/oradata/Geek DBA_dr/control02.ctl
output file name=/u01/oradata/Geek DBA_dr/control03.ctl
Finished restore at 22-MAR-14

contents of Memory Script:
{
   sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database
released channel: ORA_AUX_DISK_1
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=19 device type=DISK

contents of Memory Script:
{
   set until scn  959309;
   set newname for tempfile  1 to
"C:\ORACLE\APP\ORADATA\Geek DBA11G\TEMP01.DBF";
   switch clone tempfile all;
   set newname for datafile  1 to
"C:\ORACLE\APP\ORADATA\Geek DBA11G\SYSTEM01.DBF";
   set newname for datafile  2 to
"C:\ORACLE\APP\ORADATA\Geek DBA11G\SYSAUX01.DBF";
   set newname for datafile  3 to
"C:\ORACLE\APP\ORADATA\Geek DBA11G\UNDOTBS01.DBF";
   set newname for datafile  4 to
"C:\ORACLE\APP\ORADATA\Geek DBA11G\USERS01.DBF";
   restore
   clone database
   ;
}
executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

renamed tempfile 1 to C:\ORACLE\APP\ORADATA\Geek DBA11G\TEMP01.DBF in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 22-MAR-14
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to C:\ORACLE\APP\ORADATA\Geek DBA11G\SYSTEM01.DBF
channel ORA_AUX_DISK_1: restoring datafile 00002 to C:\ORACLE\APP\ORADATA\Geek DBA11G\SYSAUX01.DBF
channel ORA_AUX_DISK_1: restoring datafile 00003 to C:\ORACLE\APP\ORADATA\Geek DBA11G\UNDOTBS01.DBF
channel ORA_AUX_DISK_1: restoring datafile 00004 to C:\ORACLE\APP\ORADATA\Geek DBA11G\USERS01.DBF
channel ORA_AUX_DISK_1: reading from backup piece /home/oracle/backup/O1_MF_NNNDF_TAG20140322T103934_9LT6RH1Q_.BKP
channel ORA_AUX_DISK_1: piece handle=/home/oracle/backup/O1_MF_NNNDF_TAG20140322T103934_9LT6RH1Q_.BKP tag=TAG20140322T103934
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:46
Finished restore at 22-MAR-14

contents of Memory Script:
{
   switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy
input datafile copy RECID=5 STAMP=842873062 file name=/u01/app/oracle/product/11.2.0/db_1/dbs/C:ORACLEAPPORADATAGeek DBA11GSYSTEM01.DBF
datafile 2 switched to datafile copy
input datafile copy RECID=6 STAMP=842873062 file name=/u01/app/oracle/product/11.2.0/db_1/dbs/C:ORACLEAPPORADATAGeek DBA11GSYSAUX01.DBF
datafile 3 switched to datafile copy
input datafile copy RECID=7 STAMP=842873062 file name=/u01/app/oracle/product/11.2.0/db_1/dbs/C:ORACLEAPPORADATAGeek DBA11GUNDOTBS01.DBF
datafile 4 switched to datafile copy
input datafile copy RECID=8 STAMP=842873062 file name=/u01/app/oracle/product/11.2.0/db_1/dbs/C:ORACLEAPPORADATAGeek DBA11GUSERS01.DBF

contents of Memory Script:
{
   set until scn  959309;
   recover
   standby
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 22-MAR-14
using channel ORA_AUX_DISK_1

starting media recovery

channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=3
channel ORA_AUX_DISK_1: reading from backup piece /home/oracle/backup/RMAN_06P3QBL1%
channel ORA_AUX_DISK_1: piece handle=/home/oracle/backup/RMAN_06P3QBL1% tag=TAG20140322T104032
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
archived log file name=/u01/oradata/flash_recovery_area/Geek DBA_DR/archivelog/2014_03_22/o1_mf_1_3_9lt9dj4d_.arc thread=1 sequence=3
channel clone_default: deleting archived log(s)
archived log file name=/u01/oradata/flash_recovery_area/Geek DBA_DR/archivelog/2014_03_22/o1_mf_1_3_9lt9dj4d_.arc RECID=1 STAMP=842873064
media recovery complete, elapsed time: 00:00:00
Finished recover at 22-MAR-14
Finished Duplicate Db at 22-MAR-14

RMAN>

Duplicate of my database done, standby created.

Step 6:- Set parameters both sides and start recovery mode

On Primary

SQL> alter system set standby_file_management=AUTO scope=both;

System altered.

SQL> alter system set fal_server=Geek DBA11g scope=both;

System altered.

SQL> alter system set fal_client=Geek DBA_dr scope=both;

System altered.

SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=Geek DBA_dr LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) NET_TIMEOUT=60 DB_UNIQUE_NAME=Geek DBA_dr' scope=both;

System altered.

On Standby

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/oradata/Geek DBA_dr/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=Geek DBA_dr';

System altered.

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/oradata/Geek DBA_dr/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=Geek DBA_dr' scope=both;

System altered.

SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=Geek DBA11g LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) NET_TIMEOUT=60 DB_UNIQUE_NAME=Geek DBA11g' scope=both;

System altered.

SQL>

alter system SET DB_FILE_NAME_CONVERT='/u01/oradata/Geek DBA_dr/','C:\ORACLE\APP\ORADATA\Geek DBA11G\' scope=spfile;
alter system SET LOG_FILE_NAME_CONVERT='/u01/oradata/Geek DBA_dr/','C:\ORACLE\APP\ORADATA\Geek DBA11G\' scope=spfile;

SQL> alter system set standby_file_management=AUTO scope=both;

System altered.

SQL> alter system set fal_server=Geek DBA_dr scope=both;

System altered.

SQL> alter system set fal_client=Geek DBA11g scope=both;

System altered.

SQL> shut immediate
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.

Total System Global Area  801701888 bytes
Fixed Size                  2230768 bytes
Variable Size             222299664 bytes
Database Buffers          574619648 bytes
Redo Buffers                2551808 bytes

SQL> alter database mount;

Add Standby redo logs

On Primary

ALTER DATABASE ADD STANDBY LOGFILE group 4 ('C:\oracle\app\oradata\Geek DBA11g\stbyredo1.log') SIZE 100M;
ALTER DATABASE ADD STANDBY LOGFILE group 5 ('C:\oracle\app\oradata\Geek DBA11g\stbyredo2.log') SIZE 100M;
ALTER DATABASE ADD STANDBY LOGFILE group 6 ('C:\oracle\app\oradata\Geek DBA11g\stbyredo3.log') SIZE 100M;

On Standby

ALTER DATABASE ADD STANDBY LOGFILE group 4 ('/u01/oradata/Geek DBA_dr/stbyredo1.log') SIZE 100M;
ALTER DATABASE ADD STANDBY LOGFILE group 5 ('/u01/oradata/Geek DBA_dr/stbyredo2.log') SIZE 100M;
ALTER DATABASE ADD STANDBY LOGFILE group 6 ('/u01/oradata/Geek DBA_dr/stbyredo3.log') SIZE 100M;

Keep Standby in sync and real time apply mode (Active Dataguard)

SQL> alter database recover managed standby database disconnect from session using current logfile;

Database altered.

SQL> select name,open_mode,switchover_status,database_role from v$database;

NAME      OPEN_MODE            SWITCHOVER_STATUS    DATABASE_ROLE
--------- -------------------- -------------------- ----------------
Geek DBA11G  MOUNTED              SESSIONS ACTIVE      PHYSICAL STANDBY

Test Cases:-

1. Adding tablespace (datafile), Added – no problem found - Success

2. Switchover – While opening in standby got boot strap issue, to resolve , open the database in upgrade mode and then again switch back- Success

3. Flashback – Yet to test (No time, will update)

-Thanks

Geek DBAGeek DBA

3 comments to Heterogeneous Standby Database : Primary on windows , standby on Linux – Different Bits together

  • Satya

    We have a critical application running on 11.2.0.3 on windows 2008 x86_64. We would like to upgrade it to 11.2.0.4 and also move it on to linux RAC cluster(64 bit). The management wants to minimize the downtime as much as possible. Also they do not want us to touch the current production.So we have come up with the following plan.

    1)Install G.I and RAC binaries on the linux machine.

    2) Create a physical standby on the linux machine using the windows prod 11.2.0.3 database backups.

    3)start managed recovery on the linux standby

    5)When the dowtime starts , shutdown the windows prod database, finish the managed recovery and “activate the standby database” (mimic failover).

    6)upgrade the new prod database on linux using the 11.2.0.4 binaries.

    Please note that we do not have license for goldengate. I would really appreciate if you could provide your inputs.

    Thanks
    Rach

  • Satya

    Hello Expert,

    We have a critical application running on 11.2.0.3 on windows 2008. We would like to upgrade it to 11.2.0.4 and also move it on to linux RAC cluster. The management wants to minimize the downtime as much as possible. Also they do not want us to touch the current production database.So we have come up with the following plan.

    1)Install G.I and RAC binaries on the linux machine.

    2) Create a physical standby on the linux machine using the windows prod 11.2.0.3 database backups. ->can this be done ?

    3)start managed recovery on the linux standby

    5)When the downtime starts , shutdown the windows prod database, finish the managed recovery and “activate the standby database” (mimic failover).

    6)upgrade the new prod database on linux using the 11.2.0.4 binaries.

    Please note that we do not have license for goldengate. I would really appreciate if you could provide your inputs.

    Thanks
    Rach

  • Geek DBA

    Hi

    As per my test I don’t found any issue with it. Secondly the metalink notes posted in note has details about possibility of the same.

    You can give a try with some minimal testing in existing servers in dev/stg before you proceed. Once you are happy provide this plan to Application team.

    Inn short its possible.

    Golden gate license is not required.

    -Thanks
    Suresh