Project

General

Profile

Back-ups (Beheer)

MySQL

Elke nacht om 00:23 door root (wordt beheerd door NTG) de backup gestart vanuit:

/local/mysql-tools/dump-mysql-db-s
die om ongeveer 09:45 klaar is.

Tijdens het maken van de backup zal er op deze locatie een lock file staan:

/backup/mysql-dumps/get-mydbs/dump-mysql-db-s.is.running
Deze wordt gebruikt door andere nachtelijk cronjobs van OpenTaal die pas starten als de database backup klaar is. Zie ook Beheer en De techniek achter OpenTaal. Jobs die deze lockfile gebruiken zijn:

  • distributedHarvester/overzetten_02/transfer.sh
  • distributedHarvester/currentVersion/harvest.sh
  • cron-harvest.sh
  • cron-hourly.sh
  • cron-harvest-process.sh

De backups komen hier te staan:

/backup/mysql-dumps/

Deze bestanden zien er zo uit:

mysql.dump.YYYYMMDD.gz (~70 KB, database met gebruikersaccounts)
opentaal.dump.YYYYMMDD.gz (~11 GB, de belangrijkste database)
opentaalOogst.dump.YYYYMMDD.gz (~38 MG, additionale database)

Let op: Dit zijn de enige backups die er van de database bestaan met een historie van zeven dagen terug! TODO Er zal eens in de ?? dagen ook een off-site backup gemaakt moeten worden!

Compleet herstellen van deze databases gaat als volgt (de gebruikersaccounts blijven in onaangetast):

ssh balder.ntg.nl
sudo su
mysql -umysql -p mysql
drop database opentaal;
create database opentaal;
drop database opentaalLV;
create database opentaalLV;
drop database opentaalOogst;
create database opentaalOogst;
exit
cd /backup/mysql-dumps
gunzip -c opentaal.dump.YYYYMMDD.gz>opentaal.dump.YYYYMMDD
mysql -umysql -p opentaal<opentaal.dump.YYYYMMDD
rm -f opentaal.dump.YYYYMMDD
gunzip -c opentaalLV.dump.YYYYMMDD.gz>opentaalLV.dump.YYYYMMDD
mysql -umysql -p opentaalLV<opentaalLV.dump.YYYYMMDD
rm -f opentaalLV.dump.YYYYMMDD
gunzip -c opentaalOogst.dump.YYYYMMDD.gz>opentaalOogst.dump.YYYYMMDD
mysql -umysql -p opentaalOogst<opentaalOogst.dump.YYYYMMDD
rm -f opentaalOogst.dump.YYYYMMDD

Webserver inclusief geoogste zinnen

Elke nacht om 0:05 door root (wordt beheerd door NTG) de backup gestart vanuit:

/local/etc/backup-opentaal
die om ongeveer 04:25 klaar is.

Tijdens het maken van de backup zal er op deze locatie een lock file staan:

/var/www2/opentaal.nl/data/htdocs/opentaalbank/backup.is.running
Deze wordt gebruikt door andere nachtelijk cronjobs van OpenTaal die pas starten als de database backup klaar is. Zie ook Beheer en De techniek achter OpenTaal. Jobs die deze lockfile gebruiken zijn:

  • distributedHarvester/overzetten_02/transfer.sh
  • cron-harvest.sh
  • cron-hourly.sh
  • cron-harvest-process.sh
  • nightjob.sh

De backup van afgelopen nacht en van de dacht ervoor komen hier te staan:

/backup/opentaal-backups/

Deze bestanden zien er zo uit:

backup-opentaal.nl-YYYYMMDD-0005.tar.gz (~27 GB, document root werbserver met geoogste zinnen)
index-backup-opentaal.nl-YYYYMMDD-0005.tar.gz (~2.7 MB, ASCII bestand met log van welke bestanden er in de backup zitten)

Let op: Dit zijn de enige twee back-ups die er van de database bestaan! TODO Er zal eens in de ?? dagen ook een back-up op een andere machine gemaakt moeten worden!

Home-directory's

Door root (wordt beheerd door NTG) wordt om vier over half elf 's avonds deze cronjob uitgevoerd

# make a backup of all disks
43 22 * * *             /local/etc/mk-backup
en alle home directory's in /home worden hierdoor geback-upt.

Let op: Er is alleen een back-up van de vorige dag beschikbaar. Belangrijke software moet in onze subversion versiebeheer worden opgeslagen en belangrijke data in de database of in document root van de webserver!

Legacy

Onderstaande documentatie moet worden opgeruimd of een juiste plek in bovenstaande paragrafen worden gegeven.

Voorbeeld:

#!/bin/bash

# Variabelen
DIR2BACKUP=/home/bob/

BACKUP_DOW=`date +%w`
BACKUP_TS=`date +%Y%m%d-%H%M.%S`

ZIPFILE=backup-$BACKUP_TS.zip

## Extra voorbeeld:
# back-up van xml-bestanden de afgelopen 4 dagen = -4
# find $DIR2BACKUP -ctime -4 -type f -name "*.xml" -exec zip -m $ZIPFILE {} \;

# back-up van de afgelopen dag
#find $DIR2BACKUP -ctime -1 -type f -exec zip -m $ZIPFILE {} \;
# Ruud: moet zijn:
find $DIR2BACKUP -mtime -1 -type f -exec zip $ZIPFILE {} \;

# mailen van bestanden
# Ruud: incrementals en full zijn hier echt te groot voor!
#unzip -l $ZIPFILE | mutt -a $ZIPFILE -s "[OpenTaal] back-up $DATE" bob.vandeloo@opentaal.org

off-site back-up MySQL

Draft

#!/bin/bash

# maandag en vrijdag om 22h
# => mysql za, zo, wo, do, 4x 11GB
# => zinnen ma, vr; 2x 30GB

# host settings
SSH_HOST=bob@balder.ntg.nl
SSH_PORT=22
TARGET_BACKUP=/media/multimedia/opentaal

# Datums
# Voor zinnen
DATE_0=`date +%Y%m%d`
# Voor MySQL db's
DATE_1=`date --date="1 days ago" +%Y%m%d`
#DATE_2=`date --date="2 days ago" +%Y%m%d`

# rsync options
# -C is niet nodig, data is al gecomprimeerd. Dan duurt het alleen maar langer ;-)
RSYNC_OPTIONS="-e 'ssh -p $SSH_PORT' -auv" 

# MySQL back-ups
echo "rsync $RSYNC_OPTIONS $SSH_HOST:/backup/mysql-dumps/[Oo]pentaal*$DATE_1.*    $TARGET_BACKUP/mysql/" 
if test $DATE_2
then
    echo "rsync $RSYNC_OPTIONS $SSH_HOST:/backup/mysql-dumps/[Oo]pentaal*$DATE_2.*    $TARGET_BACKUP/mysql/" 
fi

# Zinnen back-ups
echo "rsync $RSYNC_OPTIONS $SSH_HOST:/backup/opentaal-backups/*-$DATE_0-*     $TARGET_BACKUP/zinnen/"