sql dump von datenbank im image einer platte
wergor 25.08.2021 - 13:11 4659 7
wergor
connoisseur de mimi
|
die system-ssd meines servers hat die letzten monate immer wieder probleme gemacht, ich habe sie vor ein paar wochen gegen eine neue ausgetauscht aber vergessen von der nextcloud datenbank einen dump zu erstellen jetzt habe ich endlich zeit das zu fixen, aber der server erkennt die alte ssd nicht mehr, ich kann also nicht einfach davon booten und einen dump ziehen. ich habe aber wöchentlich mid dd images der ssd gezogen, auf die habe ich noch zugriff. jetzt stellt sich mri die frage: was wäre der einfachste weg um aus einem der dd images einen dump der datenbank zu ziehen? image mit dd auf eine andere ssd / usb stick schreiben und hoffen dass es bootet? oder gibt es einen eleganteren weg? aktuell läuft ubuntu 20.04lts am server, virtualisierung hab ich mir noch nie angeschaut.
|
COLOSSUS
AdministratorGNUltra
|
Du willst dem Image mit `kpartx` ein Mapping auf partitionierte loopback-Devices entlocken, und dann das Dateisystem auf der so verfuegbaren Partition mounten. Von dort kopierst du die Datei dann runter - fertig. Etwa so (root required): kpartx -a /pfad/zum/image
mount -o ro /dev/loop0p.... /mnt/
cp /mnt/.... /home/...
umount /mnt/
kpartx -d /pfad/zum/image
|
wergor
connoisseur de mimi
|
danke, das versuche ich heute abend kann ich dann einfach den ganzen /var/lib/mysql/nextcloud ordner kopieren (wo die ganzen .opt, .frm etc files drin liegen) oder muss ich mysql sagen es soll die datenbank an dem pfad dumpen und den dump dann normal importieren?
|
COLOSSUS
AdministratorGNUltra
|
Um das zu beantworten, hab ich leider nicht genug MySQL/MariaDB-Erfahrung, sorry. Probieren kannst du es mit der Holzhammer-Kopie-Methode, aber falls da noch wichtige Metadaten fuer die/von der DB in irendwelchen anderen Dateien herumkugeln, bringt dir das wohl nix. Ich wuerde es so versuchen, das /-Volume und alle anderen notwendigen Dateisysteme dieses Images relativ dazu zu mounten (auch z. B. in /mnt - dann aber rw, nicht ro/readonly), und mit systemd-nspawn einen Container daraus zu spawnen. In dem Container kannst du dann das mysql-Service starten, und ganz normal mit der DB interagieren (z. B., um einen Dump zu ziehen). Vgl. https://wiki.archlinux.org/title/Systemd-nspawn fuer mehr Infos dazu.
|
bsox
Schwarze Socke
|
kann ich dann einfach den ganzen /var/lib/mysql/nextcloud ordner kopieren (wo die ganzen .opt, .frm etc files drin liegen) oder muss ich mysql sagen es soll die datenbank an dem pfad dumpen und den dump dann normal importieren? Ich habe beim Umzug meiner Nextcloud Instanz auf einen anderen Server (in dem Fall Container) auch die MariaDB Files kopiert. Allerdings war da auf Quell- und Zielsystem jeweils das MariaDB Service gestoppt. Die Daten so zu kopieren geht auf jeden Fall 10x schneller als Dump/Import.
|
nexus_VI
Overnumerousness!
|
Erfolg der Holzhammer Methode hängt von den MySQL/MariaDB Versionen auf den Servern ab, sind diese (annähernd) gleich kann man das schon so machen.
Sauberer ist jedoch ein Dump & Import, das dauert auch nicht arg lang und ist mit Einzeiler mit SSH kombinierbar.
|
davebastard
Vinyl-Sammler
|
kann mir auch nicht vorstellen dass die db bei so einer home server anwendung jetzt so wahnsinnig groß ist.
|
wergor
connoisseur de mimi
|
kann ich dann einfach den ganzen /var/lib/mysql/nextcloud ordner kopieren so hab ichs gemacht, hat tadellos funktinoniert
|