频繁的数据库备份工作流程

问题描述 投票:0回答:2

我们有一个数据库(mysql)驱动的应用程序,其中包含业务关键信息,正在寻找构建一个系统,允许我们经常备份数据库(比如每15分钟),以便我们减少任何数据丢失的危险。在两个设置之间撕裂的地方:

在cron上每隔15分钟添加一个备份作业,并将这些备份存储在另一台服务器上。 (为节省空间,我们会在3天后删除大部分备份,但保留06:00,12:00,18; 00小时版本。)

要么

是否存在类似RAID的设置,我们的所有数据都将自动复制到另一个硬盘驱动器或本例服务器,在这种情况下,如果我们丢失数据会发生什么情况,将丢失的数据传输到其他服务器(我们也会运行标准我们的档案每日备份到本版)?

要么

是否有另一种建立频繁备份的既定方法?

mysql workflow backup database-backups
2个回答
3
投票

在我看来,最佳备份方案将遵循。

  1. Delayed slave。它允许您在主机故障时快速恢复数据库。在DROP DATABASE或其他错误的SQL的情况下,它可能会有所帮助。所以,你还需要一些东西。
  2. 每天使用来自延迟奴隶的Xtrabackup进行增量备份。您也可以选择TwinDB进行增量备份。
  3. 只要您需要15分钟的粒度,您就可以使用MySQL 5.6中的mysqlbinlog从主服务器中提取二进制日志(即使主服务器是5.5或5.1)。因此,mysqlbinlog在远程主机上运行并从主服务器中提取日志。

如果需要还原数据库,则有两种方法。

  1. 如果您可以从延迟的从站恢复,则将该从站用作新的主站。
  2. 如果由于某种原因您无法使用延迟的从站(您错过了DROP命令),那么您将从增量备份中恢复昨晚的副本并应用自上次备份以来的二进制日志直到事故发生的时刻(同样,如果事故是您重播的错误DROP表记录到DROP之前的最后一个事件。

从性能角度来看,这种模式将是最佳的(对应用程序没有影响)并且根本不允许数据丢失。


1
投票

如果你的备份经常超过一小时,你需要的是replication。设置可用作热备用的辅助数据库服务器比使用重复读取滥用数据库要好得多。

如果您经常备份数据库,请查看innobackupex以快照表格,或者可能是LVM snapshots

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.