Tagged: mysql RSS

  • Chef 09:58 on 25. February 2010 Permalink
    Tags: , mysql   

    MySQL – NDB Node ersetzen 

    Problem: Eine neue MySQL NDB Node muss für eine alte eingesetzt werden.

    Idee: Alte NDB  Node runterfahren, neue NDB Node wie die alte konfigurieren und loslegen -> geht nicht

    Lösung: Um eine NDB Node zu ersetzen muss einige Vorarbeit erfolgen. Da ich hier auf die Thematik “STORAGE ON DISK” eingehe, ist das alles nicht so einfach handzuhaben wie bei einem normalen “STORAGE MEMORY” Cluster.

    Nach Installation des Systems und Anpassung der Konfiguration (kann von der alten NDB Node übernommen werden) wird man nach einem Start von ndbd und mysqld eine Überraschung erleben. ndbd startet zwar, aber mysqld verweigert seinen Dienst.
    Zwar kann bei einer Replikation durch ndbd die DB Struktur erhalten bleiben, aber letztendlich werden nur die Binär Logs übertragen.
    Es muss also, um schnell wieder ins Rennen zu kommen, idealerweise das komplette MySQL Lib Verzeichnis (/var/lib/mysql) übernommen werden und die Besitzrechte auf mysql:mysql gestellt werden.
    Nach Neustart des ndbd und mysqld (und einigem Warten, je nach Größe der DB) läuft alles wieder wunderbar.

    Hintergrund: ndbd repliziert nur die Logs und lässt daher die DB Struktur, vor allem die Datendateien unberührt. Diese werden erst durch mysqld und den Binär Logs wieder zu einer Lauffähigen DB gemacht.

    Probleme: Es kann vorkommen das die Log Datei nicht mehr eingelesen werden kann (logfile group). In diesem Fall das Verzeichnis ndb_$NODEID_fs löschen und ndbd –initial starten.

     
  • Chef 17:21 on 6. May 2009 Permalink
    Tags: , mysql,   

    MySQL Backup 

    Nachdem ich heute eine größere Replikation über mysqldump vornehmen durfte und mir dabei die Tabellen um die Ohren geflogen sind, gibts hier ein Skript welches die kompletten MySQL Datenbanken Tablebasierend sichert.

    #!/bin/bash
    MYSQL_BAKDIR=”/var/lib/mysql/dump”
    MYSQL_HOST=”192.168.2.10″
    MYSQL_USER=”backup”
    MYSQL_PASSWORD=”geheim”

    echo -n Starting MySQL Backup
    databases=`mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -h $MYSQL_HOST -B -e “show databases” | grep -v Database`
    for db in $databases
    do
    tables=`mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -h $MYSQL_HOST $db -B -e “show tables” | grep -v Tables_`
    mkdir $MYSQL_BAKDIR/$db
    for table in $tables
    do
    mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD -h $MYSQL_HOST –single-transaction –quick $db $table > $MYSQL_BAKDIR/$db/$table.sql
    done
    done

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel

Old School is Digg proof thanks to caching by WP Super Cache