Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich einen MySQL-Dump verlangsamen, um die aktuelle Auslastung des Servers nicht zu beeinträchtigen?

Ich habe sehr große Datenbanken mit Zehntausenden von Tabellen, von denen einige bis zu 5 GB Daten in 10 Millionen Einträgen enthalten. (Ich betreibe einen beliebten Dienst) ... Ich hatte immer Kopfschmerzen beim Sichern dieser Datenbanken. Mit dem standardmäßigen mysqldump bringt es die Serverlast schnell außer Kontrolle und sperrt alles ... was meine Benutzer betrifft. Der Versuch, den Prozess zu stoppen, kann zu abgestürzten Tabellen und vielen Ausfallzeiten während der Wiederherstellung dieser Tabellen führen.

Ich benutze jetzt...

mysqldump -u USER -p --single-transaction --quick --lock-tables=false DATABASE | gzip > OUTPUT.gz

Die mysqldump-Referenz bei dev.mysql.com sagt sogar...

Sagt nichts darüber aus, dass ich davon abhängig bin, dass die Datenbank InnoDB ist, meine sind myISAM und das hat wunderbar für mich funktioniert. Die Serverlast blieb fast vollständig unbeeinflusst und mein Dienst lief während des gesamten Vorgangs wie eine Rolex. Wenn Sie große Datenbanken haben und deren Sicherung Ihren Endbenutzer beeinträchtigt, ist dies die Lösung.;)