MySQL备份

在MySQL创建表时,可以选择不同的存储引擎,这也就意味着,一个数据库可以是多种存储引擎混用的。而备份是由底层的存储引擎执行的,因此多存储引擎混用给数据库备份带来了难度。
正因为如此,MySQL中备份分为两种:逻辑备份和物理备份。
逻辑备份的本质是,MySQL查询数据库各个表的数据,后将其导出为一个文件。该文件为MySQL能够解析的一种文件,要么是SQL,要么是以某个符号分隔的文本。这种方法跳过了底层存储引擎的不同。而物理备份就是将包含数据的目录和文件做简单的拷贝。

逻辑备份的优点:
1,逻辑备份是可以用像grep或sed之类的命令查看和操作的普通文件。当需要恢复数据或只想查看数据时,这都非常有用。
2,恢复非常简单。可以通过管道把它们输入到MySQL,或者使用mysqlimport工具。
3,非常灵活,因为mysqldump–大部分人喜欢的工具–可以接受许多选项,例如可以用where子句来限制需要备份哪些行。
4,与存储引擎无关。可以从InnoDB表备份,然后需要极小的工作量就可以还原到MyISAM表中。而对于原始数据却不能这么做。
5,备份数据不容易损坏。因为物理备份可能得到的是一个不一致的备份。
6,逻辑备份可以在MySQL server运行时进行,server不需要offline。
7,对于内存表,逻辑备份也可以正常工作。
逻辑备份工具包括mysqldump和SELECT … INTO OUTFILE语句。

逻辑备份的缺点:
1,必须由数据库服务器完成逻辑备份的工作,因此需要更多的CPU周期。
2,无法保证导出后再还原的是一样的数据。浮点表示的问题,软件bug等都会导致问题,尽管非常少见。
3,最大的缺点就是,从逻辑备份中还原需要MySQL加载和解释语句,转化为存储格式,并重建索引。所有这一切会很慢。
Plus,mysqldump,在使用InnoDB表时能起到帮助作用,因为它会对输出格式化,以便在加载时利用InnoDB的快速键索引的优点。

物理备份的优点:
1,基于文件的物理备份,只需要将需要的文件复制到其他地方即可,因此很快。
2,恢复也很简单。对于MyISAM,只需要将备份文件复制到目的地即可。对于InnoDB则需要停止数据库服务,可能还要采取其他一些步骤。
3,InnoDB和MyISAM的物理备份非常容易跨平台,操作系统和MySQL版本。
4,恢复速度很快,因为不需要重建索引。

物理备份的缺点:
1,物理备份不总是可以跨平台,操作系统和MySQL版本。
2,InnoDB的原始文件通常比相应的逻辑备份要大得多。InnoDB的表空间往往包含很多未使用的空间,还有很多被用来插入缓冲,回滚段等用途的空间。
3,比起逻辑备份更有可能出错,因此需要用验证备份。
4,最大的缺点就是物理备份需要在MySQL server不运行的时候执行。如果server正在运行,则必须加上合适的锁以保证在备份期间,数据不会发生变化。MySQL Enterprise Backup工具可以在备份时自动加锁。

物理备份工具包括mysqlbackup of MySQL Enterprise Backup for InnoDB or any other tables, or file system-level commands (such as cp, scp, tar, rsync) for MyISAM tables.

在生产实践中,对于大数据库来说,物理备份是必须的:逻辑备份太慢,恢复时间太长。而小数据库逻辑备份可以胜任。而快照备份可能是最好的选择。

快照备份
Some file system implementations enable “snapshots” to be taken. These provide logical copies of the file system at a given point in time, without requiring a physical copy of the entire file system. (For example, the implementation may use copy-on-write techniques so that only parts of the file system modified after the snapshot time need be copied.) MySQL itself does not provide the capability for taking file system snapshots. It is available through third-party solutions such as Veritas, LVM, or ZFS.

最好的选择是基于快照的备份,例如Percona XtraBackup和MySQL Enterprise Backup。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值