我们有一个php应用程序和mysql服务器运行在我们的生产服务器之一。Mysql服务器目前的容量是4GB,打算增长到几十甚至几百GB。
我想知道的是,在任何情况下,应用程序必须处于活动状态时,mysql数据库备份的最佳实践是什么?还有什么更好的方法是让mysql复制服务器运行备份脚本,还是在实时服务器上运行呢?如果需要的话,我们有可能增加额外的服务器。我需要在哪里存储mysql转储?是否建议ftp将mysql备份文件复制到远程服务器。
如果服务器实例数量没有问题,那么组织web应用程序备份的最佳实践是什么?
发布于 2014-05-12 10:00:52
MySQL备份方法记录在MySQL文档上。
理想的备份解决方案将是使用MySQL企业备份。这是一种在甲骨文商店销售的授权产品。与mysqldump相比,它非常快。
MySQL企业备份:对MySQL数据库执行热备份的授权产品。它在备份InnoDB表时提供了最大的效率和灵活性,但也可以备份MyISAM和其他类型的表。
如果您正在寻找MySQL社区版本的免费解决方案,那么您可以安装另一个复制服务器,或者运行mysqldump进行备份,或者进行原始数据备份。在复制服务器上备份期间,主主数据库将运行。由于您的数据很大或将变得更大,因此建议备份原始数据文件。它基本上是一个从磁盘复制数据和日志文件的过程。详细信息将在MySQL文档上解释。
对于较大的数据库,其中mysqldump将不切实际或低效,您可以备份原始数据文件。使用原始数据文件选项还意味着您可以备份二进制日志和中继日志,这将使您能够在从服务器故障时重新创建从日志。
最后,您应该将备份文件复制到同一台磁盘上的另一个物理磁盘,以便从磁盘故障中恢复,或者复制到另一个物理服务器,以便轻松地从完全服务器故障中恢复。
发布于 2020-12-19 19:56:05
复制是防止硬件错误的东西,例如硬盘崩溃。
备份-防止软件错误,例如,由于人为因素,数据已从表中删除。
通过运行实用程序在副本上创建备份,将这两种技术结合起来无疑是很好的做法。这不仅减少了产品数据库的负载,而且还涵盖了更多的恢复方案。
在硬件错误的情况下,您可以从副本中恢复最最新的数据,如果数据损坏,您可以考虑从什么日期开始使用备份进行恢复。如果您的主服务器和副本都失败了,那么备份也会拯救您。
做备份的最好方法是什么?
米斯德是小型数据库的一个很好的解决方案。这是一个用于创建逻辑备份nad的实用程序,它包含在MySQL服务器中。在输出端,该实用程序创建一个.sql文件来重新创建数据库。
对于大型数据库,最好使用物理备份。关于如何做到这一点,有两种方法。
mysqlbackup是MySQL企业解决方案中包含的实用工具。因此,您将得到一个二进制文件。这样的备份比使用mysqldump创建的要快得多,而且服务器上的负载也较少。
来自Percona的xtrabackup很像MySQL企业备份实用程序,但它是免费的。更详细的比较可以找到这里。
应该多久备份一次?
备份的频率越高,越好,但是这样的备份不会太多--因为备份存储中的空间会耗尽。有两种方式:
备份应该存储在哪里?
任何您喜欢的地方,但不是在相同的地方与MySQL服务器。总的来说,我认为使用云存储是一个不错的选择。现在几乎每个人都有一个命令行接口。
如何自动备份?
建立定期备份的过程应该是自动化的,只有在失败的情况下,一个人才应该介入。一个良好的备份过程应该包括以下步骤:
实现这一点的最简单脚本可以找到,例如,这里。
还有别的吗?
是的,最重要的是不要创建备份,然后恢复备份。因此,定期测试恢复场景是最佳做法。
备份愉快!
发布于 2018-09-19 13:14:04
更好的方法是让mysql复制服务器运行备份脚本,或者在实时服务器上运行。
这取决于您的db大小(以及使用mysqldump转储它所需的时间)和您的可靠性要求。
如果您的db相对较小,mysqldump在几秒钟内或几分钟内将其转储,那么只运行预定备份就可以了。在大多数情况下,每天备份就足够了,在应用程序大部分空闲的时候(在客户睡觉的晚上)运行备份。为此,您可以使用一个很好的工具自动备份:它关心调度和备份轮转,只需将其添加为cron任务并设置一次配置即可。
只有在下列情况下才需要设置副本:
在这种情况下,您可能需要一个备份副本。尽管您必须理解添加复制会增加一个新的问题层:副本可能会失去同步,但会悄然崩溃(当主程序和应用程序运行良好时,您不会注意到)。
https://stackoverflow.com/questions/23604708
复制相似问题