sql >> Database >  >> RDS >> Mysql

MySQL-back-up:kan ik individuele MyISAM-tabelbestanden kopiëren naar een andere server met een andere MySQL-versie en een ander besturingssysteem?

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 --



  1. MySQL cumulatieve som gegroepeerd op datum

  2. Het beste uit PostgreSQL-logboeken halen

  3. MariaDB 10.0 upgraden naar 10.3.9 op Ubuntu 16.04

  4. Hoe maak je een globaal configuratiebestand aan?