【问题标题】:mysqldump doing a partial backup - incomplete table dumpmysqldump 进行部分备份 - 不完整的表转储
【发布时间】:2011-08-05 05:11:40
【问题描述】:

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

mysqldump -u root -p db_name > db_name.sql

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

可能出了什么问题?

【问题讨论】:

    标签: mysql mysqldump


    【解决方案1】:

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

    【讨论】:

    • 那可能压缩得不够
    【解决方案2】:

    由于某种原因,文件大小限制为 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 替换为不同的大小。

    【讨论】:

    • 目前这是一个很好的解决方法,但我强烈建议您将数据转储到可以处理任何大小文件的位置。否则,您正在寻找头痛。它应该像使用处理较大文件的文件系统重新格式化一样简单。
    • 命令中的... 正在连接到数据库并像您在原始帖子中一样选择表。
    • 我不确定重新格式化文件系统是否总是一个非常简单的选择。
    【解决方案3】:

    这是因为某些 SQL Dump 的转储数据大小有限。 如果超过限制,则无法转储数据库。

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

    【讨论】:

      【解决方案4】:

      我也有类似的情况,但所有表格都导出到某个点。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-18
        • 1970-01-01
        • 1970-01-01
        • 2010-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多