backup

Hoe maak je een mysql dump?

Naast Linux op je desktop heb je mogelijk ook nog een server draaien. Dat kan bij je thuis zijn of je maakt gebruik van een webserver bij een provider.

Mocht je bij een provider een zgn. shared website hebben dan is het meestal niet mogelijk om middels een ssh verbinding binnen te komen. Met behulp van bijv. FTP is het niet lastig om bestanden heen en weer te versturen tussen je desktop en server. Maar hoe pak je dat aan als je een backup of restore wilt uitvoeren van een op de webserver draaiende mysql database?

Hier behandel ik dan drie mogelijkheden die ik zelf heb geprobeerd. Je maakt óf gebruik van phpmyadmin, óf van je terminal of middels een script in de grafische interface (Plesk, Directadmin etc.) van je provider.

Let op: Mocht je dit willen proberen dan doe je dat voor eigen risico. En voor de goede orde, de terminal en crontab is bij mij de absolute favoriet.

PHPMYADMIN

Dit programma kan je óf zelf installeren óf je maakt gebruik van je providers DB Manager wat ook vaak een versie van phpmyadmin is. Als je database is geselecteerd kies je voor het export tabblad, kiest vervolgens voor selecteren alle tabellen en maakt in de regel gebruik van de default ingestelde waarden. Maar als je een grote database hebt draaien is het best nog lastig om die backup fatsoenlijk binnen te krijgen. Bijvoorbeeld omdat de te exporteren omvang is beperkt door de provider. Het is dan ook veel handiger om het via je terminal te doen. Daarvoor heb je wel medewerking nodig van de provider. Die moeten in hun firewall jouw IP adres vrijgeven voor mysql diensten. Je provider heeft dan waarschijnlijk wel een eis dat je zelf met een zgn. fixed IP adres moet werken. Als dat allemaal gelukt is ga je als volgt te werk:

MySQL dump maken vanuit je terminal

Open een terminal en installeer de mysql client. Onder Ubuntu 11.04 gaat dat met:

sudo apt-get install mysql-client-5.1

Vervolgens voer je in je terminal een commando in met de volgende syntax:

 

mysqldump -h DOMEINNAAM -u DATABASE_USERNAAM -pWACHTWOORD DATABASENAAM > GEWENSTE UITVOERNAAM.sql

 

De groot afgedrukte aanwijzingen pas je dus aan met je eigen gegevens. En dan gewoon in kleine letters. Let op dat de optie -p meteen wordt gevolgd door het database wachtwoord. Je zal bij het uitvoeren van deze opdracht zien dat je heel snel je database krijgt aangeleverd (in je /home/user map)

Als je dit nu wilt automatiseren dan kan je op je desktop (of op een Linux based NAS of home server) een crontab maken. Open je terminal en voer in:

 

crontab -e

 

Je krijgt dan mogelijk (bij de 1e keer) een vraag welke editor je wil gebruiken. Kies daar je eigen voorkeur (nano) en voeg helemaal onderaan het commando in zoals hierboven stond vermeld maar dan met toevoeging van de Unix tijdnotatie en het pad naar de opdracht.

Ik wil bijvoorbeeld elke nacht om 03:00 uur een dump maken en dan kies voor het commando:

 

0 3 * * * /usr/bin/mysqldump -h DOMEIN -u DATABASE USER -pWACHTWOORD DATABASENAAM > /home/USERNAAM/GEWENSTE UITVOER NAAM`date +'%Y-%m-%d'`.sql

 

