sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag sakta ner en MySQL-dump för att inte påverka nuvarande belastning på servern?

Jag har väldigt stora databaser med tiotusentals tabeller, av vilka några har upp till 5 GB data i tiotals miljoner poster. (Jag kör en populär tjänst)... Jag har alltid haft huvudvärk när jag säkerhetskopierar dessa databaser. Genom att använda standard mysqldump får det snabbt serverbelastningen utom kontroll och låser allt... vilket påverkar mina användare. Att försöka stoppa processen kan leda till kraschade tabeller och mycket stillestånd under återställning av dessa tabeller.

Jag använder nu...

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

mysqldump-referensen på dev.mysql.com säger till och med...

Säger inget om att det är beroende av att databasen är InnoDB, mina är myISAM och detta fungerade utmärkt för mig. Serverbelastningen var nästan helt opåverkad och min tjänst körde som en Rolex under hela processen. Om du har stora databaser och säkerhetskopiering av dem påverkar din slutanvändare... det här ÄR lösningen.;)



  1. PHP PDO bindParam för variabel/sträng som används för IN-sats...?

  2. Foreach or For – Det är frågan

  3. Mysql - välj år från en unix-tidsstämpel

  4. Felaktigt decimalvärde (heltal):' ' mySQL