备份和恢复
备份和恢复
- 为什么要备份 灾难恢复:硬件故障、软件故障、自然灾害、黑客攻击、误操作测试等数据丢失场景
- 备份注意要点
- 能容忍最多丢失多少数据
- 恢复数据需要在多长时间内完成
- 需要恢复哪些数据
- 还原要点
- 做还原测试,用于测试备份的可用性
- 还原演练
备份类型
- 注意:二进制日志文件不应该与数据文件放在同一磁盘
冷、温、热备份
- 物理和逻辑备份
- 物理备份:直接复制数据文件进行备份,与存储引擎有关,占用较多的空间,速度快
- 逻辑备份:从数据库中“导出”数据另存而进行的备份,与存储引擎无关,占用空间少,速度慢,可能丢失精度
示例
备份时需要考虑的因素
- 备份什么 数据 二进制日志、InnoDB的事务日志 程序代码(存储过程、函数、触发器、事件调度器) 服务器的配置文件
备份工具
- cp, tar等复制归档工具:物理备份工具,适用所有存储引擎;只支持冷备;完全和部分备份
- LVM的快照:先加锁,做快照后解锁,几乎热备;借助文件系统工具进行备份
- mysqldump:逻辑备份工具,适用所有存储引擎,温备;支持完全或部分备份;对InnoDB存储引擎支持热备,结合binlog的增量备份
- xtrabackup:由Percona提供支持对InnoDB做热备(物理备份)的工具,支持完全备份、增量备份
- MariaDB Backup: 从MariaDB 10.1.26开始集成,基于Percona XtraBackup 2.3.8实现
- mysqlbackup:热备份, MySQL Enterprise Edition组件
- mysqlhotcopy:PERL 语言实现,几乎冷备,仅适用于MyISAM存储引擎,使用LOCK TABLES、FLUSH TABLES和cp或scp来快速备份数据库
基于LVM的备份
- 逻辑备份工具:mysqldump, mydumper, phpMyAdmin
- Schema和数据存储在一起、巨大的SQL语句、单个巨大的备份文件
- mysqldump工具:客户端命令,通过mysql协议连接至mysql服务器进行备份 mysqldump参考:https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
- MyISAM备份选项: 支持温备;不支持热备,所以必须先锁定要备份的库,而后启动备份操作锁定方法如下:
- x,–lock-all-tables:加全局读锁,锁定所有库的所有表,同时加–single-transaction或–lock-tables选项会关闭此选项功能
注意:数据量大时,可能会导致长时间无法并发访问数据库
\-l,–lock-tables:对于需要备份的每个数据库,在启动备份之前分别锁定其所有表,默认为on,–skip-lock-tables选项可禁用,对备份MyISAM的多个库,可能会造成数据不一致注:以上选项对InnoDB表一样生效,实现温备,但不推荐使用(可能靠成数据不一致,备份数据库的时间不一致,没有太大的意义)
- InnoDB备份选项: 支持热备,可用温备但不建议用
- \-single-transaction 此选项Innodb中推荐使用,不适用MyISAM,此选项会开始备份前,先执行START TRANSACTION指令开启事务 此选项通过在单个事务中转储所有表来创建一致的快照。 仅适用于存储在支持多版本控制的存储引擎中的表(目前只有InnoDB可以); 转储不保证与其 他存储引擎保持一致。 在进行单事务转储时,要确保有效的转储文件(正确的表内容和二进制日志位置),没有其他连接应该使用以下语句:ALTER TABLE, DROP TABLE,RENAME TABLE,TRUNCATE TABLE(由于开启事务在备份,事务是隔离的,数据的完整性,一致性,事务开始的状态,不影响并发,注意DML语句、修改、删除、改表名、删除表数据,一般生产数据发生变化,DML使用的少) 此选项和–lock-tables(此选项隐含提交挂起的事务)选项是相互排斥备份大型表时,建议将–single-transaction选项和–quick结合一起使用
生产环境实战备份策略
- InnoDB建议备份策略
- MyISAM建议备份策略
示例
分库并压缩
示例一:完全备份和利用二进制日志实现增量备份,并还原至数据库的故障前的最新状态
示例二:恢复误删除的表
小结
1、备份注意加上指定的字符集 –default-character-set=utf8
2、-q, –quick 不缓存查询,直接输出,加快备份速度,备份加上此参数会更快
3、-A -F -E -R 组合使用 -A 所有 -F滚动日志 -E计划任务 -R存储过程 ER可以忽略,-A表示已经包含了
4、建议备份先加锁 flush tables with read lock;
5、完整备份、增量备份、差异备份
A—-B—-C—-D
增量备份的情况下
A完整备份,B-A,C-B,D-C
差异备份
A完整备份,B-A,C-A,D-A
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 438803792@qq.com
Loading...
keepalived