我的意思是复制单个MyISAM表文件是:(
关闭mysqld并将.frm,.myd和.myi文件从一个数据库文件夹复制到另一个数据库文件夹)
问题:
(a)我可以用这种方式从一个数据库备份MySQL数据库文件夹服务器到不同MySQL版本的另一台服务器?
(b)这个备份文件可以移动到不同的操作系统吗?(例如:debian到centos)
仅具有相同的服务器版本之间的文件级复制MyISAM表:
-
CPU'endian '(SPARC!= x86)- MySQL版本可以升级而无需转换(由于索引结构,5.0.48副本到5.0.52是不好的更改,但5.0.52副本到5.1.45是有效的).
注意竞争条件......当数据库正在读取表格时,您可能正在使用FTP或其他工具访问这些文件.即使是最良性的表读取,也会在.MYI中更新表'计数器'.
我发现以下内容将确保MyISAM表的完整性,以用于任何文件级操作:
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;
如果你没有锁定写表,mysql可能会在你进行文件级复制/操作时访问它(读或写).
这也是用于允许'myisampack','myisamchk'用于HOT数据库上的表的机制,该数据库甚至禁用外部锁定,而不用担心损坏.
- J Jorgenson -