我有一个大小约6GB的数据库,它有一个1260万行的表。我试图通过对数据库中导出到一个SQL转储:mysqldump做部分备份 - 不完整的表转储
的mysqldump -u根-p DB_NAME> db_name.sql
当命令完成后,导出的SQL转储文件只是2GB和主表了仅输出约100万行。
什么可能是错的?
我有一个大小约6GB的数据库,它有一个1260万行的表。我试图通过对数据库中导出到一个SQL转储:mysqldump做部分备份 - 不完整的表转储
的mysqldump -u根-p DB_NAME> db_name.sql
当命令完成后,导出的SQL转储文件只是2GB和主表了仅输出约100万行。
什么可能是错的?
还有就是由于某种原因,来解决这个问题最简单的方法了2GB大小限制使用split
:
mysqldump ... | split -b 250m - filename.sql-
您也可以压缩文件是这样的:
mysqldump ... | gzip -9c | split -b 250m - filename.sql.gz-
恢复从非压缩文件中执行此操作:
cat filename.sql-* | mysql ...
对于压缩d文件:
cat filename.sql-* | zcat | mysql ...
当然,如果你想有一个单一的文件,然后,可以tar
结果。
显然,如果您愿意,您可以用不同的尺寸替换250m
。
您的文件系统可能仅限于2GB文件。
可能不足以压缩它 – 2011-04-14 03:31:11
发生这种情况是因为某些SQL转储的转储数据大小有限。 如果超出限制,则无法转储数据库。
如果你真的想这样做,你必须压缩数据库。通过使用ZIP,GZIP等。在倾销数据之前。
这是一个很好的解决方法,但我强烈建议您将数据转储到可处理任意大小文件的位置。否则,你正在寻找头痛。它应该像处理较大文件的文件系统重新格式化一样简单。 – Mikecito 2011-04-14 03:32:15
命令中的'...'连接到数据库并选择表格,就像您在原始文章中所用的那样。 – 2011-04-14 03:32:34
我不知道重新格式化文件系统总是一个非常简单的选择。 – 2011-04-14 03:33:16