gpt4 book ai didi

mysql - 我怎样才能安全地备份一个巨大的数据库?

转载 作者:可可西里 更新时间:2023-11-01 06:40:26 24 4
gpt4 key购买 nike

我需要备份一个庞大的 Drupal 数据库。所以它有超过 1500 个表(不要怪我,它是 Drupal 的东西)并且大小为 10GB。

我无法使用 PHPMyAdmin 完成此操作,我只是在它开始构建 .sql 文件时遇到错误。

我想确保在尝试备份时不会破坏任何东西或导致服务器宕机或任何东西。

我打算在我的服务器上尝试一个 mysqldump,然后将文件复制到本地,但意识到这可能会导致无法预料的问题。所以我想问你的是,一次对这么多表使用 mysqldump 是否安全,即使是安全的,这么大的文件是否会在将来重建数据库时导致任何问题?

感谢您的输入。

最佳答案

is it safe to use mysqldump on so many tables at once

我在服务器上使用 mysqldump 运行每日备份,实际上是这个大小的 10 倍:15000+ 表,100+ GB。

如果您还没有检查过 mysqldump 生成的文件的内容……您应该检查一下,因为查看它的输出就可以理解为什么它是一个本质上安全的备份实用程序:

备份是人类可读的,并且完全由创建与您备份的数据库完全相同的数据库所必需的 SQL 语句组成。

在这种形式下,它们的内容很容易使用无处不在的工具进行操作,例如 sedgrep 以及 perl,这些工具可用于提取例如,只有一个文件中的一个表用于恢复。

如果恢复失败,错误将指示文件中发生错误的行号。这通常与创建备份的服务器版本中的错误行为有关(例如,MySQL Server 5.1 允许您在服务器本身不接受其自己的输出的某些情况下创建 View SHOW CREATE VIEW 语句。create 语句不被同一台服务器视为有效的 View 定义,但这不是 mysqldump 或备份文件中的缺陷,本身。)

从 mysqldump 创建的备份中恢复并不快,因为服务器必须执行所有这些 SQL 语句,但从安全的角度来看,我认为没有更安全的选择,因为它是规范的如果不出意外,备份工具和任何错误都可能凭借庞大的用户群被发现和修复。

除非紧急情况,否则不要使用--force 选项。它将导致备份在备份运行时跳过服务器上遇到的任何错误,从而导致备份不完整且几乎没有任何警告。相反,查找并修复发生的任何错误。备份期间的典型错误与不再有效的 View 有关,因为它们引用了已重命名或删除的表或列,或者最初创建 View 的用户已从服务器中删除。通过正确地重新定义 View 来解决这些问题。

最重要的是,通过将备份恢复到不同的服务器来测试您的备份。如果您还没有这样做,那么您就没有真正的备份。

输出文件可以压缩,通常可以使用 gzip/pigz、bzip2/bpzip2、xz/pixz 或 zpaq 压缩。这些按节省的空间量(gzip 节省最少,zpaq 节省最多)和速度(gzip 最快,zpaq 最慢)的大致顺序列出。 pigz、pbzip2、pixz 和 zpaq 将利用多核,如果你有的话。其他人一次只能使用一个核心。

关于mysql - 我怎样才能安全地备份一个巨大的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31132928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com