sql >> Databasteknik >  >> RDS >> Mysql

MySQL Backup:Kan jag kopiera individuella MyISAM-tabellfiler till en annan server med annan MySQL-version och annat operativsystem?

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



  1. Ställa in MySQL-konfigurationsvariabler – MySQL 5.7 vs MySQL 8.0

  2. När ska man använda CSV-lagringsmotorn för MySQL?

  3. problem med OneToMany inklusive en filterklausul i spring jpa

  4. Android Room Library kan inte kopiera databasen från tillgången