InnoDB Dateien kopieren?

InnoDB Dateien kopieren?

am 17.09.2007 09:47:16 von Christian Schmelzer

Hallo,
eigentlich dachte ich dass sollte funktionieren. Also Mysql komplett stoppen
und dann alle Dateien von einem Mysql Server auf den anderen kopieren, weil
es viel schneller geht als das ganze Zeug erst zu dumpen. Von 4.1.10 auf
4.1.20. Das ging in die Hose, Mysql ist nicht mehr gestartet weil Mysql
meinte der Tablespace wäre defekt. Ok dachte ich 4.1.10 und 4.1.20 sind
intern vielleicht nicht kompatibel. Aber auch 4.1.20 64 Bit auf 4.1.20 32
Bit hat auch nicht funktioniert. Hat jemand eine Idee? Mit MyISAM geht das
ohne Probleme. Am Schluss habe ich alles gedumpt und neu importiert, was
bestimmt 10x länger gedauert hat.


Christian

Re: InnoDB Dateien kopieren?

am 17.09.2007 11:09:17 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: InnoDB Dateien kopieren?

am 17.09.2007 11:31:43 von Christian Schmelzer

Andreas Kretschmer wrote:
> begin Christian Schmelzer schrieb:
>> Hallo,
>> eigentlich dachte ich dass sollte funktionieren. Also Mysql komplett
>> stoppen und dann alle Dateien von einem Mysql Server auf den anderen
>> kopieren, weil es viel schneller geht als das ganze Zeug erst zu
>> dumpen. Von 4.1.10 auf
>> 4.1.20. Das ging in die Hose, Mysql ist nicht mehr gestartet weil
>> Mysql
>
> Selbe Hardware-Plattform, selbe Compiler-Settings, selbes OS?
>
>
>> meinte der Tablespace wäre defekt. Ok dachte ich 4.1.10 und 4.1.20
>> sind intern vielleicht nicht kompatibel. Aber auch 4.1.20 64 Bit auf
>> 4.1.20 32 Bit hat auch nicht funktioniert. Hat jemand eine Idee? Mit
>> MyISAM geht das
>
> Der Unterschied 32 zu 64 Bit mag Dir klein erscheinen, er ist es aber
> nicht.
>
>

Wobei es eben bei MyISAM ohne Probleme funktioniert.


>> ohne Probleme. Am Schluss habe ich alles gedumpt und neu importiert,
>> was bestimmt 10x länger gedauert hat.
>
> Es gleich richtig zu machen hätte vermutlich viel Zeit gespart.
>
>


Ja, toller Tipp, manchmal muss sowas aber auch schnell gehen und das Dumpen
und Neuimportieren von 100 GB dauert eben nicht gerade wenig Zeit.

Und bis jetzt hat das auch immer funktioniert, aber bei InnoDB scheinbar
nicht.

Christian

Re: InnoDB Dateien kopieren?

am 17.09.2007 12:04:02 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: InnoDB Dateien kopieren?

am 17.09.2007 12:06:36 von Christian Schmelzer

Andreas Kretschmer wrote:
> begin Christian Schmelzer schrieb:
>>> Der Unterschied 32 zu 64 Bit mag Dir klein erscheinen, er ist es
>>> aber nicht.
>>>
>>>
>>
>> Wobei es eben bei MyISAM ohne Probleme funktioniert.
>
> Es wird auch ein einfachen ASCII-Dateien gehen, die man sich mit
> $EDITOR anschaut. Und nun?
>
>
>
> end
> Andreas

Und sonst hat niemand anderes Infos dazu? Ich weiß ja dass du ein Freund von
PostgreSQL bist, was mir hier aber nicht weiter hilft.

Christian

Re: InnoDB Dateien kopieren?

am 17.09.2007 12:46:21 von Axel Schwenke

"Christian Schmelzer" wrote:

> eigentlich dachte ich dass sollte funktionieren. Also Mysql komplett stoppen
> und dann alle Dateien von einem Mysql Server auf den anderen kopieren, weil
> es viel schneller geht als das ganze Zeug erst zu dumpen. Von 4.1.10 auf
> 4.1.20. Das ging in die Hose, Mysql ist nicht mehr gestartet weil Mysql
> meinte der Tablespace wäre defekt. Ok dachte ich 4.1.10 und 4.1.20 sind
> intern vielleicht nicht kompatibel. Aber auch 4.1.20 64 Bit auf 4.1.20 32
> Bit hat auch nicht funktioniert. Hat jemand eine Idee?

Ohne zu wissen, was *genau* du kopiert hast, können wir dir nicht
sagen, ob du nicht vielleicht etwas wichtiges vergessen hast.

Ohne die *genaue* Fehlermeldung können wir dir nicht sagen, was
MySQL gestört hat.

Aber da es ein Feature ist daß Tablespaces abwärtskompatibel sind
und das auch über Plattformgrenzen hinweg, wirst du wohl bloß
etwas vergessen haben zu kopieren.


XL

Re: InnoDB Dateien kopieren?

am 17.09.2007 12:48:49 von Norbert Tretkowski

Am Mon, 17 Sep 2007 09:47:16 +0200 schrieb Christian Schmelzer:
> Das ging in die Hose, Mysql ist nicht mehr gestartet weil Mysql meinte
> der Tablespace wre defekt.

