Skip to main content

RMAN – Duplicating Database Issue

Scenario:

While doing RMAN Duplicating database we missed some archivelog backup from backup mountpoint, so it gives error like

executing Memory Script

executing command: SET until clause

Starting recover at 18-SEP-10

starting media recovery

channel C1: starting archive log restore to default destination
channel C2: starting archive log restore to default destination
channel C3: starting archive log restore to default destination
channel C1: restoring archive log
archive log thread=2 sequence=80918
channel C2: restoring archive log
archive log thread=2 sequence=80917
channel C2: reading from backup piece /rmanback/arch_52886.arc
channel C3: restoring archive log
archive log thread=1 sequence=71380
channel C1: restoring archive log
archive log thread=2 sequence=80919
ORA-19870: error reading backup piece /rmanback/arch_52886.arc
ORA-19505: failed to identify file "/rmanback/arch_52886.arc"
ORA-27041: unable to open file
SVR4 Error: 13: Permission denied
Additional information: 2
failover to previous backup
Oracle Error:
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/oracle/devdata/system01'

released channel: C1
released channel: C2
released channel: C3
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 09/18/2010 15:48:07
RMAN-03015: error occurred in stored script Memory Script
RMAN-20506: no backup of archivelog found
RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of log thread 2 seq 80917 lowscn 6573367815 found to restore

Actually the issue was permission related issue, so it gives the above error and quit from RMAN prompt.

I tried to do cancel based recovery, if doesn’t work, steps I followed to do the cancel based recovery

My test database in mount stage,

In command prompt, gave sqlplus “/as sysdba”


SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;
ORA-00279: change 6573474410 generated at 09/12/2010 11:42:22 needed for thread
2
ORA-00289: suggestion : /oracle/10.2.0/dbs/arch2_80917_603256642.dbf
ORA-00280: change 6573474410 for thread 2 is in sequence #80917


Specify log: {=suggested | filename | AUTO | CANCEL}
/oracle/10.2.0/dbs/arch2_80917_603256642.dbf
ORA-00317: file type 512 in header is not log file
ORA-00334: archived log: '/oracle/10.2.0/dbs/arch2_80917_603256642.dbf'



I changed the permission of archivelog backup, then I executed the below script in the RMAN prompt

RMAN> run
2> {
3> set until time "to_date('Sep 13 2010 15:56:00','Mon DD YYYY HH24:MI:SS')";
4> recover
5> clone database
6> delete archivelog
7> ;

It started the media recovery and finished recovery, the start database in resetlogs mode

Sql> alter database open resetlogs;

Comments

Betty said…
Thanks for sharing your experience and the problem that you have faced during the duplication process. Its really good to know about all the points that can cause problem because one gains expertise by learning all the facts and know better about the procedure.
sap testing tools

Popular posts from this blog

ORA-20200 Error while running AWR report from PDB level

Issue: In 19c database, while generating AWR report from PDB level, got the below error.  In 12cR1 - We can only generate statistics and run the Workload Repository (AWR) report from CDB level.  Since 12.2, if we want to generate statistics and run AWR report from PDB level, we have to change  awr_pdb_autoflush_enabled parameter to TRUE. Error: ERROR at line 1: ORA-20200: Database/Instance 2832289441/1 does not exist in AWR_PDB_DATABASE_INSTANCE ORA-06512: at line 27 Solution: alter session set container=ORCL; >>>>   Set the container Name alter system set awr_pdb_autoflush_enabled=true; conn system/<pwd>@orclcdb     >>>> Login into PDB database alter system set AWR_SNAPSHOT_TIME_OFFSET=1000000 scope=both;   >>> Set the arameter to avoid performance issue while generating snapshot at the same time in CDB and PDB level. exec dbms_workload_repository.create_snapshot(); SQL> @?/rdbms/admin/awrrpt.sql Console Log: SQL> show pdbs       CON_ID CON

EBS 12.2 - Script to monitor JVM Heap Memory for the weblogic managed servers

#!/bin/sh # Script to monitor JVM Heap Memory for the managed servers # Author : Ramasubbu Sunadaravel # Date   : 23-Aug-2016 # Usage  : sh jvm_heap_mem_mon.sh run  ## VARIABLES save_date=`date +%d_%b_%y` LOGFILE=/export/home/applmgr/oraprocs/logs HISTFILE=/export/home/applmgr/oraprocs/histfile threshold=10 MAIL_LIST=rsundaravel@yahoo.com SCRIPT=/export/home/applmgr/oraprocs/.jvm_check.py ## SCRIPTS STARTS HERE . /r11/app/FLRPRD/R12apps/EBSapps.env . $FMW_HOME/wlserver_10.3/server/bin/setWLSEnv.sh java weblogic.WLST $SCRIPT > $LOGFILE/jvm_heap_monitoring.log date '+Start Time: %m/%d/%y %H:%M:%S' >> $HISTFILE/jvm_heap_monitoring_$save_date.log cat $LOGFILE/jvm_heap_monitoring.log|grep "%" >> $HISTFILE/jvm_heap_monitoring_$save_date.log date '+End Time: %m/%d/%y %H:%M:%S' >> $HISTFILE/jvm_heap_monitoring_$save_date.log #Alert DBA's if any of the managed server heap size reached more than $threshold value current=`

EBS 12.2 - Script to monitor Weblogic Managed servers

#!/bin/sh # Script to monitor Weblogic managed server status # Author : Ramasubbu Sunadaravel # Date   : 23-Aug-2016 . /r11/app/FLRPRD/R12apps/EBSapps.env ## VARIABLES ### LOGFILE=/export/home/applmgr/oraprocs/logs MAIL_LIST=rsundaravel@yahoo.com ADMIN_URL=http://test.domain.int:7014/console PARFILE=/export/home/applmgr/oraprocs/mgd_server_list.par ## - place all the managed servers name. WEBLOGIC_PWD = /export/home/applmgr/oraprocs/.weblogicpwd ## SCRIPT STARTS cat $PARFILE |while read line do managed_server=`echo $line | awk '{print $1}'` LOGFILE=/export/home/applmgr/oraprocs/logs echo $managed_server echo `cat $WEBLOGIC_PWD`|$ADMIN_SCRIPTS_HOME/admanagedsrvctl.sh status $managed_server|grep $managed_server|grep -v logs > $LOGFILE/$managed_server.log status=`cat $LOGFILE/$managed_server.log|grep "is running"|wc -l` if test $status -eq 1 then echo "$managed_server is Running" else echo "$managed