Kopieer alleen MyISAM-tabellen op bestandsniveau tussen versies van servers met hetzelfde:
- CPU 'endian' ( SPARC !=x86 )
- MySQL-versies kunnen worden geüpgraded zonder conversie (5.0.48 kopiëren naar 5.0 .52 is slecht vanwege veranderingen in de indexstructuur, maar 5.0.52 kopiëren naar 5.1.45 is geldig).
Pas op voor race-omstandigheden... Mogelijk benadert u de bestanden via FTP of een ander hulpmiddel, terwijl de database de tabel leest. Er zijn tabel 'tellers' bijgewerkt binnen de .MYI voor zelfs de meest goedaardige tabellezingen.
Ik ontdekte dat het volgende de integriteit van MyISAM-tabellen garandeert voor manipulatie op bestandsniveau:
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;
Als u uw tabel NIET op slot zet, kan mysql er toegang toe krijgen (lezen of schrijven) terwijl u bezig bent met kopiëren/manipulatie op bestandsniveau.
Dit is ook hetzelfde mechanisme dat wordt gebruikt om 'myisampack', 'myisamchk' toe te staan voor tabellen in een HOT-database die zelfs externe vergrendeling heeft uitgeschakeld, zonder zorgen over corruptie.
-- J Jorgenson --