Kopiera endast MyISAM-tabeller på filnivå mellan versioner av servrar med samma:
- CPU 'endian' ( SPARC !=x86 )
- MySQL-versioner kan uppgraderas utan konvertering (5.0.48 kopiera till 5.0 .52 är dåligt på grund av förändringar i indexstrukturen, men 5.0.52-kopian till 5.1.45 är giltig).
Akta dig för tävlingsförhållanden... Du kan komma åt filerna med FTP eller något annat verktyg medan databasen läser tabellen. Det finns tabellräknare uppdaterade i .MYI för även de mest godartade tabellläsningarna.
Jag fann att följande kommer att säkerställa integriteten för MyISAM-tabeller för all manipulation på filnivå:
LOCK TABLE x WRITE;
FLUSH TABLE x; -- closes all file handles into table by mysql.
< perform file-level manipulations >
FLUSH TABLE x; -- A 'stat' of the table occurs and info-schema is updated appropriately.
UNLOCK TABLES;
Om du INTE låser-skriver din tabell, kan mysql komma åt den (läser eller skriver) medan du kopierar/manipulerar på filnivå.
Detta är också samma mekanism som används för att tillåta 'myisampack', 'myisamchk' för tabeller i en HOT-databas som till och med har extern låsning inaktiverad, utan oro för korruption.
-- J Jörgenson --