MySQL

Aus FAQ-vServer

Wechseln zu: Navigation, Suche

Datenbankserver MySQL

Finetunig

Bevor an der my.cfg rumgeschraubt wird, sollte man sich erstmal die Ursachen ansehen, warum ein Datenbankserver plötzlich zu lahmen beginnt.

Siehe hierzu die sehr guten Ausführungen von Thomas Schefter!

Aus Gründen der Ursachensuche haben wir jetzt auf dem gemeinsamen MySQL-Server folgende Einträge verändert und werden von Zeit zu Zeit Auszüge der Logs an die Besitzer der Datenbanken senden:

log_slow_queries        = /var/log/mysql/mysql-slow.log
long_query_time = 3
log-queries-not-using-indexes


Backup mit MySQLDump

Das Tool mysqldump ist Bestandteil von MySQL.

Hier ein einfaches Script, weilches zB. in einen Cronjob eingebaut werden kann:

db:~# cat /root/bin/dump-mysql.sh
#!/bin/bash

## dump-mysql.sh
#  Einfaches Skript, um Datenbanken zu sichern
#  Andreas Appenheimer, 2008
#  enthaelt: Fehlerabfangroutine, um Datenbanken zu erkennen
#            Backupstrategie um Backups zu rotieren


DUMP="mysqldump --skip-opt --add-drop-table --add-locks -C --hex-blob --extended-insert" #-u <Benutzer> -p <Passwort>
WORKDIR="/var/lib/mysql"
BACKUPDIR="/var/backup/mysql"
DATUM=`date +%F-%H-%M`

## Check Verzeichnisse
for DB in `ls $WORKDIR` ; do
  if [ -d "$WORKDIR/$DB" ]; then
    if [ -d "$BACKUPDIR/$DB" ] ; then
      echo "check!"
    else
      mkdir $BACKUPDIR/$DB
    fi
  fi
done

## Rotate Backups
#for BACKUP in `ls $BACKUPDIR` ; do
#  echo ""
#done

## Dump Databases
for DB in `ls $WORKDIR` ; do
  echo "$DB is a Database?"
  if [ -d "$WORKDIR/$DB" ] ; then
    echo "database found: $DB"
    $DUMP $DB > $BACKUPDIR/$DB/$DATUM.sql
#  else
#    echo "not a database"
  fi
done

Viel Spaß

Persönliche Werkzeuge