Backup säkerhetskopiering
Revision:2020-09-21
  1. Översikt
  2. Daglig backup på server
  3. Löpande backup
  4. Kopiering av backupfiler till extern server
  5. Start av backupscript
  6. Script för daglig backup
  7. Script för backup av databaser
  8. Kopiering till extern server
  9. Kontroll att datbasserver är i drift
  10. Kontroll av databasvolymer
  11. Använda backupdatabaserna

Översikt

    En SystemQ-server har minst 3 skivminnen

  1. root-disk
      Innhåller:
    1. operativsystemet och program
    2. /testdatabas
  2. disk2
      Innhåller:
    1. /disk2/data
    2. /disk2/databas
  3. disk3
      Innhåller:
    1. /disk3/backup/klient/data
    2. /disk3/backup/klient/databas

Det innebär att vi har 2 aktuella versioner av databaser på fristående skivminnen
Dessutom finns 1 testversionversion på root-disken
Se även Kopiering till extern server

Daglig backup på server

Daglig on line backup på server som är schemalagd och körs av cron
Under backupkörning kan SystemQ användas normalt

    Sker i följande steg:

  1. Flyttar forward-loggfiler till /disk3/backup/databas/old_fwlog för att lämna plats åt ny logfil
  2. Sätter databasen i on line backup mode
  3. Kopierar databas-filerna från /disk2/databas till /disk3/backup/databas/
  4. Stoppar on line backup mode
  5. Komprimerar loggfiler som ligger i /disk3/backup/databas/old_fwlog och lagrar resultatet i /disk3/forwardlog

    Dessa filer innehåller samtliga transaktioner som skett mot databasen. Dessa kan analyseras i detalj vad som hänt

  6. Kopierar konfigurationsfiler till /disk3/backup/etc som underlättar byte till ny server

Löpande backup

  1. Alla transaktioner som görs mot databasen lagras i loggfiler, db-forward-3851-1.log. Om servern slutar att fungerar på ett onormalt sätt, kommer vid återstart dessa ändringar tillsammans med den dagliga backuppen återställa databasen till status just innan servern stoppats.
  2. Backup av konfiguration sker till /disk3/backup/qwert/konfig

    Dessa mappar skapas med /opt/SystemQ/sh/mk-konfig-dir.sh

    Script som kopierar backup-konfig.sh

  3. Under dagen finns dessa logfiler i /disk3/backup/databas
  4. Se även Database Forward-Logging

Kopiering av backupfiler till extern server

    Säkerhetskopieringen sker i 2 steg.

  1. I det första kopieras databaserna till /backup-mappen som skall ligga på ett annat skivminne, /disk3.

    Det första steget sker genom att cron utför ett backupscript.

  2. I det andra överförs filerna till en annan server över Internet.

    Det andra sker med programmet rsync som startas på den externa server som där säkerhetskopian lagras av cron. Detta sker ofta genom att säkerhetskopiorna kopieras till Qwerts server

Konfigurering och start av backupscript

  1. vi /root/root/backup_qwert.sh

    Finns flera databaser skapas ett script per databas

    I filen anges namn på mappar för databaser mm.

  2. vi /root/cronjobb.root

    filen skall innehålla en rad med:

    # minute hour day month weekday command
    # --------------------------------------------------------------------------
        3     21   *    *     1-7    /root/backup_qwert.sh 
    
  3. Scriptet aktivera med kommandot:

    crontab /root/cronjobb.root

    filen /root/cronjobb.root skall innehålla en rad

