Sehr schönes Reel von Motiondesigner Menno Fokma.
-
MySQL Backup Strategien: LVM-Snapshots
Master – Slave mit LVM Vorteile Restorezeit ist wesentlich geringer bei großen Datenbanken und vielen Indexen (abhängig von Lese- und Netzwerggeschwindigkeit). Geringe Ausfallzeit des Servers – keine Ausfallzeit des Arbeitsbetrieb Der Master kann unbeeinträchtigt seine Arbeit vortsetzen. Nachteile “Eben mal” eine Tabelle oder Daten zurückspielen geht nicht, hierzu müssen wir ein kompletten Restore auf ein...
-
Okami WordPress Theme
Nach ein wenig “Herumprobieren”, ist die Roadmap gesteckt und somit ist heute auch die Beta Version 0.2.3 vom okami Theme fertig. Wichtige Kriterien für mich, sind immer noch neben dem komfortablen Umgang mit der Seite, Ladezeiten (bei DSL 1000 unter 1 Sekunde) und der Verwendung von so wenig wie möglichen grafischen Elementen, sowie Javascript. Okami ist ein 2 Spalten WordPress Theme(+2.7), voll widgetfähig mit...
-
MySQL – Recovery
Letztens bekam ich kurzzeitig einen Herzaussetzer, weil ich beim Restore des Datenbankbackups (LVM) bemerkte, dass doch die ib_logfiles nicht mit zurückgesichert wurden. Nachdem ich kurz nachgeschaut und fetsgestellt habe, dass die im Standardverzeichnis unter /var/lib/mysql herumdümpelten und nicht auf dem Logical Volume wo sie gesichert werden, wurde es erstmal finster ums Hirn. Hmm das passiert und zwar jeden Tag und wenn es solche Momente...
-
Replikation mit MySQL 5.x
Master – Slave Replikation: Szenario: Replikation aller Datenbanken eines Server zu Backupzwecken auf einen weiteren Server. Achtung: Dies kann auch erreicht werden, indem wir eine zusätzliche Instanz auf unseren vorhanden Server einrichten. Zunächst müssen wir sicherstellen, dass in der my.cnf folgende Einträge wie folgt vorhanden sind: #bind-address = 127.0.0.1 muss auskommentiert werden, damit die MySQL Instanz auf den...
- Jun
- 07
- 2010
Video der Woche: Lizzie Oxby – Extn.21
Mal wieder ein paar schöne Sequenzen(leider nicht der ganze Kurzfilm) von Lizzie Oxby ,mehr gibt es bei vimeo zu finden. Ihre Arbeiten sind immer wieder ein Genuss, immer irgendwie anders und vor allem kein Mainstreamtrash. Ihre Seite kann man auch nur empfehlen, da gibt es jede Menge weitere Makings- und Kurzfilme ….
Extn.21 – extract from Lizzie Oxby on Vimeo.
- Jun
- 07
- 2010
MySQL – Shell Script Optimize über alle Tabellen
Da es keinen Befehl gibt, wo man in allen Datenbanken gleich alle Tabellen optimieren kann, hier mal ein Script zum erleichtern …
#!/bin/bash
for db in $(echo "SHOW DATABASES;" | mysql -u$1 --password=$2 | grep -v -e "Database" -e "information_schema")
do
TABLES=$(echo "USE $db; SHOW TABLES;" | mysql -u$1 --password=$2 | grep -v Tables_in_)
echo "Switching to database $db"
for table in $TABLES
do
echo -n " * Optimizing table $table ... "
echo "USE $db; OPTIMIZE TABLE $table" | mysql -u$1 --password=$2 >/dev/null
echo "done."
done
done
- Jun
- 07
- 2010
Collateral Murder Video Leaker wurde festgenommen
Wahrscheinlich haben wir es SPC Bradley Manning(22) zu verdanken, dass die Öffentlichkeit mitbekommt, was bei einem militärischen Einsatz der Amerikaner so läuft. Dass dies kein Einzelfall ist und dass die Verantwortlichen nicht zur Rechenschaft gezogen werden, ist uns allen schmerzhaft nur zu bewusst geworden. Die Amerikaner spielen Weltpolizei und das in autistischer John Wayne Manier. Den Amerikaner an dieser Stelle Einhalt zu gebieten sollte auch unser ureigenstes Anliegen sein, denn wir sind auf dem besten Wege, uns genau in die selbe Richtung zu entwickeln.
Das wird Bradley Manning, insofern er wirklich für die Weiterleitung des Videos an Wikileaks verantwortlich ist, nicht weiterhelfen, ihm werden sie den Prozess machen, dass ihm hören und sehen vergeht. Nach seiner Verhaftung am gestrigen Tage, hat er sich auch noch für den Leak des Garani air strike Videos und für die Übermittlung von 260.000 als classified gekennzeichneten diplomatischen Telegramme, die er selber als “almost criminal political back dealings” bezeichnet, verantwortlich gezeigt. via wired.com
Update: “Erwischt” hat man ihn, weil er einem Ex Hacker Adrian Lamo gegenüber das große Mundwerk gehabt hat, für die Leaks verantwortlich zu sein. Was ihm, wenn das der Realität entspricht zu einem riesen großen Deppen macht. Sogenannte Ex-hacker in USA sind mal classified mit ich hab meinen Arsch ans FBI verkauft. So wirklich sicher ob das alles stimmt, ist man sich auch nicht, die Verschwörungstheoretiker vermuten eine PR – Kampagne des US – Militärs gegen Wikileaks dahinter.
Update: Wie sich herausstellt ist Poulson auch derjenige, der kürzlich in Wired diese Propaganda Story gebracht hatte, dass Wikileaks ihre Informationen illegitim aus Tor – Sniffing erlangt hätten, was sowohl Tor als auch Wikileaks dementieren.
Update: Wikileaks dementieren mittlerweile, dass Sie 260.000 dipl. Botschaftsnachrichten bekommen haben, genauso wie Sie über ihre Quellen keine Aussagen treffen können, weil Sie keine Informationen über die sammeln. Sieht somit summa summarum entweder nach einem Fake der US Amerikaner und nach einem ziemlich doofen Mannigan aus oder nach einem PR Gag. Letzterer wurde ja schon in einem Papier, welches bei Wikileaks geleaked wurde, angekündigt, mit aller Macht die Glaubwürdigkeit und Integrität des Portals zu untergraben. Darüber hinaus erklärt die Washington Post, sie sei 2 Jahre lang im Besitz des Videos gewesen, nur habe es dies nicht veröffentlicht. Da sieht man mal was man von gleichgeschalteten Medien hat, bei uns wäre das genauso passiert, nur hier bezahlen wir dafür, dass sie uns informieren!
- Jun
- 06
- 2010
Deus Ex 3 – Human Revolution
Für bekennende Killerspielespieler endlich mal wieder eine gute Nachricht, es gibt Futter aus der Eidos Schmiede zum sabbern … der Deus Ex 3 Trailer ist draussen!
Und dann erwartet uns ja dieses Jahr auch noch Force Unleashed 2 und CoD Black Operations, naja CoD ist noch nie mein Fall gewesen, aber es sieht gut aus!
- Jun
- 03
- 2010
MySQL Backup Strategien: LVM-Snapshots
Master – Slave mit LVM
Vorteile
- Restorezeit ist wesentlich geringer bei großen Datenbanken und vielen Indexen (abhängig von Lese- und Netzwerggeschwindigkeit).
- Geringe Ausfallzeit des Servers – keine Ausfallzeit des Arbeitsbetrieb
- Der Master kann unbeeinträchtigt seine Arbeit vortsetzen.
Nachteile
- “Eben mal” eine Tabelle oder Daten zurückspielen geht nicht, hierzu müssen wir ein kompletten Restore auf ein weiteres System durchführen, um dort mittels mysqldump die Daten zu extrahieren.
Szenario:
Wir benötigen mindestens 2 MySQL Instanzen die miteinander replizieren, damit verringern wir die Ausfallzeit auf 0. Also jedes beliebige Master – Slave oder Master – Master Szenaria, wobei wir am besten einen Slave für das Backup einrichten. Die Slave Instanz kann sich durchaus, wenn es Plattenplatz, CPU, RAM sowie die IO Werte zulassen, auf dem selben Host befinden. Eine Anleitung wie man eine Replikation aufsetzt findet man hier. Natürlich funktioniert das Ganze auch ohne Replikation, allerdings hat man dann, je nach Datenbank, eine Ausfallzeit von 10s – x Minuten. Wichtig, die my.cnf muss so angepasst werden, dass sich die Daten auf einem Logical Volumen (LVM) befinden. Darüber hinaus benötigen wir in der Volumengroup genügend Restplatz, damit uns der Snapshot nicht während des Backups vollläuft. Hier gibt es keine Faustformel das muss man einfach ausrechnen oder probieren.
In meinen Augen hat es sich relativ nützlich erwiesen die Konfiguration der MySQL Instanz wie folgt aufzugliedern:
- Das LV wird in ein Verzeichnis gemountet, beispielsweise /data.
- Unterhalb dieses Verzeichnisses werden unterschiedliche Verzeichnisse für binlogs, relaylogs, tmp, data sowie error und slowlog angelegt.
Das vereinfacht das Sichern insofern, dass wir hier nur bestimmte Verzeichnisse wegsichern müssen. Es ist auch keine schlechte Idee auf dem Slave das Binlog zu aktivieren und diese ebenfalls zu sichern (z.B. stündlich), damit wir ein sogenanntes Point in Time Recovery machen können (wird an einem späteren Zeitpunkt abgehandelt). Unsere my.cnf sieht dann an den entsprechenden Punkten wie folgt aus:
relay-log = /data/mysql-relaylog/relay.log relay-log-info-file = /data/mysql-relaylog/relay-log.info relay-log-index = /data/mysql-relaylog/relay-log.index log_error = /data/mysql-log/mysql.err log-slow-queries = /data/mysql-log/slow_queries.log log_bin = /data/mysql-binlog/mysql-bin.log innodb_log_group_home_dir = /data/mysql-data innodb_log_arch_dir = /data/mysql-data innodb_data_home_dir = /data/mysql-data datadir = /data/mysql-data
Für den Fall, dass wir einen weiteren Slave oder Master wieder herstellen müssen, benötigen wir noch die Postion und das Binlogfile, damit wir die Replikation an diesem Punkt wieder aufsetzen können. Im Prinzip gehen wir im weiteren wie folgt vor: wir stoppen den MySQL Dienst, dann ermitteln wir Binlog File und Position des Masters, legen einen Snapshot an, starten den MySQL Dienst und dann können wir das Backup vom Snapshot starten. Das Vorabscript für den Backup Dienst könnte wie folgt aussehen – bitte beachten, die Pfade und Variablen an die eigene Umgebung anpassen (Volumen und Volumengroupbezeichnungen zum Beispiel).
#!/bin/sh
# Groesse des Snapshots
GROESSE=20G
# Name des Snapshot
NAME=mysql-backup
# Geraetedateiname
# hier das LVS anpassen
GERAET=/dev/db/data
# Mount-Punkt
MOUNT=/backup
# Spiegelgeraet
SPIEGEL=/dev/db/mysql-backup
# Stoppe Datenbank
echo
echo "Shutting down lively database `date`"
echo
/etc/init.d/mysql stop
#gegebenen Fall diesen Wert anpassen, wenn die Datenbank länger braucht
sleep 3
# Erzeuge Restore Daten für Master - Master
name=$(tail -1 /data/mysql-binlog/mysql-bin.index)
size=$(stat -c '%s' ${name})
echo "binlog Position $name $size" > /data/mysql-data/db_restore.info
# Erzeuge Spiegel
lvcreate --size $GROESSE --snapshot --name $NAME $GERAET
ERGEBNIS1=`echo $?`
if [ $ERGEBNIS1 -ne 0 ]; then
echo
echo
echo " -- F E H L E R -- "
echo
echo " Starte Datenbank ohne Backup `date`"
echo
echo
/etc/init.d/mysql start
exit 22
fi
sleep 3
# starte Mysql wieder
echo
echo "Restarting lively database `date`"
echo
/etc/init.d/mysql start
# pruefe auf mount und mounte Spiegel oder exit
mount | grep /backup
ERGEBNIS2=`echo $?`
if [ $ERGEBNIS2 -eq 0 ]; then
echo
echo
echo " -- F E H L E R -- "
echo
echo " Der Mount besteht bereits"
echo
echo
exit 23
else
mount -o ro $SPIEGEL $MOUNT
fi
exit 0
Das Resultat an dieser Stelle sollte ein Read only eingemounteter Snapshot unter /backup sein. Dem Backup Programm weisen wir jetzt nur noch an, die Verzeichnisse:
/backup/mysql-data /backup/mysql-relaylog
zu sichern.

Letzte Kommentare