In de basis is het mysqldump-commando dat u kunt gebruiken:
mysqldump -u$user -p$pass -S $socket --all-databases > db_backup.sql
Dat omvat de mysql-database, die alle gebruikers/privs-tabellen zal hebben.
Er zijn nadelen aan het uitvoeren van dit op een productiesysteem, omdat het vergrendeling kan veroorzaken. Als uw tabellen klein genoeg zijn, heeft dit mogelijk geen significante impact. Je zult het eerst willen testen.
Als u echter een pure InnoDB-omgeving gebruikt, kunt u de --single-transaction
gebruiken vlag die de dump in een enkele transactie zal maken (haal het), waardoor vergrendeling van de database wordt voorkomen. Let op, er zijn hoekgevallen waarbij de initiële FLUSH TABLES
commando uitgevoerd door de dump kan de tabellen vergrendelen. Als dat het geval is, sluit u de dump af en start u deze opnieuw. Ik zou ook aanraden dat als je dit voor back-updoeleinden gebruikt, gebruik de --master-data
vlag ook om de binaire log-coördinaten te krijgen van waar de dump is genomen. Op die manier kunt u, als u moet herstellen, het dumpbestand importeren en vervolgens de mysqlbinlog
gebruiken commando om de binaire logbestanden opnieuw af te spelen vanaf de positie waar deze dump is genomen.