Sample script to backup an Oracle 10g database on Linux.
#!/bin/sh # orahotbkup.sh # # Copies Oracle database data files to backup directory on disk # and individually gzips them # # set up environment variables # need to export the Oracle environment variables export ORACLE_SID=orcl export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 export PATH=$ORACLE_HOME/bin:$PATH FMT_DATE=`/bin/date +%Y%m%d` BACKUP_BASE=/u01/app/oracle/oradata/backup/orcl SCRIPT_LOC=/u01/app/oracle/admin/$ORACLE_SID/scripts/backup LOG_LOC=/u01/app/oracle/admin/$ORACLE_SID/scripts/log BACKUP_LOC=$BACKUP_BASE/$FMT_DATE SCRIPT_FILE=$SCRIPT_LOC/dbf$FMT_DATE.sh LOG_FILE=$LOG_LOC/$FMT_DATE.log # make destination directories mkdir -p $LOG_LOC mkdir -p $SCRIPT_LOC >> $LOG_FILE mkdir -p $BACKUP_LOC >> $LOG_FILE # generate bash script file to copy database data files to destination sqlplus / as sysdba < select '#!/bin/sh ' from dual; select 'sqlplus / as sysdba <<EOF'||chr(10)|| 'alter tablespace '||tablespace_name|| ' begin backup; '||chr(10)|| 'exit'||chr(10)|| 'EOF'||chr(10)||chr(10)|| 'cp '||file_name||' $BACKUP_LOC/'||substr(file_name,instr(file_name,'/',-1)+1) ||chr(10)||chr(10)|| 'sqlplus / as sysdba <<EOF'||chr(10)|| 'alter tablespace '||tablespace_name|| ' end backup; '||chr(10)|| 'exit'||chr(10)|| 'EOF' from dba_data_files order by file_id spool $SCRIPT_FILE / spool off exit EOF # change permission modes on script file to make it executable chmod 755 $SCRIPT_FILE # execute the script file to copy the database data files $SCRIPT_FILE # set name of second script file SCRIPT_FILE=$SCRIPT_LOC/arc$FMT_DATE.sh # generate bash script file to copy archive logs to destination sqlplus / as sysdba < alter system switch logfile; alter system switch logfile; alter system switch logfile; alter database backup controlfile to '$BACKUP_LOC/control01.dbf'; select '#!/bin/sh ' from dual; select 'cp '||name||' $BACKUP_LOC/'||substr(name,instr(name,'/',-1)+1) ||chr(10)||chr(10) from v$archived_log where completion_time > sysdate - 1.1 order by completion_time spool $SCRIPT_FILE / spool off exit EOF # change permission modes on script file to make it executable chmod 755 $SCRIPT_FILE # execute the script file to copy the archive log files $SCRIPT_FILE # gzip each database file in the $BACKUP_LOC directory gzip $BACKUP_LOC/* echo All done!
0 Comments.