sql dump von datenbank im image einer platte

Seite 1 von 1 - Forum: Linux and other OS auf overclockers.at

URL: https://www.overclockers.at/linux/sql-dump-von-datenbank-im-image-einer-platte_258550/page_1 - zur Vollversion wechseln!


wergor schrieb am 25.08.2021 um 13:11

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 :bash:
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 schrieb am 25.08.2021 um 13:35

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):

Code:
kpartx -a /pfad/zum/image
mount -o ro /dev/loop0p.... /mnt/
cp /mnt/.... /home/...
umount /mnt/
kpartx -d /pfad/zum/image


wergor schrieb am 25.08.2021 um 15:20

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 schrieb am 29.08.2021 um 09:39

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 schrieb am 29.08.2021 um 12:19

Zitat aus einem Post von wergor
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 schrieb am 29.08.2021 um 12:49

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 schrieb am 29.08.2021 um 19:25

kann mir auch nicht vorstellen dass die db bei so einer home server anwendung jetzt so wahnsinnig groß ist.


wergor schrieb am 10.10.2021 um 14:50

Zitat aus einem Post von wergor
kann ich dann einfach den ganzen /var/lib/mysql/nextcloud ordner kopieren
so hab ichs gemacht, hat tadellos funktinoniert :)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2024