mmofacts.com

MySQL Replikationsfehler?

gepostet vor 17 Jahre, 4 Monate von TBT
Hallo,
ich stehe hier gerade vor einem großen Problem, und habe keine Idee mehr.
Wir haben 2 MySQL Server, einen Master und einen Slave.
Der Slave repliziert die Daten des Masters, und macht bei 3 von 224 Tabellen Fehler.
Eine der Tabellen sieht mit phpmyadmin auf beiden Rechnern so aus:

CREATE TABLE `druck_zw` (
`semid_i` tinyint(3) unsigned NOT NULL default '0',
`bewid_i` mediumint( unsigned NOT NULL default '0',
`ktypid_i` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`semid_i`,`bewid_i`,`ktypid_i`)
)
Auf dem Masterserver sind solche Daten enthalten: (laut phpmyadmin und konsolenabfrage)

+---------+---------+----------+
| semid_i | bewid_i | ktypid_i |
+---------+---------+----------+
| 5 | 1011542 | 11 |
| 5 | 1011795 | 11 |
| 5 | 1011925 | 11 |
| 5 | 1012265 | 11 |
| 5 | 1012760 | 11 |
| 5 | 1012931 | 11 |
| 5 | 1014604 | 11 |
| 5 | 1014881 | 11 |
| 5 | 1015630 | 11 |
Auf dem Slave kommen bei einem "load data from master" oder auch "load table druck_zw from master" folgende Daten an

+---------+----------+----------+
| semid_i | bewid_i | ktypid_i |
+---------+----------+----------+
| 0 | 725062 | 255 |
| 1 | 725066 | 255 |
| 1 | 725103 | 255 |
| 1 | 16714512 | 5 |
| 1 | 16714768 | 7 |
| 3 | 16714512 | 5 |
| 5 | 725068 | 255 |
| 5 | 1011542 | 11 |
Auch bei einem mysqldump auf dem Masterserver enthält der Dump die korrekten Werte.
Jemand eine Idee, was dies sein könnte?
gepostet vor 17 Jahre, 4 Monate von Toby
Hast du korrekt abgeglichen?
Ergo, stelle auf dem Slave den exakt gleichen Zustand wie beim Master her (einfach die Datenbanken mit "flush tables with read lock" sperren und dann per rsync oder so direkt die Dateien kopieren),
dann auf dem Master "Show Master Log" und die Werte da notieren. Dann kannst du den Master schon entsperren. Dann den Slave mit den Werten des Masters initialisieren und alles muss passen.
Achso, Master und Slave haben die gleichen Versionen? Und auf dem Slave schreibt niemand?
gepostet vor 17 Jahre, 4 Monate von TheUndeadable
Was sagt SHOW CREATE TABLE auf Slave und Master?
Habe irgendwie das Gefühl, dass ein Problem beim Bitgeschubse aufgetreten ist.
gepostet vor 17 Jahre, 4 Monate von TBT
Master

CREATE TABLE `druck_zw` (
`semid_i` tinyint(3) unsigned NOT NULL default '0',
`bewid_i` mediumint( unsigned NOT NULL default '0',
`ktypid_i` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`semid_i`,`bewid_i`,`ktypid_i`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Slave

CREATE TABLE `druck_zw` (
`semid_i` tinyint(3) unsigned NOT NULL default '0',
`bewid_i` mediumint( unsigned NOT NULL default '0',
`ktypid_i` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`semid_i`,`bewid_i`,`ktypid_i`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
gepostet vor 17 Jahre, 4 Monate von Toby
Also für mich siehts aus als ob der Slave an der falschen Position des Masterlogs liest.
gepostet vor 17 Jahre, 4 Monate von TBT
wenn ich die Tabelle auf dem slave kille, und ein
load table druck_zw from master
absetze, sind die Daten auch wieder defekt.
gepostet vor 17 Jahre, 4 Monate von DJRuSHeR
Ich hatte mal mit einem ähnlichem Problem zu kämpfen, bei mir war es damals so, dass der Dienst die Daten über eine extra Netzwerkkarte mit dem anderen Server getauscht hat und da die Netzwerkkarte einen Fehler hatte. Kann ich mir zwar nicht vorstellen dass es bei dir auch so ist, aber wenn du es da auch über eine extra Netzwerkkarte laufen hast, schau ob du den Fehler ausschließen kannst.
gepostet vor 17 Jahre, 4 Monate von TBT
beide Rechner haben nur eine Netzkarte,
und da sind keine Fehler zu finden.
Auch sind bei einem erneuten "load data" immer die selben Tabellen betroffen,
sogar ganz genau die selben Fehler

Auf diese Diskussion antworten