BACKUP/EXPORT DI UN DATABASE (E TUTTI I SUOI SCHEMI) MEDIANTE DB2MOVE#
dbmove NOMEDB export
genera un elenco di file .ixf e relativo file db2move.lst che contiene l'elenco delle tabelle (schema per schema) a quale file .ixf è stato associato
NOTA: in alcune versione del db2 (db2 8.1 dal fixpack 9 al fixpack 12), l'export può andare a buon fine solo parzialmente. Aggiungere questi parametri
dbmove NOMEDB export -aw
RESTORE MEDIANTE DB2MOVE#
Lanciare il seguente comando all'interno della directory dove è presente il file db2move.lst e i relativi file .ixf
dbmove NOMEDB import
db2move import crea anche le tabelle se non esistono (le viste ovviamente no).
Se la tabella esiste già la svuota e le riempie con i dati del file ixf esistente.
PROBLEMA DI RESTORE (DB2MOVE IMPORT) IN CASO DI ERRORE 3525#
Si presenta in alcune versioni del db2 (db2 8.1 dal fixpack 9 al fixpack 12).
Questo errore è bloccante nel senso che non importa nulla.
Per ovviare al problema usare il seguente script che esegue il delete + import tabella x tabella.
Rispetto a db2move se non esiste la tabella va in errore poichè usa il comando db2 import.
Connettersi al database e lanciare il seguente script
#!/bin/bash
if [ ! -n "$1" ] ; then
echo "Nome db non presente"
exit 1
fi
if [ ! -n "$2" ] ; then
echo "Dichiarare percorso cartella dove presente db2move.lst"
exit 1
fi
cd $2
echo "delete e import di $1;" > db2import$1.db2
cat db2move.lst | while read line
do
IXF=`echo $line | cut -d! -f3`
TABLE=`echo $line | cut -d! -f2 | sed s/'"'//g | sed s/'\s'//g`
echo "delete from $TABLE;" >> db2import$1.db2
echo "import from $IXF of ixf insert into $TABLE;" >> db2import$1.db2
done
echo "inizio import"
db2 -tf db2import$1.db2 > db2import$1.log
echo "fine import"