Script för daglig backup

  1. filen /root/root/backup_qwert.sh startas av cron
      Scriptet har följande delar
    1. Namn på databasen och backuppen mappar
    2. Startar scriptet /opt/SystemQ/sh/backup_83.exe.sh som utför backuppen
    3. Kopiering va datafiler till /disk3/backup/qwert/data
    4. Kopiering av /root till /disk3/backup/qwert/. Här finns script för backupper m.m.
    5. Kopiering av /etc till /disk3/backup/qwert/. Här finns alla konfigurationsfiler
    6. Kopiering av /var/named med inställning av lokal DNS
    7. Kopiering av filer som normalt behöver anpassas vid installation av en SystemQ-server
    8. Tar bort temporära filer
  2. filen /root/root/backup_qwert.sh :
                                        
    #----------------------------------------------------------
    # Placera filen i /root
    # schemalÃ~Lg backuppen i crontab med start kl 21:00:
    # minute hour day month weekday command
    # --------------------------------------------------------------------------
    # 0         21   *    *      *    /root/backup_qwert.sh
    #----------------------------------------------------------
    #
    BACKUP_LOG="/var/log/backup.log"
    OLD_FWLOG="/disk3/backup/qwert/databas/old_fwlog"
    BACKUPFOLDER="/disk3/backup/qwert"
    BACKUPDB="$BACKUPFOLDER/databas"
    DBFOLDER="/disk2/databas/qwert"
    DBVOLNAME="data"
    GARDAGEN="eloqdb83@test.service"
    TESTFOLDER="/testdatabas/qwert"
    FWFOLDER="$BACKUPFOLDER/forwardlog/"
    NAMED="/var/named/"
    SERVER="8800"
    ELOQBIN="/opt/eloquence/8.3/bin"
    ELOQCFG="/etc/opt/eloquence/8.3/eloqdb.cfg"
    ELOQCFGTEST="/etc/opt/eloquence/8.3/eloqdb-SQGAR.cfg"
    ELOQINIT="/etc/init.d/eloq83"
    
    export BACKUP_LOG OLD_FWLOG BACKUPFOLDER BACKUPDB DBFOLDER DBVOLNAME GARDAGEN TESTFOLDER FWFOLDER NAMED SERVER ELOQBIN ELOQCFG ELOQCFGTEST ELOQINIT
    
    
    /opt/SystemQ/sh/backup_83.exe.sh
    
    #/bin/cp -rup /disk2/data /disk3/backup/qwert/
    rsync -auzv --delete-after 192.168.30.4::Data/ /disk3/backup/qwert/data
    rsync -auzv --delete-after 192.168.30.4::WWW/ /disk3/backup/qwert/www
    #/bin/cp -rup /var/www/qwert  /disk3/backup/qwert/www
    /bin/cp -rup /root  /disk3/backup/qwert/
    /bin/cp -rup /etc  /disk3/backup/qwert/
    /bin/cp -rup /var/named  /disk3/backup/qwert/
    
    /bin/cp -rup /etc/opt/eloquence/8.3/*  /disk3/backup/qwert/konfig/eloq/
    /bin/cp -rup /usr/lib/systemd/system/eloq* /disk3/backup/qwert/konfig/systemd/
    /bin/cp -rup /root/cro* /disk3/backup/qwert/konfig/root
    /bin/cp -rup /root/*sh /disk3/backup/qwert/konfig/root
    /bin/cp -rup /etc/samba/smb.conf /disk3/backup/qwert/konfig/
    /bin/cp -rup /etc/passwd /disk3/backup/qwert/konfig/
    /bin/cp -rup /etc/group /disk3/backup/qwert/konfig/
    /bin/cp -rup /etc/rsyncd.conf /disk3/backup/qwert/konfig/
    /bin/cp -rup /etc/httpd/conf.d/* /disk3/backup/qwert/konfig/httpd/conf.d/
    /bin/cp -rup /etc/httpd/conf/httpd.conf /disk3/backup/qwert/konfig/httpd/conf/httpd.conf
    /bin/cp -rup /etc/vsftpd/* /disk3/backup/qwert/konfig/vsftpd/
    /bin/cp -rup /etc/mail/* /disk3/backup/qwert/konfig/mail/
    /bin/cp -rup /etc/aliases /disk3/backup/qwert/konfig/
    /bin/cp -rup /etc/fstab /disk3/backup/qwert/konfig/fstab-mall
    
    chmod -R 777 /disk3/backup/qwert/
    
    rm -rf /tmp/WOR*
    rm -rf /tmp/PD*
    rm -rf /tmp/*pdf
    /bin/cp -rup /tmp/elo* /tmp/old_eloq/
    #rm -rf /tmp/elo*
    rm -rf /tmp/err*
    rm -rf /var/www/qwert/xls/*
    #echo '' > /var/log/eloqsd.log
    exit
    
    
     
    
    df -h >> /var/log/backup/backup.log
    
    echo "Utförlig log över backup finns i mappen /var/log/backup/:" >> /var/log/backup/backup.log
    ls -l /var/log/backup/*  >> /var/log/backup/backup.log
    
    mail -s "backup `date` på `hostname`"  gbk@cyberstore.se  < /var/log/backup/backup.log
    
    
    

Script för backup databaser

    Filen /opt/SystemQ/sh/backup_83.exe.sh utför följande steg

  1. Skriver inställningar till logfil
  2. Flyttar db-forward-loggfiler
  3. Starting on line backup
  4. Tar bort gammal backupper
  5. Kopierar databasvolymer till backup-mapp för databaser
  6. Avslutar on line backup
  7. Komprinerar db-forward* filer och lägger resultatet i mapp för forwardloggar
  8. Uppdaterar "Gårdagens databas" som kan användas för tester
    1. Stoppar Gårdagens databas
    2. Kopierar dagen backup till Gårdagens dtabas
    3. Startar Gårdagens databas

Kopiering till extern server

  1. Konfigurering på lokal server
    1. Filen /etc/rsyncd.conf
    2. Källa som kan hämtas med rsync
      [BACKUPQWERT]
      path = /disk3/backup/qwert
      read only = no
      hosts allow = 192.168.26.4 192.168.39.4  
                                                  
  2. Konfigurering på extern server
    1. Filen /root/rsync-qwert
                                                    rsync -auvz  --delete-after 192.168.39.4::BACKUPQWERT/ /disk3/backup/qwert_systemq06/ 2>>/disk3/backup/qwert_systemq02_rsync.msg 
                                                 
    2. Filen /root/cronjobb.root.systemq skall ha raden:
                                                    */18         8-23   *    *      *     /root/rsync_qwert_systemq06
                                                 

    Detta innebär att den externa servern har en kopia som max 18 minuter gammal
    rsync kopierar endast förändringar varför den inte ger nämnvärd belastning på nätverket

Kontroll av databasvolymer

  1. Stoppa databasen med
                                         # systemctl stop eloqdb.service
                                         

    Du kan ha flera databaser som då har egna services-filer

  2. /opt/eloquence/8.3/bin/dbfsck
  3. Starta databas med systemctl start eloqdb.service