Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

RMAN bash example (simple but effective) for production DB 18c

orasiyaJul 10 2020 — edited Jul 10 2020

Dear Friends,

I need bash example  (good & effective  rman bash example) of rman backup for my production database , simple but effective that

1-  it does level 0 backup of database  including the  control file , spfile every  week on saturdays

2- it does incremental level 1 backup everyday

3- it does archivelog backup everyday

for review

----------------------------- level 0

run

{

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/FULL_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/FULL_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/FULL_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/FULL_%U';

.....

backup as backupset incremental level 0 section size 32g database tag 'RMAN/FULL_L0' plus archivelog not backed up 2 times;

#control file backup

allocate channel ch_cntl device type disk format '/ZFS/DB_PRO/disk1/cf_%U';

backup as backupset CURRENT CONTROLFILE channel ch_cntl;

#spfile backup

allocate channel ch_sp  device type disk format '/ZFS/DB_PRO/disk1/sp_%U';

backup as backupset SPFILE channel ch_sp;

DELETE NOPROMPT OBSOLETE;

}

----------------------------- level 1

run

{

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/INC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/INC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/INC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/INC_%U';

.....

          backup as backupset incremental level 1 section size 32g database tag 'RMAN/LEVEL_L1' plus archivelog not backed up 2 times;

          DELETE NOPROMPT OBSOLETE;

          }

        ------------------------------

          -------------------- archivelog backup

run

{

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/ARC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/ARC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/ARC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/ARC_%U';

backup archivelog all not backed up 2 times;

delete noprompt archivelog until time '(sysdate-30)';

}

--------some rman configuration setting

RMAN> show all;

RMAN configuration parameters for database with db_unique_name DB_PRO are:

CONFIGURE RETENTION POLICY TO REDUNDANCY 5;

CONFIGURE BACKUP OPTIMIZATION OFF; # default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

CONFIGURE CONTROLFILE AUTOBACKUP ON;

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/ZFS/DB_PRO/disk1/auto/%F';

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;

CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+REC1/DB_PRO/snapcf_DB_PRO.f';

Comments

EdStevens

orasiya wrote:

Dear Friends,

I need bash example (good & effective rman bash example) of rman backup for my production database , simple but effective that

1- it does level 0 backup of database including the control file , spfile every week on saturdays

2- it does incremental level 1 backup everyday

3- it does archivelog backup everyday

for review

----------------------------- level 0

run

{

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/FULL_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/FULL_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/FULL_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/FULL_%U';

.....

backup as backupset incremental level 0 section size 32g database tag 'RMAN/FULL_L0' plus archivelog not backed up 2 times;

#control file backup

allocate channel ch_cntl device type disk format '/ZFS/DB_PRO/disk1/cf_%U';

backup as backupset CURRENT CONTROLFILE channel ch_cntl;

#spfile backup

allocate channel ch_sp device type disk format '/ZFS/DB_PRO/disk1/sp_%U';

backup as backupset SPFILE channel ch_sp;

DELETE NOPROMPT OBSOLETE;

}

----------------------------- level 1

run

{

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/INC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/INC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/INC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/INC_%U';

.....

backup as backupset incremental level 1 section size 32g database tag 'RMAN/LEVEL_L1' plus archivelog not backed up 2 times;

DELETE NOPROMPT OBSOLETE;

}

------------------------------

-------------------- archivelog backup

run

{

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/ARC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/ARC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk1/ARC_%U';

allocate channel ch01 device type disk format '/ZFS/DB_PRO/disk2/ARC_%U';

backup archivelog all not backed up 2 times;

delete noprompt archivelog until time '(sysdate-30)';

}

--------some rman configuration setting

RMAN> show all;

RMAN configuration parameters for database with db_unique_name DB_PRO are:

CONFIGURE RETENTION POLICY TO REDUNDANCY 5;

CONFIGURE BACKUP OPTIMIZATION OFF; # default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

CONFIGURE CONTROLFILE AUTOBACKUP ON;

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/ZFS/DB_PRO/disk1/auto/%F';

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;

CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+REC1/DB_PRO/snapcf_DB_PRO.f';

Why do you allocate different directories for the level 0 backup than for the level 1 backups? This is needless complexity.

YOu don't need separate run blocks for archivelogs and/or controlfile/spfile.  This is needless complexity

I accomplish everything you want with a single shell script.  Here's the core of it:

#!/bin/sh

ORACLE_SID=$1

inclvl=$2

logfile=$3
ORAENV_ASK=NO

source oraenv

rman target /  <<EOF >> $logfile

set echo on

delete force noprompt obsolete;

backup as compressed backupset incremental level $inclvl database tag ${ORACLE_SID}_db_bkup plus archivelog delete all input /

tag ${ORACLE_SID}_arch_bkup;

list backup;

EOF

1 - 1

Post Details

Added on Jul 10 2020
1 comment
219 views