mikahaapamaeki
Goto Top

Mysqldump unvollständig

Hallo Zusammen,

ich bin mittlerweile mit meinem Latein am Ende... Es geht um einen Serverumzug. Ich habe eine Mysql Datenbank (SugarCRM).
Diese ist 1,5 Gb groß.

Nun ist es egal wie ich den "dump" erstelle

Mysql Workbench
Heidi SQL
SSH/Terminal
phpmyadmin
plesk
mysqldumper

Es kommt als Ergebnis immer eine c.a. 800mb große Datenbank, welche auch nicht von der neuen Instanz von SugarCRM erkannt wird.
Somit ist diese tatsächlich unvollständig.

Es sind auch tatsächlich alle Tabellen da aber es fehlen teilweise über 50% Datensätze.

Weder beim "dump" noch beim "restore" erhalte ich Fehler.

So nun sind die Experten gefragt.. Ich hoffe ihr wisst warum es nicht geht...

Vielen Dank!

Beste Grüße,
Mika

Content-ID: 332113

Url: https://administrator.de/contentid/332113

Ausgedruckt am: 26.11.2024 um 07:11 Uhr

Sheogorath
Sheogorath 15.03.2017 um 02:53:41 Uhr
Goto Top
Moin,

so ein SQLDump ist eigentlich kein Hexenwerk.

Ich gehe jetzt einfach mal davon aus, dass du vollzugriff auf dem Server hast.

In defall sollte folgendes Statement reichen:

mysqldump -u <user> -p <databasename> > dump.sql

Natürlich musst du `<user>` und `<databasename>` entsprechend ersetzen. (Natürlich ohne die `<>`)

Wenn es ein Produktivsystem ist, solltest du ggf. nicht gerade in der primären Nutzungszeit diesen Dump fahren.

Er sollte dann alle nötigen enthalten. Ich würde dir allerdings empfehlen es als ein Nutzer zu dumpen, der vollzugriff auf die Datenbank hat, das kann durchaus ein anderer User sein, als der, der in den Credentials der Anwendung eingetragen ist.

Außerdem solltest du die exakten Datenbankeinstellung (Neben Datebankname, User und Passwort auch auf den Prefix achten) in deine neue Instanz übernehmen. Hierbei muss du aufpassen: Manche CMS führen Änderungen am Datenbankschema durch, diese solltest du im Changelog deiner Anwendung wiederfinden. Das kann dann auch heißen, dass du ggf. von Version zu Version oder gar händisch updaten musst. Kann hässlich sein, lässt sich aber nicht immer verhindern.

Wenn dir das alles zu aufwändig ist und die DB so oder so allein auf deiner MySQL Instanz liegt, geht auch die Holzhammermethode. Snapshot vom Dateisystem machen, bzw. die MySQL Instanz stoppen und einfach `/var/lib/mysql` kopieren. Kann richtig Freude bereiten ;) Nach einem starten der MySQL Instanz auf der anderen Seite und ein paar Selects sollte eine neue DB mit gleichen Daten und voller Performance stehen.

Du siehst, viele Wege führen nach Rom, du musst sie nur gehen ;)

Ich hoffe einfach mal, dass es hilft...

In diesem Sinne
Gruß
Chris
132692
132692 15.03.2017 aktualisiert um 06:43:21 Uhr
Goto Top
Zitat von @Sheogorath:

In defall sollte folgendes Statement reichen:

mysqldump -u <user> -p <databasename> > dump.sql
ACHTUNG: Diese Variante mit Umleitung birgt immer die Gefahr das die Daten im falschen Encoding in der Datei landen wenn das Konsolenencoding nicht stimmt! Hier also besser immer mit der Option --result-file <dateiname> bzw. -r <dateiname> arbeiten.

Zurück zu deinem Problem:
Ist die Option max_allowed_packet auf Server und auf Clientseite hoch genug gesetzt? Ich vermute hier nämlich ein Speicherproblem wie hier
http://dba.stackexchange.com/questions/7785/incomplete-mysqldump

Gruß P.
StefanKittel
StefanKittel 15.03.2017 um 07:42:52 Uhr
Goto Top
Moin,

wie schon beschrieben.
Dumps von großen Datenbanken über ein Webinterface (vermutlich PHP) führen immer wieder zu merkwürdigen Problemen.
Dort gibt es viele beschränkende Faktoren die Produkte wie MySQLDumper versuchen zu umgehen. Aber nicht immer erfolgreich.

Über SSH auf der Shell sollte es ohne Probleme und viel schneller gehen.
Bei Problemen bekommt man vor allen eine aussagekräftige Fehlermeldung.

Viele Grüße

Stefan
mikahaapamaeki
mikahaapamaeki 15.03.2017 um 16:20:34 Uhr
Goto Top
Servus,

danke für den Tipp! max_allowed_packet habe ich auf 500M gesetzt - denke das sollte reichen - geht aber trotzdem nicht...
Mittlerweile habe ich Sugar mit einer kopierten Datenbank zum laufen gebracht. Die Größe wird jedoch weiterhin mit 800 MB statt 1,5 GB angegeben...
mikahaapamaeki
mikahaapamaeki 15.03.2017 um 16:23:29 Uhr
Goto Top
@Stefan und @chris

Danke euch für die Antworten - Ich habe es auch schon öfters per SSH versucht - Ergebnis war das Selbe.
Die Datenbank wurde zu dem Zeitpunkt auch von niemandem genutzt...

Zum Schluss wird es wahrscheinlich die "Holzhammermethode" ...

Habe noch nie solche Probleme mit nem einfachen Dump gehabt...
StefanKittel
StefanKittel 15.03.2017 um 16:32:36 Uhr
Goto Top
Zitat von @mikahaapamaeki:
Habe noch nie solche Probleme mit nem einfachen Dump gehabt...
Ich hatte gestern ein merkwürdiges Problem.
Dump einer 20MB großen Datenbank. Der Dump wurde unendlich groß.
Bei 20GB habe ich das abgebrochen.
Nachdem ich die DB repariert hatte ging es wieder.

Vieleicht mal probieren?
mikahaapamaeki
mikahaapamaeki 15.03.2017 um 20:54:34 Uhr
Goto Top
So... jetzt bin ich komplett überfordert. Habe mal den mysql Ordner rüber kopiert und auch soweit zum laufen gebracht. Und? UND? Genau - Es ist das Selbe Ergebnis.... 50% kleiner und weniger Zeilen in vielen Tabellen. Ich habe langsam das Gefühl, dass es einfach nur ein "Darstellungsfehler" ist.

Hängt es ggf. mit der MySQL Version zusammen?

Alt: 5.5.52
Neu: 5.6.35
Sheogorath
Sheogorath 15.03.2017 um 21:57:05 Uhr
Goto Top
Moin,

Lässt du denn regelmäßig ein mysqlcheck über deine Datenbanken laufen?

Wenn nein, solltest du mal mysqlcheck nutzen ^^ Siehe http://www.thegeekstuff.com/2011/12/mysqlcheck/

Ggf. fällt da auch einiges weg. Im Zweifel mal drüber jagen und schauen was passiert (Wenn du die Daten eh schon rüberkopiert hast, kannst du es direkt auf dem neuen System machen)

Gruß
Chris