我怎样才能安全备份庞大的数据库?

Joe*_*oyd 6 mysql database drupal mysqldump phpmyadmin

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

我无法用PHPMyAdmin做到这一点,我刚开始构建.sql文件时遇到错误.

我想确保在尝试备份时不会破坏任何东西或关闭服务器或其他任何东西.

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

感谢输入的人.

Mic*_*bot 11

在一次这么多表上使用mysqldump是否安全

mysqldump在服务器上运行每日备份10倍这么大:15000+表,100 + GB.

如果你还没有检查过mysqldump... 产生的文件的内容,你应该知道它的输出是为了理解为什么它是一个本质安全的备份工具:

备份是人类可读的,完全由必要的SQL语句组成,以创建与您备份的数据库完全相同的数据库.

在这种形式中,它们的内容很容易用普遍使用的工具来操作,例如sed,grepperl,它们可以用来从文件中拔出一个表进行恢复.

如果还原失败,则错误将指示文件中发生错误的行号.这通常与创建备份的服务器版本中的错误行为有关(例如,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将利用多个核心.其他人一次只能使用一个核心.