#1 楼
我可以告诉你,我目前正在使用mysqldump维护数据库的备份。之所以这样做,是因为我的目标是保持每周备份,以便在某人删除其网页的情况下,最多可以在一周前恢复它。这样做的好处是它是一个基本的文本文件,因此我可以将其导入到装有MySQL的任何计算机上,进行加载,然后搜索丢失的数据。注意:为了得到我想要的,我在脚本中使用的命令是这样的:
mysqldump --databases databaseName > /file/path
--databases
是使mysqldump转储CREATE DATABASE IF NOT EXIST
标头的原因可以将其导入到我想要的任何位置。尽管此方法对我有用,但我确信有更好的方法可用于其他目的。我也可以说,对于任何备份解决方案,您都应该至少将其存储在另一台计算机上,如果可以的话,最好存储在异地(我们在云中)。
#2 楼
我会考虑使用一个名为“ WordPress数据库备份(WP-DB-Backup)”的WordPress插件,该插件也在Wordpress数据库备份指南中列出。该插件可以按计划备份数据库并将其通过电子邮件发送给您(假设它是一个小型数据库)。您也可以只在本地备份它。您可以排除垃圾评论和修订,以使数据库更小控件较少,但易于实现。
MySQL转储为您提供了最大的控制权。您的托管服务也可能是一个限制因素。某些主机不允许您访问运行cron作业或运行mysqldump命令。
#3 楼
建议#1如果执行MySQL实例的任何备份,则最好设置MySQL Replicaton,以免任何施加服务器负载或增加磁盘I / O的方式都不会影响生产数据库。
设置MySQL复制后,只要您在从站上运行这些mysqldumps,就可以用不同的方式编写mysqldump脚本(请参阅我在DBA StackExchange上的文章以了解各种技术)。
建议#2
如果您不能为MySQL复制设置另一个服务器,并且所有数据都是InnoDB,则必须执行时间点mysqldump。这可以通过在mysqldump中使用
--single-transaction
选项来完成。因此,如果您从午夜开始运行mysqldump并且备份在12:15 AM结束,则恢复时mysqldump的输出将反映截至12:00 AM的数据。建议#3
另一个可用于MySQL的程序备份是Percona提供的XtraBackup。
XtraBackup是一种功能全面的工具,其行为类似于rsync,但具有一定的用途。它可以开始复制所有InnoDB数据和表空间。它具有在内部创建检查点并就地执行InnoDB崩溃恢复的功能,以帮助获得完美的时间点备份。 XtraBackup还具有一项额外功能,可用于创建增量备份。另一个附加功能是创建InnoDB日志文件,该文件也由就地崩溃恢复构建。还有一些包装软件也可以提供MyISAM表的冻结复制。备份的时间点基于备份完成的时间而不是备份的开始时间。因此,如果您从午夜开始运行XtraBackup并且备份在12:15 AM结束,则还原时mysqldump的输出将反映截至12:15 AM的数据。
#4 楼
取决于表的存储引擎。它仅适用于符合本MySQL手册页的ARCHIVE和MyISAM表,并且必须在同一台机器上运行(即,不使用本地套接字或TCP / IP)。MySQL还说
如果要在
服务器上进行备份,并且您的表都是MyISAM
表,请考虑使用
mysqlhotcopy,因为它可以
完成更快的备份,并且恢复更快
。
#5 楼
我建议使用许多现有的mySQL备份脚本中的一种来消除正确操作带来的痛苦。服务器上的cron作业。它涵盖了几乎所有可能的备份情况:http://sourceforge.net/projects/automysqlbackup/。它已经为我完美地工作了好几年了-强烈推荐。#6 楼
mysqlhotcopy是大约'05的Perl脚本。因此,它为Perl和各种Perl添加了依赖性。我将继续进行下去。mysqldump是随MySQL分发并积极维护的C程序。如果您添加-x选项,它将锁定表,因此您很聪明。
我个人在cron中有此脚本(如果要手动运行,请删除那些`转义符。 ),这对我来说就像是一种魅力,将我的每个数据库备份到一个本地文件,以及所有数据库的完整转储。
如果那里有多个数据库,您还需要为他们转储赠款。 Maatkit将在这里为您提供帮助,您只需
mk-show-grants -uroot -pPASSWORD > mygrantsdatabase.sql
即可备份您的赠款表,并准备再次导入。