MySQ数据备份

MySQL备份概述

问题:备份和冗余有什么区别?mysql

  • 备份:可以防止因为机械故障以及人为操做带来的数据丢失,例如将数据库文件保存在了其它地方。
  • 冗余:数据有多份冗余,但不等于备份,只能防止机械故障带来的数据丢失,例如主备模式、数据库集群。

备份是什么?sql

 databases     Binlog  my.cnf       /data/xxx(数据目录)数据库

备份数据库,还有日志文件,还有配置文件,尽量将数据目录里面的文件所有备份。多线程

备份过程当中必须考虑因素:工具

  • 一、必须制定详细的备份计划(备份频率、时间点、周期)(根据当前的业务状况,须要考虑备份的时间和备份数据的大小。数据量太大的话就使用冗灾)。
  • 二、备份数据应该放在非数据库本地,并建议有多份副本
  • 三、必须作好数据恢复的演练(每隔一段时间,对备份的数据在测试环境中进行模拟恢复,保证当出现数据灾难的时候可以及时恢复数据。)(保证数据的可用性)备份完成后进行断电模拟演练。测试数据库是否能够正常启动,数据可否正常进行恢复。
  • 四、根据数据应用的场合、特色选择正确的备份工具。
  • 五、数据的一致性。
  • 六、数据的可用性。

备份类型

逻辑备份

逻辑备份就是在不停业务的状况下进行备份。测试

备份的是建表、建库、插入等操做所执行SQL语句(DDL DML DCL),适用于中小型数据库,效率相对较低。this

(通常在数据库正常提供服务的前提下进行的);如:mysqldump、mydumper、 into outfile(表的导出导入)等spa

物理备份

直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不一样的MySQL版本。.net

(通常在数据库完全关闭或者不能完成正常提供服务的前提下进行的备份);如:tar、cp、xtrabackup、lvm snapshot等线程

在线热备

在线热备:AB复制(在线实时)(指的是对数据的冗余)

M-S

M-Sn

M-S1-S2

M-M-Sn

备份工具

社区版安装包中的备份工具

mysqldump

  • 企业版和社区版都包含
  • 本质上使用SQL语句描述数据库及数据并导出
  • 在MYISAM引擎上锁表,Innodb引擎上锁行
  • 数据量很大时不推荐使用

mysqlhotcopy

  • 企业版和社区版都包含
  • perl写的一个脚本,本质上是使用锁表语句再拷贝数据
  • 只支持MYISAM数据引擎

企业版安装包中的备份工具

mysqlbackup

  • 在线备份
  • 增量备份
  • 部分备份
  • 在某个特定时间的一致性状态的备份

第三方备份工具

XtraBackup和innobackupex

Xtrabackup是一个对InnoDB作数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品

Xtrabackup有两个主要的工具:xtrabackup、innobackupex

  • xtrabackup只能备份InnoDB和XtraDB两种数据表,不能备份myisam类型的表,也不能备份数据表结构。
  • innobackupex是将Xtrabackup进行封装的perl脚本,因此能同时备份处理innodb和myisam的存储引擎,但在处理myisam时须要加一个读锁

mydumper

mydumper 多线程备份工具

https://launchpad.net/mydumper/mydumper-0.9.1.tar.gz 2015-11-06(最后更新时间)

备份方法

彻底备份

增量备份

 

差别备份

差别增量备份

 

 • Sunday
An incremental level 0 backup backs up all blocks that have ever been in use in this database.

• Monday through Saturday
On each day from Monday through Saturday, a differential incremental level 1 backup backs up all blocks that have changed since the most recent incremental backup at level 1 or 0. The Monday backup copies blocks changed since Sunday level 0 backup, the Tuesday backup copies blocks changed since the Monday level 1 backup, and so forth.

累计增量备份

• Sunday
An incremental level 0 backup backs up all blocks that have ever been in use in this database.

• Monday - Saturday
A cumulative incremental level 1 backup copies all blocks changed since the most recent level 0 backup. Because the most recent level 0 backup was created on Sunday, the level 1 backup on each day Monday through Saturday backs up all blocks changed since the Sunday backup.

 

须要掌握的备份方法:

逻辑数据的导入导出(into outfile)mysqldump、mysqlhotcopy、xtrabackup和innobackupex
lvm-snapshot、mysqlbackup

相关文章
相关标签/搜索