【问题标题】:How do I archive a MySQL databases?如何归档 MySQL 数据库?
【发布时间】:2010-09-25 01:53:04
【问题描述】:

我有一个想要归档的 MySQL 数据库。最好的方法是什么?

注意:我只想做一个备份。我想以一种以后可以使用的方式一次性导出数据以进行长期存储。特别是,我不想被绑定到 MySQL、数据库或任何给定的软件(我真的希望编写一个可以重新读取它的程序,比如几十行 C 或 perl) .

我目前的计划是使用 CSV 引擎将内容转储到表中,然后将其刻录到 DVD。这很好,因为 CSV 可以被许多不同的程序加载。唯一的问题是大部分数据都在 Blob 列中,就像二进制一样,所以我需要解码它是如何编码的。

【问题讨论】:

  • 它的数据。它必须与某些东西联系在一起。为什么不使用mysqldump?是当今相当可移植的 ASCII。
  • Mysqldump 文件不是 ASCII。 marksverbiage.blogspot.com/2007/12/…

标签: mysql archive


【解决方案1】:

导出为 CSV,使用 Base64 编码对二进制数据进行编码,然后使用 gzip 进行压缩听起来是个不错的方法。不过,我建议您仔细考虑您对 DVD 的选择。多年来,可记录媒体趋于迅速恶化。

【讨论】:

  • 什么会更好?我的主要观点是把它从硬盘上取下来,磁带会更难访问(它是一种可记录的媒体)。
  • DVD 的劣化速度通常比磁带快得多。像亚马逊的 S3 这样的在线存储可能是另一种选择。
  • 在 DVD 上存储冗余数据(例如,使用 par2),并定期验证它们。如果出现任何问题,请使用冗余数据进行恢复,然后刻录新光盘。还要定期刻录新光盘(例如,每 5 年左右)。 en.wikipedia.org/wiki/Optical_media_preservation 有很好的链接。
  • 5 年?在我的时间范围内,这是一个“很长的时间”。
【解决方案2】:

您可以将整个数据库转储到 .sql 文件中,并使用 VCS 归档每个版本。如果您需要旧版本,可以将其从存储库中导出并从中恢复。

【讨论】:

    【解决方案3】:
    mysql> ALTER TABLE arch2 ENGINE='ARCHIVE';
    

    【讨论】:

      猜你喜欢
      • 2012-09-11
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-11
      相关资源
      最近更新 更多