Nicht blockierende und schnellere Datenbank-Dumps mit mysqldump

Wer Webseiten oder Online-Shops mit größeren Datenbanken betreibt wird schon festgestellt haben, dass Exporte/Backups mit mysqldump (ohne weitere Parameter ausgeführt) den Shop für die Dauer des Dumps lahm legen können. Die Seite wird im Browser so lange mit dem Ladesymbol dargestellt, bis die Datenbank wieder verfügbar ist.

Abhilfe schaffen die Parameter –single-transaction und –quick beim mysqldump Befehl.

--single-transaction

Damit wird das Isolation Level auf REPEATABLE READ gesetzt und vor dem Dump eine Transaktion gestartet. Nützlich ist das für InnoDB-Tabellen (die Transaktionen untersützten). Damit wird ein konsistenter Zustand gedumped, ohne Anwendungen dabei zu blockieren.

--quick

Damit werden die Daten aus den Tabellen zeilenweise ausgelesen und nicht als Gesamtes. Man spart damit das Puffern und erneute Schreiben.

Hier mein Gist auf Github:

https://gist.github.com/avoelkl/49563c516d6cb318eb34

2 Gedanken zu „Nicht blockierende und schnellere Datenbank-Dumps mit mysqldump

  1. Hi Willem,
    Thanks for the note! Good to know!
    We didn’t have n98-magerun installed on the db-server, that’s why mysqldump was used.

    Best regards,
    Anna

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.