当我运行以下命令时,输出只包含'mytable‘的create语法,而没有数据:
mysqldump --single-transaction -umylogin -p mydatabase mytable > dump.sql如果我删除--单个事务,我会得到一个错误,因为我不能锁定表。
如果我去掉'mytable‘(并运行数据库),看起来就像是在创建INSERT语句,但整个数据库是巨大的。
有没有一种方法可以转储表-- schema & data --而不必锁定表?
(我也尝试过OUTFILE,但也无法访问它。)
发布于 2010-02-25 06:41:32
答案可能取决于您的表使用的数据库引擎。InnoDB对非锁定备份有一些支持。考虑到您对权限的注释,您可能缺少所需的权限。
我想到的最好的选择是创建一个不带索引的复制表。将要备份的表中的所有数据复制到新表中。如果您创建查询的方式可以轻松地对数据进行分页,则可以调整锁的持续时间。我发现每次迭代10,000行通常非常快。一旦有了这个查询,您就可以继续运行它,直到复制完所有行。
现在您有了一个副本,您可以删除它,截断它,或者保留它并尝试用最新的数据更新它,并将其用作备份源。
雅各布
https://stackoverflow.com/questions/2330174
复制相似问题