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

时间:2011-04-14 03:23:09

标签: mysql mysqldump

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

mysqldump -u root -p db_name> db_name.sql

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

可能出现什么问题?

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

我有相似之处,尽管所有表都导出到了某个点。

我删除了旧的冗余View所依赖的列,并且mysqldump悄无声息地试图“导出”该视图