Über ein zentrales Script werden allen Datenbanken auf dem Host einzeln gesichert.
Ein zentrales Script für die Sicherung der Oracle Datenbank (Single Instance / ASM Umgebungen / RAC) finden Sie hier: OraPowerShell Bash Backup Scripts
Mit diesen Scripts wird nicht nur die DB, sonder je nach Bedarf auch weitere Einstellungen und Konfigurationen von einer RAC oder ASM Umgebung.
Aufruf:
OS:Unix
DB:11g
#!/bin/sh # Enviroment DAY_OF_WEEK="`date +%w`" export DAY_OF_WEEK DAY="`date +%d`" export DAY SCRIPTS=/home/oracle/backup export SCRIPTS BACKUP_DEST=/backuptest/flash_recovery_area export BACKUP_DEST if [ ! -d ${BACKUP_DEST} ]; then echo "Backup Directory ${BACKUP_DEST} not exist" echo " " exit 2 fi if [ ! -d ${SCRIPTS} ]; then echo "Script Directory ${SCRIPTS} not exist" echo " " exit 3 fi echo ------------- START BACKUP V1 at "`date`" ---- -------------- > "${SCRIPTS}/backup_${DAY_OF_WEEK}.log" 2>&1 ## Start Backup for each DB ## Parameter ORACLE_HOME ORACLE_SID ORACLE_DBNAME NLS_LANG ${SCRIPTS}/runRMAN.sh /u01/app/oracle/product/11.2.0/dbhome_1 gpi1 GPI .UTF8 >> "${SCRIPTS}/backup_${DAY_OF_WEEK}.log" 2>&1 echo ------------- Finish BACKUP V1 at "`date`" ------------------ >> "${SCRIPTS}/backup_${DAY_OF_WEEK}.log" 2>&1
#!/bin/sh # Parameter ORACLE_HOME=$1 export ORACLE_HOME ORACLE_SID=$2 export ORACLE_SID ORACLE_DBNAME=$3 export ORACLE_DBNAME NLS_LANG=$4 export NLS_LANG # Test Parameter if [ "$4" = "" ]; then echo "Syntax: $f ORACLE_HOME ORACLE_SID ORACLE_DBNAME NLS_LANG" echo " " echo " " exit 2 fi if [ ! -d $1 ]; then echo "Directory ORACLE_HOME=$1 not exist" echo " " exit 3 fi if [ ! -d ${BACKUP_DEST}/${ORACLE_DBNAME} ]; then echo "Backup Directory ${BACKUP_DEST}/${ORACLE_DBNAME} not exist" echo " " exit 4 fi #Enviroment for execute as cronjob LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH # Run RMAN Script for this DB #${ORACLE_HOME}/bin/rman target / nocatalog @${SCRIPTS}/backup.rman # Delete old Trace of Controlfile rm ${BACKUP_DEST}/${ORACLE_DBNAME}/controlfile_trace_${DAY_OF_WEEK}.trc # Run Script to generate Trace of Controlfile # Run Script to generate Copy of pfile ${ORACLE_HOME}/bin/sqlplus / as sysdba << EOScipt ALTER DATABASE backup controlfile TO trace AS '${BACKUP_DEST}/${ORACLE_DBNAME}/controlfile_trace_${DAY_OF_WEEK}.trc'; CREATE pfile='${BACKUP_DEST}/${ORACLE_DBNAME}/init_${ORACLE_DBNAME}_${DAY_OF_WEEK}.ora' FROM spfile; exit; EOScipt #Run Script to get DB Metadata Information ${ORACLE_HOME}/bin/sqlplus / as sysdba @${SCRIPTS}/info.sql #PatchLevel of the database $ORACLE_HOME/OPatch/opatch lsinventory > ${BACKUP_DEST}/${ORACLE_DBNAME}/software_lsinventory_${ORACLE_DBNAME}.log #Save Password File cp ${ORACLE_HOME}/dbs/orapw${ORACLE_SID} ${BACKUP_DEST}/${ORACLE_DBNAME}/orapw${ORACLE_SID}_${DAY_OF_WEEK}
# SET Config CONFIGURE RETENTION POLICY TO REDUNDANCY 2; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE MAXSETSIZE TO 10G; CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET; SHOW ALL; # test old backup crosscheck backup; DELETE noprompt EXPIRED backup; crosscheck archivelog ALL; DELETE noprompt EXPIRED archivelog ALL; #Backup DB SQL "alter system checkpoint"; backup incremental LEVEL 0 tag "full_backup" DATABASE; #Backup archivelogs SQL "alter system archive log current"; backup archivelog ALL tag "archive_backup" DELETE input; #Delete old Backups DELETE noprompt obsolete; #Backup controlfile AND spfile backup CURRENT controlfile tag "controlfile_backup"; backup spfile tag "spfile_backup"; #Summary info list backup summary;
spool ${BACKUP_DEST}/${ORACLE_DBNAME}/dbinfo_${ORACLE_SID}_${DAY_OF_WEEK}.LOG SET pagesize 200 column name format a60 column parameter format a40 column VALUE format a30 column property_value format a30 column property_name format a30 column tablespace_name format a20 column FLASHBACK_ON format a40 column LOG_MODE format a20 ---------------- version -------------------- ttitle "#########################version#########################" skip 2 SELECT * FROM v$version; SELECT * FROM v$option; SELECT ---------------- patchlevel -------------------- ttitle "#########################patchlevel#########################" skip 2 SELECT * FROM sys.registry$history; ---------------- properties -------------------- ttitle "#########################properties#########################" skip 2 SELECT property_name,property_value FROM database_properties; ---------------- charset ------------------- ttitle "#########################charset#########################" skip 2 SELECT * FROM nls_database_parameters; -------------- dbid ------------------------ ttitle "#########################dbid#########################" skip 2 SELECT name,dbid FROM v$database; -------------- datastructur --------------- ttitle "#########################datastructur#########################" skip 2 SELECT name AS datafile_name FROM v$datafile; SELECT name AS tempfile_name FROM v$tempfile; SELECT member AS logfile_name FROM v$logfile; SELECT tablespace_name,block_size FROM dba_tablespaces ORDER BY tablespace_name; ------ archive ----------------------------- ttitle "#########################archive and flashback#########################" skip 2 archive LOG list SELECT FLASHBACK_ON,LOG_MODE FROM v$database; spool off EXIT;