导入MySQL InnoDB转储而不锁定表

时间:2012-04-13 11:00:42

标签: mysql import innodb mysqldump restore

我使用InnoDB引擎导入MySQL表有哪些选项,表已经存在,而不会丢失对现有表的读访问权限?一般来说,我指的是ALTER TABLE非常慢的情况,而我想要转储表,修改转储,然后导入它。

如果我使用mysqldump进行转储,那么当我重新插入时,它会在插入之前删除表,因此在导入完成之前,读访问权当然会丢失。

我可以简单地更改转储中的表名,导入它,然后在完成后,删除旧表并重命名新表吗?有没有更好的办法?提前谢谢。

2 个答案:

答案 0 :(得分:1)

如果你的桌子结构相同,我没有看到任何问题。您只需跳过“DROP TABLE”运算符即可。几乎所有转储器都可以选择不在转储中包含DROP TABLE / CREATE TABLE。我个人推荐Sypex Dumper

如果你想在没有锁定表的情况下更改表结构,我认为最好的方法是使用 pt-online-schema-change - ALTER tables without locking them

答案 1 :(得分:1)

为此http://www.mysql.com/products/enterprise/backup.html

使用MySQL Enterprise备份