Page 1 of 1
Umzug 32bit nach 64bit
Posted: 2006-06-13 13:05
by knebb
Yohoo!
Mir steht ein Umzug einer MySQL-DB bevor. MySQL enthält nur MYSQL-Datenbanken, keine Innos etc.
Alte Version:
MySQL-server-standard-4.1.20-0.sles9.i586.rpm
Neue Version:
MySQL-server-standard-4.1.20-0.sles9.x86_64.rpm
Sind hierbei Schwierigkeiten zu erwarten? Binär kopieren geht ja eher nicht zwischen 32 und 64bit. Deshalb mysqldump:
Code: Select all
mysqldump --opt -A --password="xxxxxx" --lock-all-tables --add-drop-database --skip-quote-names |gzip >/backup.sql.gz
Sollte eigentlich problemlos klappen, oder habt Ihr Bedenken?
Ach ja, diese Datenbank ist von einer 4.1.13-3 auf einer Suse 10.0 (64bit) erstellt worden. Nach dem Einspielen des dumps waren die Berechtigungen für die einzelnen Tabellen weg. Hat jemand eine Idee, wieso?
Re: Umzug 32bit nach 64bit
Posted: 2006-06-13 17:00
by Roger Wilco
knebb wrote:Sind hierbei Schwierigkeiten zu erwarten?
Nein.
knebb wrote:Binär kopieren geht ja eher nicht zwischen 32 und 64bit.
Doch. i386 und x86_64 sind ja sogar Endian-kompatibel... ;)
Re: Umzug 32bit nach 64bit
Posted: 2006-06-13 20:00
by knebb
Roger Wilco wrote:Binär kopieren geht ja eher nicht zwischen 32 und 64bit.
Doch. i386 und x86_64 sind ja sogar Endian-kompatibel... ;)
Echt? Also das Folgende geht?
Code: Select all
rcmysqld stop
rsync -av -e ssh /var/lib/mysql/ root@mysql_neu:/var/lib/mysql
# und dann auf dem neuen 64bit-System:
rcmysqld start
Re: Umzug 32bit nach 64bit
Posted: 2006-06-13 20:41
by Joe User
Probiere es doch einfach mal aus und berichte uns ;)
Re: Umzug 32bit nach 64bit
Posted: 2006-06-13 20:59
by knebb
Joe User wrote:Probiere es doch einfach mal aus und berichte uns ;)
Ich bin mit Produktivsystemen ungerne Versuchskaninchen...aber Du hast recht- es gibt ja immer noch VMware ;)
Re: Umzug 32bit nach 64bit
Posted: 2006-06-13 23:03
by knebb
Joe User wrote:Probiere es doch einfach mal aus und berichte uns ;)
Ok, gerade eben das folgende getestet:
Code: Select all
SLES9_64bit# rcmysql stop
SLES9_64bit# tar cjvf /mysql.tar.bz2 /var/lib/mysql
[...]
SLES9_32bit# scp root@SLES9_64bit:/mysql.tar.bz2 /
SLES9_32bit# rcmysql stop
SLES9_32bit# tar xjvf /mysql.tar.bz2 -C /var/lib
SLES9_32bit# rcmysql start
Ja, es läuft danach tatsächlich die (vorherige 64bit) Datenbank. Cool. Dann dürfte dem Weg von 32 auf 64bit erst recht nichts im Wege stehen.
Danke für die Anregungen und die Ideen!
Grüße
Christian
Re: Umzug 32bit nach 64bit
Posted: 2006-06-13 23:05
by flo
Isotopp hat das neulich auch mal als favorisierten Weg angesprochen - ich war da auch baff, weil ich es nciht für möglich gehalten hätte, daß das einwandfrei geht.
flo.
Re: Umzug 32bit nach 64bit
Posted: 2006-06-13 23:09
by knebb
flo wrote:Isotopp hat das neulich auch mal als favorisierten Weg angesprochen - ich war da auch baff, weil ich es nciht für möglich gehalten hätte, daß das einwandfrei geht.
Blieb' hlt nur noc hdie Frage, bei wievielen Versionsunterschieden das dann nicht mehr geht. Ich hatte jetzt unterschiedliche Patchversionen gehabt.
Re: Umzug 32bit nach 64bit
Posted: 2006-06-13 23:28
by Joe User
Es funktioniert bis zum nächsten Wechsel des Dateiformates für die DB-Dateien.
Re: Umzug 32bit nach 64bit
Posted: 2006-06-15 09:46
by knebb
Joe User wrote:Es funktioniert bis zum nächsten Wechsel des Dateiformates für die DB-Dateien.
Ok, wir haben das gestern
versucht durchzuziehen. Die DB selbst hat keine Sorgen gemacht, 32bit auf 64bit lief einwandfrei. Allerdings ist uns dann die §$&% Benutzerverwaltung in die Quere gekommen.
Naja, EOT. Binärkopieren geht (zumindest innerhalb der Versionen) problemlos.
Re: Umzug 32bit nach 64bit
Posted: 2006-06-16 16:49
by isotopp
knebb wrote:Alte Version:
MySQL-server-standard-4.1.20-0.sles9.i586.rpm
Neue Version:
MySQL-server-standard-4.1.20-0.sles9.x86_64.rpm
MySQL garantiert eine Binärkompatibilität des MyISAM-Dateiformates über Architekturen, Bittigkeiten und Endiangrenzen hinweg. Das ist einer der Changes vom veralteten ISAM zum MyISAM-Format hin.
InnoDB ist ebenfalls portabel, solange die verwendeten Architekturen Zweierkomplementdarstellung und IEEE-Floats verwenden.
Nach dem Einspielen des dumps waren die Berechtigungen für die einzelnen Tabellen weg. Hat jemand eine Idee, wieso?
mysqldump kopiert eine Datenbank, aber nicht die Berechtigungen, die für die Datenbank definiert sind.
Re: Umzug 32bit nach 64bit
Posted: 2006-06-16 16:51
by isotopp
knebb wrote:Blieb' hlt nur noc hdie Frage, bei wievielen Versionsunterschieden das dann nicht mehr geht. Ich hatte jetzt unterschiedliche Patchversionen gehabt.
Datenformate innerhalt einer Major Version sind immer kompatibel.
Es kann sein, daß durch Patches an einer Collation sich die Sortierreihenfolge von Zeichenspalten ändert, für die ein Index definiert ist. In diesem Fall ist ein DROP INDEX und ein Neubau des Index erforderlich.
Bei Versionsupgrades hilft es auch, die Sektion "Incompatible Changes" in den Releasenotes der übersprungenen Versionen durchzusehen.
Re: Umzug 32bit nach 64bit
Posted: 2006-06-16 17:22
by knebb
isotopp wrote:
mysqldump kopiert eine Datenbank, aber nicht die Berechtigungen, die für die Datenbank definiert sind.
Und die muß ich dann jedesmal neu setzen? Das erscheint mir reichlich unlogisch. Also bleibt doch ausschließlich ein Binärbackup (verbunden mit Downtime oder einem zweiten Server) übrig?
Welchen Weg kann man denn gehen, um auch die Berechtigungen mitzunehmen. Ich dachte, er sichert die mysql-DB mit....
Re: Umzug 32bit nach 64bit
Posted: 2006-06-16 17:59
by isotopp
knebb wrote:Und die muß ich dann jedesmal neu setzen?
SHOW GRANTS FOR "user"@"hostname" zeigt Dir die Statements für den genannten User. Das kannst Du Dir ausgeben lassen und mit portieren.
Oder Du dumpst die fünf MySQL Rechtetabellen und transportierst sie mit auf das neue System, bzw. die ganze mysql.* Datenbank.
Re: Umzug 32bit nach 64bit
Posted: 2006-06-16 18:45
by knebb
isotopp wrote:knebb wrote:Und die muß ich dann jedesmal neu setzen?
SHOW GRANTS FOR "user"@"hostname" zeigt Dir die Statements für den genannten User. Das kannst Du Dir ausgeben lassen und mit portieren.
Oder Du dumpst die fünf MySQL Rechtetabellen und transportierst sie mit auf das neue System, bzw. die ganze mysql.* Datenbank.
Klar, wenn ich einzelne DB dumpe- aber auch, wenn ich mit --all-databases die ganze Instanz sichere? Ich hatte das so verstanden, daß er da wirklich ALLE mitnimmt. Die User hat er ja auch mitgenommen, aber nicht deren Rechte!
:roll:
Re: Umzug 32bit nach 64bit
Posted: 2006-06-16 18:49
by isotopp
knebb wrote: Die User hat er ja auch mitgenommen, aber nicht deren Rechte!
Doch, sicher hat er das. Schau in den Dump.
Code: Select all
kris@linux:~> mysqldump-3340 -u root --all-databases | grep "CREATE DATABASE"
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `bootcamp` /*!40100 DEFAULT CHARACTER SET latin1 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysql` /*!40100 DEFAULT CHARACTER SET utf8 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `rootforum` /*!40100 DEFAULT CHARACTER SET utf8 */;
Schau in die Kommandos nach CREATE DATABASE mysql
Re: Umzug 32bit nach 64bit
Posted: 2006-06-16 19:21
by knebb
isotopp wrote:knebb wrote: Die User hat er ja auch mitgenommen, aber nicht deren Rechte!
Doch, sicher hat er das. Schau in den Dump.
Hmmmm.... ok, Du meinst also, das hätte er im Regelfall gemacht? So hätte ich das auch erwartet. Na gut, dann war das wohl ein Fehler. Ich werde versuchen, ihn nachzuprüfen.