Het mysqlpump-hulpprogramma is geïntroduceerd met MySQL 5.7 en is een sneller alternatief voor het oudere mysqldump-hulpprogramma dat in eerdere versies beschikbaar is. Hoewel het een vergelijkbare functionaliteit heeft als mysqldump, wordt het mysqlpump-hulpprogramma gebruikt om een back-up te maken van grote databases met behulp van parallellisme, dat niet beschikbaar is in het oudere mysqldump-hulpprogramma. Het kan alleen back-ups van de gehele database of een paar geselecteerde objecten vereisen.
Wat is mysqlpump?
mysqlpump, geïntroduceerd in MySQL 5.7, is een client utility dat logische back-ups uitvoert waarbij een set SQL-statements wordt geproduceerd die kunnen worden uitgevoerd om het oorspronkelijke databaseobject te herstellen. Het lost het probleem van trage back-ups in mysqldump op via ondersteuning voor parallellisme en multithreading. Sommige databases bevatten terabytes aan data, dus het exporteren van data naar een eenvoudig tekstbestand kan te lang duren. Het mysqlpump-hulpprogramma gebruikt meerdere parallelle threads om data veel sneller naar een tekstbestand over te dragen. Omdat het jaren geleden werd geïntroduceerd, hebben MySQL-databaseontwikkelaars de afgelopen jaren verbeteringen doorgevoerd om een stabieler mysqlpump-hulpprogramma te bieden en meer opties te bieden. Hoewel het sneller is, heeft het mysqlpump-hulpprogramma niet alle opties beschikbaar in mysqldump, dus het wordt alleen gebruikt wanneer beheerders een snelle export van een MySQL-database en de bijbehorende data nodig hebben.
Hoe mysqlpump te installeren
Als u MySQL 5.7 of hoger hebt, hebt u al toegang tot mysqlpump. Het nutsbedrijf wordt geleverd met de MySQL-database-engine, dus er is geen installatie nodig. Als u een eerdere versie van MySQL hebt, kunt u mysqlpump niet gebruiken, maar mysqldump is een haalbaar alternatief.
Of u nu MySQL gebruikt op Windows of Linux, het mysqlpump-hulpprogramma is beschikbaar met de MySQL-database-engine. U kunt het gebruiken door het commandoregelhulpprogramma in Windows of Linux te openen en "mysqlpump" te typen met de talrijke parameteropties om de manier waarop het hulpprogramma data exporteert aan te passen.
Basisgebruik en voorbeelden van mysqlpump
Als MySQL op uw server is geïnstalleerd, hebt u toegang tot mysqlpump vanaf de opdrachtregel. Open de opdrachtregel in Windows of Linux en u kunt een databaseschema exporteren met behulp van de volgende opdracht:
mysqlpump --all-databases --user=root --password > full_backup.sql
Met de bovenstaande opdracht worden alle databaseschema's geëxporteerd naar het bestand full_backup.sql. De gebruikersnaam en het wachtwoord die u gebruikt, moeten toegang hebben tot de databases die u wilt exporteren, dus zorg ervoor dat u een high-privilege account hebt wanneer u het mysqlpump-hulpprogramma gebruikt.
Als u al bent geverifieerd in MySQL , kunt u ook databaseschema's dumpen zonder een gebruikersnaam en wachtwoord op te geven:
mysqlpump --all-databases > full_backup.sql
Als u er de voorkeur aan geeft één database te dumpen, kunt u de volgende opdracht gebruiken:
mysqlpump myDB
De bovenstaande opdracht exporteert het databaseschema en de bijbehorende data voor myDB. U kunt meerdere databases exporteren door elke databasenaam te scheiden van een spatieteken.
Beheerders willen soms alleen specifieke tabellen binnen een database exporteren. Het dumpen van tabeldata met mysqlpump kan worden uitgevoerd met behulp van de volgende opdracht:
mysqlpump myDB Customer Order
In het bovenstaande voorbeeld exporteert het mysqlpump-statement de klant- en ordertabellen uit de myDB-database. Merk op dat de tabelnamen worden gescheiden door een spatieteken.
Bedrijfsbeheerders werken met differentiële en incrementele back-ups om te voorkomen dat ze elke keer een volledige back-up maken. Differentiële back-ups bevatten alle data die zijn gewijzigd sinds de laatste volledige back-up. Een incrementele back-up slaat alle data op die sinds de laatste back-up zijn gewijzigd, incrementeel of vol. Deze twee back-uptypes zijn niet mogelijk met mysqlpump, dus het hulpprogramma kan alleen worden gebruikt om een volledige of gedeeltelijke back-up van databases en hun objecten te maken.
Geavanceerd gebruik van mysqlpump
Het mysqlpump-hulpprogramma biedt een paar opties voor geavanceerd gebruik. De eerste is gecomprimeerde output. Voor grote databases zal het gebruik van gecomprimeerde output de hoeveelheid schijfcapaciteit verminderen die nodig is om back-upbestanden op te slaan. Het is vooral nuttig in bedrijfsomgevingen waar meerdere grote bestanden worden opgeslagen voor volledige back-ups gedurende de maand.
U moet een compressiealgoritme specificeren wanneer u mysqlpump gebruikt. U kunt LZ4 gebruiken, dat voornamelijk wordt gebruikt voor snelheid. Het zlib-algoritme is populairder bij beheerders die gzip of de zlib-wrapper gebruiken. In dit voorbeeld wordt het zlib-algoritme gebruikt om een gzip-bestand uit te voeren:
mysqlpump --compress --compress-output=zlib myDB > myDB_compressed.sql.gzip
Om compliant te blijven, moeten opgeslagen back-ups worden versleuteld. Data in rust - dat wil zeggen opgeslagen op een schijf - moeten worden versleuteld wanneer het gevoelige persoonlijk identificeerbare informatie (PII), financiële gegevens of gegevens betreft die onder de nalevingsvoorschriften vallen. In dit voorbeeld wordt de mysqlpump-opdracht omboord en gebruikt OpenSSL om versleutelde output te creëren:
mysqlpump --all-databases | openssl enc -aes-256-cbc -k yourpassword > backup.xb.enc
Een aspect van mysqlpump dat het voor beheerders nuttig maakt, is de mogelijkheid om tabellen en databases parallel te dumpen, wat betekent dat het meerdere computerprocessen kan gebruiken om data te exporteren. Zie parallelle dumps als meerdere exports die tegelijkertijd plaatsvinden in plaats van te wachten tot elk object één voor één is voltooid. Door parallelle verwerking te gebruiken, versnellen beheerders de back-upprocedure.
Om parallellisme met mysqlpump te gebruiken, moet u het aantal threads definiëren dat tijdens de export zal worden gebruikt. De standaardinstelling is twee, maar u kunt er meer definiëren. De volgende verklaring gebruikt vier threads om twee tabellen - Klant en Bestelling - uit de myDB-database te exporteren:
Mysqlpump -default-parallelism=4 myDB Customer Order > full_backup.sql
mysqlpump vs. mysqldump
De parallellisme-optie in mysqlpump is niet beschikbaar in mysqldump, zodat beheerders hogere back-upsnelheden krijgen met mysqlpump. Het voordeel van mysqlpump is snellere back-ups in een grote bedrijfsomgeving. In plaats van een paar minuten de tijd te nemen om een back-up uit te voeren, kan de parallelliteit in mysqlpump de tijd die nodig is om een back-up van data te maken naar een paar minuten verkorten.
Niet elke optie in mysqldump is beschikbaar in de nieuwere mysqlpump, en u moet ten minste MySQL 5.7 hebben geïnstalleerd om deze te kunnen gebruiken. Importeren maakt geen gebruik van parallellisme, dus u hebt niet het voordeel van snelheid om data te importeren. Beheerders kunnen ervoor kiezen om alternatieve hulpprogramma's te gebruiken voor het importeren van data.
Conclusie
Back-ups zijn een essentieel onderdeel van databasebeheer, en het mysqlpump-hulpprogramma maakt het proces veel sneller. Voor snelle back-ups van een volledige database of een paar objecten in een database exporteert mysqlpump schema's en data, versleutelt en comprimeert het en gebruikt het meerdere threads met parallellisme. Gebruik het telkens wanneer u een volledige back-up van een database moet maken of meerdere tabellen moet exporteren.