Wie lautet die exakte Fehlermeldung?

Hilft es, ib_logfile0 und ib_logfile1 beiseite zu schieben (vorausgesetzt
du hast MySQL sauber beendet)?

Norbert

Re: InnoDB Dateien kopieren?

am 17.09.2007 13:21:21 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: InnoDB Dateien kopieren?

am 17.09.2007 14:53:12 von Christian Schmelzer

Axel Schwenke wrote:
> "Christian Schmelzer" wrote:
>
>> eigentlich dachte ich dass sollte funktionieren. Also Mysql komplett
>> stoppen und dann alle Dateien von einem Mysql Server auf den anderen
>> kopieren, weil es viel schneller geht als das ganze Zeug erst zu
>> dumpen. Von 4.1.10 auf
>> 4.1.20. Das ging in die Hose, Mysql ist nicht mehr gestartet weil
>> Mysql meinte der Tablespace wäre defekt. Ok dachte ich 4.1.10 und
>> 4.1.20 sind intern vielleicht nicht kompatibel. Aber auch 4.1.20 64
>> Bit auf 4.1.20 32 Bit hat auch nicht funktioniert. Hat jemand eine
>> Idee?
>
> Ohne zu wissen, was *genau* du kopiert hast, können wir dir nicht
> sagen, ob du nicht vielleicht etwas wichtiges vergessen hast.
>
> Ohne die *genaue* Fehlermeldung können wir dir nicht sagen, was
> MySQL gestört hat.
>
> Aber da es ein Feature ist daß Tablespaces abwärtskompatibel sind
> und das auch über Plattformgrenzen hinweg, wirst du wohl bloß
> etwas vergessen haben zu kopieren.
>
>
> XL

Hallo,
beim Übertragen von 4.1.10 auf 4.1.20 habe ich folgende Meldung bekommen:

InnoDB: Error: trying to access page number 83461 in space 0,
InnoDB: space name ./ibdata1,
InnoDB: which is outside the tablespace bounds.
InnoDB: Byte offset 0, len 16384, i/o type 10
070914 21:52:19InnoDB: Assertion failure in thread 182894185184 in file
fil0fil.c line 3922
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/mysql/en/Forcing_recovery.html
InnoDB: about forcing recovery.
mysqld got signal 11;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help
diagnose
the problem, but since we have already crashed, something is definitely
wrong
and this may fail.

key_buffer_size=0
read_buffer_size=2093056
max_used_connections=0
max_connections=100
threads_connected=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections =
1023599 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

070914 21:52:19 mysqld ended


Ich hatte alle Daten auf /var/lib/mysql, d.h. alle Data und InnoDB
Logdateien.

Inzwischen weiß ich aber warum es dann zurück nicht mehr von 4.1.20 auf den
anderen Server, den ich inzwischen aktualisiert hatte, nicht mehr
funktioniert hat. In der my.cnf waren unterschiedliche Größen von den InnoDB
Tablespace definiert und das mochte Mysql dann gar nicht.

Christian

Re: InnoDB Dateien kopieren?

am 17.09.2007 16:31:29 von Axel Schwenke

"Christian Schmelzer" wrote:
> Axel Schwenke wrote:
>>
>> Ohne die *genaue* Fehlermeldung können wir dir nicht sagen, was
>> MySQL gestört hat.

> InnoDB: Error: trying to access page number 83461 in space 0,
> InnoDB: space name ./ibdata1,
> InnoDB: which is outside the tablespace bounds.
> InnoDB: Byte offset 0, len 16384, i/o type 10
> 070914 21:52:19InnoDB: Assertion failure in thread 182894185184 in file
> fil0fil.c line 3922

> Inzwischen weiß ich aber warum es dann zurück nicht mehr von 4.1.20 auf den
> anderen Server, den ich inzwischen aktualisiert hatte, nicht mehr
> funktioniert hat. In der my.cnf waren unterschiedliche Größen von den InnoDB
> Tablespace definiert und das mochte Mysql dann gar nicht.

Genau das hätte ich aus obiger Fehlermeldung geschlossen.
Laut my.cnf ist ibdata1 nur X bytes lang, es enthält aber
einen Pointer auf Position Y > X.

Ach ja, explizite Größenangaben für InnoDB-Tablespaces sind
ohnehin keine gute Idee. Entweder auto-extend (dann passiert
obiges nicht, weil InnoDB die reale Filegröße hernimmt) oder
gleich die ganze Partition. Oder file-per-table. Was dann
wieder auf auto-extend hinausläuft.


XL

Re: InnoDB Dateien kopieren?

am 17.09.2007 16:34:14 von Axel Schwenke

Andreas Kretschmer wrote:
> begin Axel Schwenke schrieb:
>> Aber da es ein Feature ist daß Tablespaces abwärtskompatibel sind
>> und das auch über Plattformgrenzen hinweg, wirst du wohl bloß
>
> Ist dem so, auch über untersch. Architekturen hinweg?
> Ich frag nur aus Neugierde, hab nichts gefunden dazu.

http://dev.mysql.com/doc/refman/5.0/en/moving.html

"Like MyISAM data files, InnoDB data and log files are
binary-compatible on all platforms having the same
floating-point number format."


XL