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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 332113
Url: https://administrator.de/contentid/332113
Ausgedruckt am: 26.11.2024 um 07:11 Uhr
8 Kommentare
Neuester Kommentar
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:
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
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
Zitat von @Sheogorath:
In defall sollte folgendes Statement reichen:
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.In defall sollte folgendes Statement reichen:
mysqldump -u <user> -p <databasename> > dump.sql
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.
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
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
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?
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?
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
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