Let op: De groot afgedrukte namen aanpassen aan je eigen gegevens, inclusief USERNAAM en zorg dat de ` tekens staan voor en achter dit gedeelte`date +%Y%m%d` gevolgd door de .sql extensie. De gewenste uitvoernaam wordt dan voorzien van een datumnotatie wat archivering een stuk makkelijk maakt.

Als je met Nano de regel goed hebt geplaatst save je dat bestand en verlaat de editor . Dan wordt op dat moment de opdracht klaar gezet voor uitvoer. Met het terminal commando crontab -l kan je dat overigens controleren.

MYSQL DUMP vanuit Plesk ..

Heb je bij je provider geen MYSQL toegang verkregen dan kan je de crontab (zonder de uitvoer en exportpaden) inbrengen in de in Plesk/Directadmin etc. aangeboden functieruimte. Gebruik daarvoor de documentatie van je provider want je wilt er wel voor zorgen dat de uitvoer wordt weggeschreven naar een veilige zone op je webserver óf dat de uitvoer wordt gemaild.

In een volgend artikel laat ik dan zien  hoe je een database backup weer terug kunt plaatsen met behulp van een handig script genaamd bigdump.php.

(Met dank aan Andries Filmer)

Simpel Backup Suite

Onlangs werd hier een QNAP TS-419 NAS geïnstalleerd. Met de komst van een dergelijke machine ga je natuurlijk ook nadenken over een backup strategie. Voorheen kopieerde ik de belangrijkste mappen en bestanden naar een aparte partitie van mijn harde schijf. En heel soms kopieerde ik die ook weer naar een externe harde schijf. Dat kan je niet echt een strategie noemen natuurlijk.

Daarom ben ik overgestapt naar een geautomatiseerd proces van backuppen. Hoewel dat ook prima kan met bijv. rsync heb ik een grafische frontend gebruikt: Simple Backup Suite.

Simple Backup Suite comprises of backend backup script and GNOME GUI frontends that provide a simple yet powerful backup solution for common desktop users. Simple Backup Suite comprises of backend backup script and GNOME GUI frontends that provide a simple yet powerful backup solution for common desktop users.

Installeren en configureren

Installeren is eenvoudig te realiseren via bijv. Ubuntu Softwarecentrum. Zoek naar “Configuratie van Simple Backup” en de benodige bestanden worden geinstalleerd. Daarna kan je het programma configureren via Toepassingen, Systeemgereedschap, Simple Backup-Configuration.

De opties van Simple Backup Suite spreken wel voor zich. Ik heb gekozen voor een volledige backup om de 30 dagen en verder wordt er dagelijks een incremental backup gemaakt. Uiteraard heb ik vervolgens de belangrijkste mappen gekozen waar mijn data én instellingen worden bewaard. Denk dan aan bijv. Documenten, maar ook aan de (onzichtbare) mappen voor applicaties zoals bluefish, xchat, thunderbird etc.

Wat ik alleen even moest uitzoeken was de manier om dat naar mijn NAS te laten stromen. Maar dat bleek ook niet lastig te zijn. Op mijn QNAP heb ik het FTP protocol actief gemaakt. Ik gebruik die alleen intern, want de poort is niet naar buiten open gezet. (Je kan natuurlijk ook ssh gebruiken).

Door nu de juiste verwijzing te maken wordt volautomatisch iedere dag de backup gedraaid. Dat gaat snel en geruisloos en dat maakt het leven weer een heel stuk prettiger (en veilig)

Maak een lijst van je geïnstalleerde pakketten

Heb je wel eens Ubuntu opnieuw moeten installeren? Kan altijd een keer gebeuren en op zich is dat snel genoeg uitgevoerd. Maar je moet dan wel weer alles zien terug te krijgen. In de loop der maanden installeer je nou eenmaal van alles en nog wat om je heen.

Om vooral die situatie snel op te kunnen lossen is het gebruik van dpkg een uitkomst.

dpkg is the software at the base of the Debian package management system. dpkg is used to install, remove, and provide information about .deb packages.

Alles wat je hoeft te doen is het uitvoeren van dit commando:

dpkg --get-selections > apps.txt

Hierdoor wordt er een tekstbestand (apps.txt) in je homedir opgeslagen met daarin alle geïnstalleerde pakketten van jouw computer.

Zorg ervoor dat dit bestand veilig wordt bewaard op een usb stick of op een externe harde schijf.

Maak ook een kopie van je software bronnen. Oftewel: kopieer /etc/apt/sources.list ook naar die externe schijf of USB stick.

Als je dan opnieuw Ubuntu moet installeren dan kan je na een succesvolle install die opgeslagen bestanden terugplaatsen. Je zet dus apps.txt weer in je homedir en je plaatst je opgeslagen sources.list weer terug in /etc/apt/

Als je dat eenmaal hebt gedaan zet je dpkg aan het werk:

sudo dpkg --set-selections < apps.txt
sudo apt-get install dselect
sudo dselect update
sudo apt-get dselect-upgrade show

Het kost even tijd voor alles weer is gedownload maar na afloop staan alle gewenste pakketten op je systeem.

Er zijn natuurlijk ook andere mogelijkheden bekend die -min of meer- het zelfde doen. Denk b.v. aan het gebruik van partimage. Toch vind ik zelf deze oplossing heel gemakkelijk want het vastleggen van alle geïnstalleerde pakketten kost nog geen 30 seconden.  En als je het al  nodig zou  hebben dan is het eigenlijk ook snel uitgevoerd. Vooral als je een aparte /home partitie gebruikt want dan zijn ook alle overige instellingen en data van je Ubuntu systeem behouden gebleven

Scroll naar boven