Question:
Hello.
After migration, my application will be running 24 hours a day against
Oracle 8i for linux.
I need to program an on-line backup every day, and as I don't have
enterprise manager because I have no NT, I supose that I should
prepare a shell script to be run once a day.
This is the shell script that we are executing now with our Oracle 7.2
in a SCO Openserver. I think that it may be improved (for example,
I've heard of incremental backup) so any suggestion would be welcomed.
#!/bin/sh
# Shell excript para realizar el backup de la B.D.
ORACLE_HOME=/mnt1/users/ora7 export ORACLE_HOME
ORACLE_SID=A export ORACLE_SID
DESTINO=/mnt2 export DESTINO
# Conectamos con el sqldba
$ORACLE_HOME/bin/sqldba lmode=y << EOF
connect internal
-- tablespace SYSTEM
alter tablespace SYSTEM begin backup;
!cp $ORACLE_HOME/dbs/systA.dbf $DESTINO/dbsbck/dbs
alter tablespace SYSTEM end backup;
-- tablespace MYTABLESPACE
alter tablespace MYTABLESPACE begin backup;
!cp $ORACLE_HOME/dbs/mydatafile1.dbf $DESTINO/dbsbck/dbs
!cp $ORACLE_HOME/dbs/mydatafile2.dbf $DESTINO/dbsbck/dbs
alter tablespace MYTABLESPACE end backup;
------ WE DO THIS WITH ALL OUR TABLESPACES ------
-- Backup del fichero de control
!rm $DESTINO/dbsbck/dbs/control.ctl
alter database backup controlfile to
'$DESTINO/dbsbck/dbs/control.ctl';
-- Salimos del sqldba
exit
EOF
# Backup de los ficheros de control
cp $ORACLE_HOME/dbs/ctrl1A.ctl $DESTINO/dbsbck/dbs
cp $ORACLE_HOME/dbs/ctrl2A.ctl $DESTINO/dbsbck/dbs
cp $ORACLE_HOME/dbs/ctrl3A.ctl $DESTINO/dbsbck/dbs
# Backup de los ficheros de log
cp $ORACLE_HOME/dbs/log1A.dbf $DESTINO/dbsbck/dbs
cp $ORACLE_HOME/dbs/log2A.dbf $DESTINO/dbsbck/dbs
cp $ORACLE_HOME/dbs/log3A.dbf $DESTINO/dbsbck/dbs
# Backup de los ficheros de configuracion
cp $ORACLE_HOME/dbs/configA.ora $DESTINO/dbsbck/dbs
cp $ORACLE_HOME/dbs/initA.ora $DESTINO/dbsbck/dbs
# Backup de los archive log
LOG_ARCHIVE=$ORACLE_HOME/dbs/arch export LOG_ARCHIVE
TMP_ARCHIVE_DEST=$DESTINO/dbsbck/dbs/arch export TMP_ARCHIVE_DEST
rm -f $TMP_ARCHIVE_DEST/*.log
$ORACLE_HOME/bin/sqldba lmode=y << EOF
connect internal
alter system switch logfile
exit
EOF
# Copiar los ficheros del directorio de log
for FILE in $LOG_ARCHIVE/*.log
do
[ -f $FILE ] || continue
NAME=`basename $FILE`
cp $FILE $TMP_ARCHIVE_DEST/$NAME
if [ $? != 0 ]; then
echo "Error: fallo al copiar el fichero
archive log $FILE"
continue
fi
if cmp -s $FILE $TMP_ARCHIVE_DEST/$NAME
then
rm $FILE
else
echo "Salta borrar el archive log $FILE"
fi
done
ls -l $TMP_ARCHIVE_DEST
--
Julio César Glez Suarez
Xixón, Asturies, Spain
Answer:
Incremental backup is a feature of RMAN.
Apart from the size of the control files with conventional backup nothing
should have really changed.
Hth,
Sybrand Bakker, Oracle DBA