首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL数据库备份:无锁、按表还原、MyISAM/InnoDB

MySQL数据库备份:无锁、按表还原、MyISAM/InnoDB
EN

Server Fault用户
提问于 2014-03-03 11:10:56
回答 5查看 883关注 0票数 3

问题

我想在专用服务器上实现MySQL备份策略。

它有多个数据库,加起来的总容量约为150 is。其中大部分都是针对其中一个数据库的。

数据库是混合引擎MyISAM和InnoDB (计划是长期的,但短期内是不可能的)。

寻找可供使用的策略/软件的建议。

关键目标

理想的MySQL备份过程将实现以下目标。

  1. 一致的MySQL备份。
  2. 无锁备份(或接近使数据库仍然可以服务请求)。
  3. 每张桌子复原。

建议到目前为止

我不是一个专业的sys/db管理员,所以我会感谢社区的学习建议。到目前为止我有一些建议。

mysqllvm荷兰备份

荷兰备份有一个mysqllvm选项。

它通过拍摄MySQL数据目录的完整快照来工作。它锁定非常短的时间,而快照是采取和一致的。

它实现了目标1和2。

目标3,没那么.只有恢复整个数据目录是可能的。每个数据库恢复都是不可能的,更不用说每个表了。

mysqldumplvm荷兰备份

荷兰备份有一个mysqldumplvm选项。

这就实现了目标1和2。

目标3,没那么.它只允许从.sql转储中恢复每个数据库,由于数据库的大小,恢复到虚拟数据库需要花费几个小时的时间,只需提取一个表。在这里,磁盘空间可能开始成为一个问题。

EN

回答 5

Server Fault用户

发布于 2014-03-03 12:41:50

我想你知道目标3与目标1相矛盾。

显而易见的解决方案是在镜像文件系统上实现数据存储。当您想要进行备份时,停止DBMS、刷新写缓冲区、破坏镜像并重新启动DBMS,然后将镜像文件系统挂载到其他地方,然后使用该副本启动DBMS的第二个实例,并将其用于备份。

(虽然您可以在不关闭DBMS的情况下破坏镜像,但是您必须修复数据,并且没有一致的快照)。

或者,将复制群集设置到第二台计算机,并从另一个节点执行备份。

(使用文件系统快照可能是另一种方法,但LVM或BTRFS的性能开销很大)。

票数 0
EN

Server Fault用户

发布于 2014-03-03 12:44:48

您还可以考虑Percona XtraBackup (http://www.percona.com/software/percona-xtrabackup),尽管它与MyISAM不兼容

编辑:实际上它与MyISAM兼容

票数 0
EN

Server Fault用户

发布于 2014-03-03 14:22:03

如果使用Xtrabackup和InnoDB,则可以实现1、2和3。对于MyISAM来说,不可能获得所有这三种情况。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/579457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档