Skip to main content

RMAN refresh standby database from backup

 

Record the steps I took to refresh standby database:

couple of links I use as reference:

https://support.oracle.com/epmos/faces/SearchDocDisplay?_afrLoop=467283015956943&_afrWindowMode=0&_adf.ctrl-state=fuirhqzw5_4

https://walkthrough-dba.blogspot.com/2019/04/rman-duplicate-database-without.html

step 1:  on primary: take a backup to file system

run

 {

allocate channel c1 type disk;

 allocate channel c2 type disk;

 backup as compressed backupset database format '/u99/jsun/ffdeip/backup_%d_%U';

 backup as compressed backupset archivelog all format '/u99/jsun/ffdeip/backup_%d_%U';

backup current controlfile for standby format '/u99/jsun/ffdeip/stby_control_ffdeip.bck'

}

step 2: transfer the backup in step 1 to standby host, e.g. scp

step 3: on standby: duplicate to standby

srvctl start instance -d FFDEIPDG -i FFDEIPDG1 -o nomount

asmcmd rm +oradata01/ffdeipdg/datafile/*

asmcmd rm +oradata01/ffdeipdg/tempfile/*

asmcmd rm +oraflash01/ffdeipdg/archivelog/*


export NLS_DATE_FORMAT='yyyymmdd hh24:mi:ss'
rman  auxiliary  /
RUN
{
  ALLOCATE auxiliary  CHANNEL ch1 TYPE DISK MAXPIECESIZE 1G;
  ALLOCATE auxiliary  CHANNEL ch2 TYPE DISK MAXPIECESIZE 1G;
    duplicate database for standby NOFILENAMECHECK  backup location '/u02/app/oracle/jsun/ffdeip';
  }

step 4: recover and verify
SQL> recover managed standby database using current logfile disconnect;
SQL> alter database open read only;

SELECT inst_id,PROCESS, pid,client_pid,client_process,STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM gV$MANAGED_STANDBY
where (process='RFS' and thread#<>0) or process<>'RFS'
order by process, inst_id,thread#;

col name format a40
col value format a30
set linesize 200
 select recovery_mode from v$archive_dest_status where recovery_mode <> 'IDLE';
select * from v$dataguard_stats;

Comments

  1. If I want to detach the standby database and manual failover, I run these steps:

    ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
    ALTER DATABASE ACTIVATE STANDBY DATABASE;

    SQL> alter database open;

    ReplyDelete

Post a Comment

Popular posts from this blog

non-existent process lock port on windows server

I have a database link created between oracle and sqlserver using oracle tg4odbc, the product is installed on windows server and run as service "OracleOraGtw11g_home1TNSListener", but sometime the service cannot started, the root cause of this problem is that the port number 1521 is used by an non-existent process. The first step is to use netstat -bano|find "1521" to get the process id, in my case it's 5844, which shows the connection is from my oracle server 10.8.0.169 H:\>netstat -bano|find "1521"   TCP    0.0.0.0:1521           0.0.0.0:0              LISTENING       5844   TCP    10.14.45.33:1521       10.8.0.169:42987       ESTABLISHED     5844 however the process id does not show in either task manager or process explorer. The next step is to run tcpview, which shows non-existent under process column, there are three rows, two show status as "listening", the other one shows status "established", right click and k

Opatch apply/lsinventory error: oneoff is corrupted or does not exist

I am applying the quarterly patch for 19c RDBMS, I tried using napply but failed, but somehow it corrupted the inventory though nothing applied. further apply and lsinventory command ran into error like this: $ ./OPatch/opatch lsinventory Oracle Interim Patch Installer version 12.2.0.1.21 Copyright (c) 2020, Oracle Corporation.  All rights reserved. Oracle Home       : /u02/app/oracle/19.0.0 Central Inventory : /u01/app/oraInventory    from           : /u02/app/oracle/19.0.0/oraInst.loc OPatch version    : 12.2.0.1.21 OUI version       : 12.2.0.7.0 Log file location : /u02/app/oracle/19.0.0/cfgtoollogs/opatch/opatch2020-09-08_13-35-59PM_1.log Lsinventory Output file location : /u02/app/oracle/19.0.0/cfgtoollogs/opatch/lsinv/lsinventory2020-09-08_13-35-59PM.txt -------------------------------------------------------------------------------- Inventory load failed... OPatch cannot load inventory for the given Oracle Home. LsInventorySession failed: Unable to create patchObject Possible ca

shell script to clean up oracle dumpfile

https://github.com/iacosta/personal/blob/master/shells/cleanhouse.sh #!/bin/ksh # # Script used to cleanup any Oracle environment. # # Cleans:      audit_file_dest #              background_dump_dest #              core_dump_dest #              user_dump_dest #              Clusterware logs # # Rotates:     Alert Logs #              Listener Logs # # Scheduling:  00 00 * * * /networkdrive/dba/scripts/purge/cleanup.sh -d 7 > /u01/dba/bin/cleanup.log 2>&1 # # Created By:  Lei Dao # # # RM="rm -f" RMDIR="rm -rf" LS="ls -l" MV="mv" TOUCH="touch" TESTTOUCH="echo touch" TESTMV="echo mv" TESTRM=$LS TESTRMDIR=$LS SUCCESS=0 FAILURE=1 TEST=0 HOSTNAME=`hostname` ORAENV="oraenv" TODAY=`date +%Y%m%d` ORIGPATH=/usr/local/bin:$PATH ORIGLD=$LD_LIBRARY_PATH export PATH=$ORIGPATH # Usage function. f_usage(){   echo "Usage: `basename $0` -d DAYS [-a DAYS] [-b DAYS] [