Restore Oracle 11g Database from RMAN Backup (Full and Archive Logs Backup)

 

Backed Up Data Environment:
Full Backups:

/backup/daily/2015-10-15/TESTDB

Archive Log Backups:
/backup/daily/2015-10-16/TESTDB

/backup/daily/2015-10-17/TESTDB
/backup/daily/2015-10-18/TESTDB

Restore Scenario:
Restore TESTDB up to the latest Backup including the latest Full Backup (2015-10-15) + all the Archive Log backups up to 2015-10-18

 

Files Preparation:
A.

Copy all the Archive Log files under /backup/daily/2015-10-15/TESTDB/ARCH to /backup/daily/2015-10-18/TESTDB/ARCH
Copy all the Archive Log files under /backup/daily/2015-10-16/TESTDB/ARCH to /backup/daily/2015-10-18/TESTDB/ARCH

Copy all the Archive Log files under /backup/daily/2015-10-17/TESTDB/ARCH to /backup/daily/2015-10-18/TESTDB/ARCH

Here are the commands:

cp -rp /backup/daily/2015-10-15/TESTDB/ARCH/* /backup/daily/2015-10-18/TESTDB/ARCH
cp -rp /backup/daily/2015-10-16/TESTDB/ARCH/* /backup/daily/2015-10-18/TESTDB/ARCH
cp -rp /backup/daily/2015-10-17/TESTDB/ARCH/* /backup/daily/2015-10-18/TESTDB/ARCH

B.

Copy the datafile backups under /backup/daily/2015-10-15/TESTDB/DB_BK to /backup/daily/2015-10-18/TESTDB/DB_BK
  Here is the command:


  mkdir -p /backup/daily/2015-10-18/TESTDB/DB_BK
  cp -rp /backup/daily/2015-10-15/TESTDB/DB_BK/* /backup/daily/2015-10-18/TESTDB/DB_BK

 

[oracle@TESTSVR]$ ls -l /backup/daily/2015-10-18/TESTDB/

total 20

drwxr-xr-x 2 oracle dba 4096 Oct 18 03:02 ARCH

drwxr-xr-x 2 oracle dba 4096 Oct 18 03:02 CTRL

drwxr-xr-x 2 oracle dba 4096 Oct 15 03:51 DB_BK

drwxr-xr-x 2 oracle dba 4096 Oct 18 03:02 LOG

drwxr-xr-x 2 oracle dba 4096 Oct 18 03:02 SPFILE

 

[oracle@TESTSVR]$ ls -l /backup/daily/2015-10-18/TESTDB/DB_BK/

total 3775616

-rw-r----- 1 oracle dba 821272576 Oct 15 03:50 bk_12859_1_893124637

-rw-r----- 1 oracle dba 465993728 Oct 15 03:50 bk_12860_1_893124637

-rw-r----- 1 oracle dba 431538176 Oct 15 03:50 bk_12861_1_893124638

-rw-r----- 1 oracle dba 391151616 Oct 15 03:50 bk_12862_1_893124638

-rw-r----- 1 oracle dba 399499264 Oct 15 03:50 bk_12863_1_893124693

-rw-r----- 1 oracle dba 379371520 Oct 15 03:51 bk_12864_1_893124694

-rw-r----- 1 oracle dba 403881984 Oct 15 03:51 bk_12865_1_893124697

-rw-r----- 1 oracle dba 189456384 Oct 15 03:51 bk_12866_1_893124733

-rw-r----- 1 oracle dba 213196800 Oct 15 03:51 bk_12867_1_893124734

-rw-r----- 1 oracle dba 167034880 Oct 15 03:51 bk_12868_1_893124737

 

 

[oracle@TESTSVR]$ ls -l /backup/daily/2015-10-18/TESTDB/ARCH/

total 488352

-rw-r----- 1 oracle dba 53209600 Oct 15 03:51 arch_12870_1_893124771

-rw-r----- 1 oracle dba 53825536 Oct 15 03:51 arch_12871_1_893124771

-rw-r----- 1 oracle dba 22075392 Oct 15 03:51 arch_12872_1_893124771

-rw-r----- 1 oracle dba   266752 Oct 15 03:51 arch_12873_1_893124771

-rw-r----- 1 oracle dba 85068288 Oct 16 03:01 arch_12877_1_893210517

-rw-r----- 1 oracle dba 37753856 Oct 16 03:02 arch_12878_1_893210517

-rw-r----- 1 oracle dba     2560 Oct 16 03:02 arch_12879_1_893210525

-rw-r----- 1 oracle dba 79857152 Oct 17 03:01 arch_12883_1_893296913

-rw-r----- 1 oracle dba 39827968 Oct 17 03:01 arch_12884_1_893296913

-rw-r----- 1 oracle dba     3072 Oct 17 03:01 arch_12885_1_893296920

-rw-r----- 1 oracle dba 79281152 Oct 18 03:02 arch_12889_1_893383308

-rw-r----- 1 oracle dba 48331264 Oct 18 03:02 arch_12890_1_893383308

-rw-r----- 1 oracle dba     3072 Oct 18 03:02 arch_12891_1_893383315

 

[oracle@TESTSVR]$ ls -l /backup/daily/2015-10-18/TESTDB/CTRL/

total 18440

-rw-r----- 1 oracle dba 18857984 Oct 18 03:02 control.bk

 

 

[oracle@TESTSVR]$ ls -l /backup/daily/2015-10-18/TESTDB/SPFILE/

total 100

-rw-r----- 1 oracle dba 98304 Oct 18 03:02 spfileTESTDB.bak

 

 

[oracle@TESTSVR]$ cat /scripts/restore_db_script.sh

#!/bin/bash
####################################################################
# Need to clear up ASM disk (TESTDB) before executing the script !!
####################################################################

export BACKUP_DATE=2015-10-18 
export ORACLE_SID=TESTDB
export ORACLE_HOME=/oracle/orabase/product/11.2.0.3/dbhome_1
export DATE=`date '+%Y%m%d%H%M'`

# To genereate "restore_db_run"
cat << EOF > /backup/sql/restore_db_run
set decryption identified by 'MYPWD';
duplicate database to $ORACLE_SID
pfile='/oracle/orabase/product/11.2.0.3/dbhome_1/dbs/init$ORACLE_SID.ora'
backup location '/backup/daily/$BACKUP_DATE'
nofilenamecheck;
quit
EOF

# To generate "init$ORACLE_SID.ora"
cat << EOF > $ORACLE_HOME/dbs/init$ORACLE_SID.ora
db_name='$ORACLE_SID'
memory_target=3G
processes=500
audit_file_dest='/oracle/orabase/admin/$ORACLE_SID/adump'
audit_trail='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='+ARCH'
db_recovery_file_dest_size=20G
diagnostic_dest='/oracle/orabase'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
EOF

# To re-generate glogin.sql
cp -f $ORACLE_HOME/sqlplus/admin/glogin.sql $ORACLE_HOME/sqlplus/admin/glogin.sql.clone
cat << EOF > $ORACLE_HOME/sqlplus/admin/glogin.sql
DEFINE_EDITOR='vi'
SET TERMOUT OFF
EOF

sqlplus -s / as sysdba <<EOF
shut abort
startup nomount pfile=$ORACLE_HOME/dbs/init$ORACLE_SID.ora
exit
EOF

# restore glogin.sql
mv -f $ORACLE_HOME/sqlplus/admin/glogin.sql.clone $ORACLE_HOME/sqlplus/admin/glogin.sql

$ORACLE_HOME/bin/rman auxiliary / cmdfile=/backup/sql/restore_db_run msglog=/backup/restore_log/"$ORACLE_SID"_rman_restored_log_"$DATE".log

 

 

◎ Run DB-Restore Shell Script:

[oracle@TESTSVR]$ chmod 750 /scripts/restore_db_script.sh

[oracle@TESTSVR]$ ./scripts/restore_db_script.sh

arrow
arrow
    全站熱搜

    DanBrother 發表在 痞客邦 留言(0) 人氣()