我应该使用mysqldump还是mysqlhotcopy进行MySQL数据库备份?


Answers:


5

我可以告诉你,我目前正在使用mysqldump维护数据库的备份。之所以这样做,是因为我的目标是保持每周备份,以便万一有人删除了他们的网页,我最多可以在一周前恢复它。

这样做的好处是,它是一个基本的文本文件,因此我可以将其导入到装有MySQL的任何计算机上,进行加载,然后搜索丢失的数据。注意:为了得到我想要的,我在脚本中使用的命令是这样的:

mysqldump --databases databaseName > /file/path

--databases是什么使的mysqldump转储CREATE DATABASE IF NOT EXIST头,这样我可以导入它的任何地方我想要的。

尽管此方法对我有用,但我敢肯定还有其他更好的方法可以用于其他目的。我也可以说,对于任何备份解决方案,您应该至少将其存储在另一台计算机上,并且如果可以的话,最好存储在异地(我们在云中)。


5

我会考虑使用一个名为“ WordPress数据库备份(WP-DB-Backup)” 的WordPress插件,插件也在Wordpress数据库备份指南中列出。该插件可以按计划备份数据库并将其通过电子邮件发送给您(假设它是一个小型数据库)。您也可以只在本地备份它。您可以排除垃圾评论和修订,以缩小数据库范围

控制较少,但易于实现。

MySQL转储为您提供最大的控制权。您的托管服务也可能是一个限制因素。某些主机不允许您访问运行cron作业或运行mysqldump命令。


4

建议#1

如果执行MySQL实例的任何备份,则最好设置MySQL Replicaton,以免以任何方式强加服务器负载或增加磁盘I / O都不会影响生产数据库。

设置MySQL复制,只要在从属服务器上运行这些mysqldumps,就可以用不同的方式编写mysqldump脚本(有关各种技术请参见我在DBA StackExchange上的帖子)。

建议#2

如果您不能为MySQL复制设置另一台服务器,并且所有数据都是InnoDB,则必须执行时间点mysqldump。这是通过使用--single-transactionmysqldump选项来完成的。因此,如果您从午夜开始运行mysqldump并且备份在12:15 AM结束,则还原后mysqldump的输出将反映截至12:00 AM的数据。

建议#3

MySQL备份的另一个可用程序是Percona的XtraBackup。

XtraBackup是一个功能全面的工具,其行为类似于rsync,但在生活中具有针对性。它可以开始复制所有InnoDB数据和表空间。它具有在内部创建检查点并就地执行InnoDB崩溃恢复的功能,以帮助获得完美的时间点备份。XtraBackup还具有一项额外功能,可用于创建增量备份。另一个附加功能是创建InnoDB日志文件,该文件也由就地崩溃恢复构建。还有一些包装器软件也可以提供MyISAM表的冻结复制。

它执行MySQL实例的后台,但有明显区别。备份的时间点基于备份完成的时间,而不是备份的开始时间。因此,如果您从午夜开始运行XtraBackup并且备份在12:15 AM结束,则还原时mysqldump的输出将反映截至12:15 AM的数据。



1

我建议使用许多现有的mySQL备份脚本中的一种来消除正确处理的麻烦。

我使用“ automysqlbackup”,它是一个开源的Shell脚本,可以将其设置为服务器上的cron作业。它涵盖了几乎所有可能的备份情况:http : //sourceforge.net/projects/automysqlbackup/。对于我来说,它已经完美地工作了几年-强烈推荐。


1

mysqlhotcopy是大约'05的Perl脚本。因此,它为Perl和各种Perl添加了依赖项。我会把这个传下去。

mysqldump是随MySQL一起分发并积极维护的C程序。如果添加-x选项,它将锁定表,因此您很聪明。

我个人在cron中有此脚本(如果要手动运行,则需要删除这些转义符),它对我来说就像是一种魅力,将我的每个数据库都备份到本地文件,以及所有数据库的完整转储。

而且,如果那里有多个数据库,则还需要为它们转储赠款。Maatkit将在这里mk-show-grants -uroot -pPASSWORD > mygrantsdatabase.sql为您提供帮助,而您只需备份您的拨款表并准备再次导入即可。


0

我也知道,许多服务器管理工​​具(例如Interworx和Ensim)使用mysqldump备份数据库,然后使用简单的mysql命令进行还原。由此,我猜测这是最好的方法之一。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.