一次在这么多表上使用mysqldump安全吗
我每天使用 mysqldump 在 10 倍于这个大小的服务器上运行备份:15000+ 个表,100+ GB。
如果您还没有检查过由mysqldump 生成的文件的内容......您应该检查它,因为查看它的输出可以理解为什么它是一个本质安全的备份实用程序:
备份是人类可读的,并且完全由必要的 SQL 语句组成,以创建与您备份的数据库完全相同的数据库。
在这种形式中,它们的内容很容易使用sed、grep 和perl 等无处不在的工具进行操作,例如,这些工具可用于从文件中仅提取一个表进行恢复。
如果恢复失败,错误将指示文件中发生错误的行号。这通常与创建备份的服务器版本中的错误行为有关(例如 MySQL Server 5.1 允许您在服务器本身不接受其自己的 SHOW CREATE VIEW 语句的输出的某些情况下创建视图。创建同一服务器不认为语句是有效的视图定义,但这不是 mysqldump 或备份文件中的缺陷,本身。)
从 mysqldump 创建的备份恢复并不快,因为服务器必须执行所有这些 SQL 语句,但从安全的角度来看,我认为没有更安全的选择,因为它是规范的备份工具和任何错误都可能通过庞大的用户群找到并修复。
请勿使用--force 选项,紧急情况除外。这将导致备份跳过备份运行时在服务器上遇到的任何错误,从而导致备份不完整且几乎没有警告。相反,查找并修复发生的任何错误。备份期间的典型错误与不再有效的视图有关,因为它们引用了已重命名或删除的表或列,或者最初创建视图的用户已从服务器中删除。通过正确重新定义视图来解决这些问题。
最重要的是,通过将备份恢复到不同的服务器来测试您的备份。如果你没有这样做,你就没有备份。
输出文件通常可以使用 gzip/pigz、bzip2/bpzip2、xz/pixz 或 zpaq 进行压缩。这些按节省的空间量(gzip 节省最少,zpaq 节省最多)和速度(gzip 最快,zpaq 最慢)按大致顺序列出。 pigz、pbzip2、pixz 和 zpaq 将利用多个内核,如果你有的话。其他人一次只能使用一个核心。