mysqldump进行部分备份 - 不完整的表转储

问题描述 投票:1回答:4

我有一个大约6GB的数据库,它有一个1260万行的表。我尝试通过以下方式将数据库导出到SQL转储中:

mysqldump -u root -p db_name> db_name.sql

命令完成后,导出的SQL转储文件大约为2GB,主表只导出大约100万行。

什么可能是错的?

mysql mysqldump
4个回答
7
投票

由于某种原因,有2GB的文件大小限制,最简单的解决方法是使用split

mysqldump ... | split -b 250m - filename.sql-

您还可以像这样压缩文件:

mysqldump ... | gzip -9c | split -b 250m - filename.sql.gz-

要从非压缩文件还原,请执行以下操作:

cat filename.sql-* | mysql ...

对于压缩文件:

cat filename.sql-* | zcat | mysql ...

当然,如果你想要一个文件,你可以tar结果。

显然,如果你愿意,你可以用不同的尺寸替换250m


0
投票

您的文件系统可能仅限于2GB文件。


0
投票

之所以会发生这种情况,是因为某些SQL Dump的转储数据大小有限。如果数据库超出限制,则无法转储数据库。

如果你真的想这样做,你必须压缩数据库。使用ZIP,GZIP等。在转储数据之前。


0
投票

我有类似的,虽然所有的表都被导出到某一点。

我删除了一个旧冗余视图所依赖的列,并且mysqldump悄悄地ch咽试图“导出”视图

© www.soinside.com 2019 - 2024. All rights reserved.