##一、作用:## 备份的重要性不用强调,做运维的同行朋友们都知道。其实在许多小型互联网公司,用的mysql比较多,很多都是没有备份,未开binlog,没有主从的”单点高危架构“。如果有机会进入这类公司工作,作为DBA的第一件事就是应该检查有无备份。备份的主要作用有下面三个: 1.容灾:硬件不靠谱,人员会误删. 2.从库:有从库不等于有备份,备份和从库都需要有。 3.定点快照 :主要为审计用,还有领导的数据定点恢复的要求。

##二、基本概念## ###物理备份、逻辑备份 物理备份:拷数据 拷贝数据块,可以备份日志文件、有平台依赖性 逻辑备份:从数据库中导出数据,SQL语句,只备份数据库中的数据 ###离线备份与在线备份(cold/hot/warm) 离线备(cold):数据库关掉
在线备(hot warm:锁住表):数据库运行中,对线上业务几乎不影响 ###全量备份与增量备份 全量备份时间点应选择在业务量最低时,要选择合适的备份策略,定期进行全量和增量备份。

##三、备份工具##
常用的一些MySQL备份工具:
1.mysqlbackup 企业版中提供,收费
2.mysqlhotcopy 过期的工具,备份myisam用
3.mysqldump 可以把数据备份成tap分隔文件 用mysqlimport恢复
4.mysqlbinlog -h 127.0.0.1 --read-from-remote-server --raw mysql-bin.000002 --server-id=id(远程抓取binlog文件。做增量备份。)

##四、在线热备##
xtrabackup/innobackupex:
1.innobackupex --defaults-file=/… /path 全量备份 path:备份的目录
2.innobackupex --incremental /data/backups --incremental-basedir=BASEDIR 增量备份(basedir为上次全量备份的path,增量备份基于lsn做的。数据库存储的基本单位为page,每个page中有lsn,是一个自增的序列号。)
3.innobackupex --incremental /data/backups --incremental-lsn=lsn

##五、备份恢复##
做恢复的几种常用方法:
1.innobackupex --apply-log --use-memory=4G /bkpath 之后就是prepared备份
2.innobackupex --copy-back /bkpath 把数据恢复
3.innobackupex --apply-log BASE-DIR 做增量恢复
4.innobackupex --copy-back BASE-DIR

##六、定点恢复## 用mysqlbinlog做定点恢复三种方法:
mysqlbinlog (in single process) 1.--start-position 定点开始 2.--stop-postion 定点结束 3.start slave until … 将从库恢复到指定位置