Re: Informix OnLine backup alternative ?
Posted in 1993
Topics: Migration, Import/Export & Data Conversion
Enclosed You will find my shell-procedure dbsave.
Change some internal adresses (/usr1.... or /ukh559...) and the ftp-part
and use it as: dbsave database
#######
#!/bin/sh
#Reorganisation der Datenbank und ASCII-Sicherung
# - wird von cron aufgerufen
#der erste Parameter ist der Name der Datenbank
datbank=$1
if [ "x$1" = "x" ]
then
echo "Aufruf $0 datenbank"
exit
fi
export datbank
(
#Setzen der benoetigten Shell-Variablen - wird von CRON nicht erledigt
. /usr2/becker/bin/db.setenv
# Datenbanksicherung
# Alle Tabellen der Datenbank werden entladen
echo "SICHERUNG DER DATENBANK $datbank IN ASCII-FORMAT
Trennzeichen = >$DBDELIMITER<
"
sichdir=/usr2/dbsicherung
sichdat=$sichdir/$datbank/`date +%h%d`
sdtar=$datbank.tar
#alle Sicherungen auf dem aktuellen Rechner loeschen
rm -rf /usr2/dbsicherung/$datbank >/dev/null 2>&1
(cd $sichdir; rm -f $sichdat $sdtar $sdtar.Z 2>&1 >/dev/null)
mkdir /usr2/dbsicherung/$datbank
echo "Beginn der Sicherung: `date` "
#wenn Directory schon vorhanden - loeschen
if [ -d $sichdat ]
then
rm -rf $sichdat >/dev/null 2>&1
fi
mkdir $sichdat
cd $sichdat
dbschema -t all -s all -p all -d $datbank $datbank.unl.sql
/usr/local/bin/gzip -9 $datbank.unl.sql
echo 'unload to "h1.unl" select tabname from systables where tabtype = "T"'\\
>h1.sql
isql -s $datbank h1 >/dev/null 2>&1
/usr/bin/local/replace $DBDELIMITER '' h1.unl 2>&1 >/dev/null
awk '{printf ("delete from %s where 1=1; load from %s.unl insert into %s;\\n",\\
$0, $0, $0);}' h1.unl>hload.sql&
awk '
{
printf ("unload to %s.unl select * from %s;\\n", $0, $0);
printf ("! /usr/local/bin/gzip -9 %s.unl \\n", $0);
}' h1.unl >h1.sql
isql -s $datbank h1 >/dev/null 2>&1
rsh ukh559 rm -rf dbsich.$datbank.1
cd $sichdir
/usr/local/gnu/gtar cf /ukh559.usr1/becker/dbsich.$datbank.1 $datbank
echo "Datenuebertragung auf Rechner ukhom"
ftp -v -i -n ukhom <<EOF
user xxxxxx xxxxxx xxxxxxxx
binary
hash
del $sdtar.Z
put /ukh559.usr1/becker/dbsich.$datbank.1 $sdtar.Z
bye
EOF
echo "Ende der Datenuebertragung: `date`"
rm -rf $sdtar $sdtar.Z /usr2/dbsicherung/$datbank >/dev/null 2>&1
) 2>&1 >/dev/null
######
That's all
Dieter
--
Dr. med. dipl.-math Dieter Becker Tel.: (0 / +49) 6841 - 16 3046
Medizinische Universitaets- und Poliklinik Fax.: (0 / +49) 6841 - 16 3369
Innere Medizin III
D - 6650 Homburg / Saar Email: becker@med-in.uni-sb.de