sql >> Databáze >  >> RDS >> Mysql

Záloha MySQL:Mohu zkopírovat jednotlivé soubory tabulky MyISAM na jiný server s jinou verzí MySQL a jiným OS?

Pouze na úrovni souborů kopírujte tabulky MyISAM mezi verzemi serverů se stejným:
- CPU 'endian' ( SPARC !=x86 )
- Verze MySQL lze upgradovat bez konverze (5.0.48 kopie na 5.0 .52 je špatný kvůli změnám struktury indexu, ale kopie 5.0.52 do 5.1.45 je platná).

Dejte si pozor na rasové podmínky... Můžete přistupovat k souborům pomocí FTP nebo jiného nástroje, zatímco databáze čte tabulku. V rámci .MYI jsou aktualizovány 'počítače' tabulek i pro nejšetrnější čtení tabulek.

Zjistil jsem, že následující zajistí integritu tabulek MyISAM pro jakoukoli manipulaci na úrovni souborů:

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;

Pokud tabulku NEZAMKNETE-zápis, mysql k ní může přistupovat (čte nebo zapisuje), zatímco provádíte kopírování/manipulaci na úrovni souborů.

Toto je také stejný mechanismus, který se používá k povolení 'myisampack', 'myisamchk' pro tabulky v HOT databázi, která má dokonce vypnuté externí zamykání, bez obav z poškození.

-- J Jorgenson --



  1. SQL 'AND' nebo 'OR' je na prvním místě?

  2. Je středník nezbytný v SQL?

  3. Jak importovat soubor Excel do databáze mysql z PHP

  4. Jak najdu umístění MySQL my.cnf