MySQL-Dump auf ein Netzlaufwerk schreiben
Neulich musste ich von einem Ubuntu-Serverli ab einer MySQL-DB einen Dump auf einem Netzlaufwerk erzeugen. Das Netzlaufwerk liegt auf einem CIFS-Kessel (Netapp-Filer) und kann auch per smbfs angesprochen werden. Ich tue so etwas nicht jeden Tag und deshalb schreibe ich mir das Zeug auf, sonst vergesse ich es wieder recht schnell.
Falls ein solcher Mount noch nie durchgeführt wurde, kann es durchaus sein, dass noch zwei Pakte nachinstalliert werden müssen:
sudo apt-get install samba
sudo apt-get install smbfs
Das Paket samba enthält nicht etwa den Samba-Server, sondern bloss dessen Client. Das zweite Päckli braucht es quasi als Helper, so mount das ferne Laufwerk überhaupt als Dateisystem “verstehen” kann.
Zunächst wird ein Verzeichnis auf dem lokalen Ubuntu-Server erzeugt, in das dann das ferne Verzeichnis gemountet werden kann, so zum Beispiel
sudo mkdir /mnt/dump
Danach kann das ferne Laufwerk eingehängt werden. Dazu braucht es entsprechende Benutzerdaten und allenfalls der NetBIOS-Name der Windows Domain.
sudo mount -t smbfs -o username=Domain\\User //IPoderRechnername/Freigabe /mnt/dump/
Im Prompt wird dann nach dem Kennwort gefragt, und anschliessend wird das ferne Verzeichnis lokal bei /mnt/dump/ eingehängt und ist üblicherweise per sudo beschreibbar.
Dann kann der Dump erfolgen, der recht einfach zu erstellen ist. Ich wollte alle Tabellen innerhalb der Datenbank rausgeschrieben haben, deswegen müssen die einzelnen Tabellen auch nicht explizit angegeben werden:
mysqldump DatenBankName -u root -p > /mnt/dump/DumpName.sql
root steht für den Benutzer, der auf die DB zugreifen darf. Hat alles geklappt, kann das Laufwerk wieder ausgehängt werden:
sudo umount /mnt/dump
Das war schon alles. Eigentlich ist diese Aufgabe sehr einfach zu bewerkstelligen, aber wenn man sie nicht häufig ausführt, nutzt man wohl gerne Notizen dazu.


21. Mai 2009 um 16:29:49 Uhr
Wenn man so ein SMB-Laufwerk fix einhängen will, dann kann man den mount auch in die /etc/fstab eintragen. Damit dies jedoch funktioniert, muss man beim mounten zusätzlich die Option “credentials=/home/user/.smbcred” einfügen. Die Datei würde ich mit den Userberechtigungen 0600 anlegen und hat folgenden Aufbau:
username=user
password=password
Beim “mysqldump”-Befehl würde ich noch die Option “–lock-all-tables” zusätzlich angeben. Wenn man mysql mit der myisam database-engine verwendet, so gibt es hier ja keine transactionen. Um mögliche inkonsistenz zu vermeiden, würde ich diese Option beim dumpen angeben
21. Mai 2009 um 18:57:19 Uhr
Danke für die Ergänzungen, Bernd! Mit der Erweiterung am mount Befehl müsste sich dann auch eine Laufwerk mit dem Typ CIFS einhängen lassen. Die Tabellen zu locken ist eine gute Idee!