MySQL 备份与恢复Blog Twitter fire910年4月3日星期六概述备份的目的备份的方式备份的内容备份的策略恢复与还原备份的工具10年4月3日星期六为什么要备份灾难恢复防止用户的误操作程序上的bug应用测试业务特殊的需求审计10年4月3日星期六备份的准备工作数据丢失的允许程度数据库的大小数据增长的速度数据库恢复或还原的时间数据恢复或还原的技术难度业务处理的频繁程度哪些表中数据变化是频繁的,哪些表中的数据句是固定的10年4月3日星期六备份的准备工作哪些表中的数据是很重要的,不允许丢失,哪些表中的数据是允许丢失一部分的什么时候大量使用数据库,导致频繁的插入和更新操作现有的数据库备份资源有哪些?(存储,磁盘,磁带,光盘)有无可能为数据库备份投入新的设备和资金10年4月3日星期六备份的方式备份逻辑备份物理备份热备份冷备份10年4月3日星期六备份带来的影响备份需要花费的时间是否影响应用如何选择冷备份,热备份,温备份数据库的大小业务的需求提早做出备份计划10年4月3日星期六怎么去做备份统计你的数据库服务器 (实例,库)建立自己的数据库备份服务器熟悉备份数据库的存储引擎 (充分掌握存储引擎的特性)使用MySQL的异步复制自己编写脚本第三方备份工具和存储技术10年4月3日星期六如何管理备份自动化安全&加密管理备份的权限10年4月3日星期六备份的跟踪备份的成功失败以及备份日志进行报告备份数据的保存周期备份空间的容量使用情况清理过期的备份测试备份有效性10年4月3日星期六逻辑备份恢复方便可跨平台可跨网络进行备份恢复可避免数据损坏纯文本文件可机遇时间和检查点恢复10年4月3日星期六物理备份备份速度快操作简单可跨平台,操作系统,MySQL版本INNODB的物理文件要比逻辑备份大不是所有物理备份都可以跨平台,操作系统,MySQL版本10年4月3日星期六增量备份备份二进制文件不备份没有变动表只备份二进制变化的部分只备份数据文件变化的部分10年4月3日星期六备份内容数据和日志INNODB事物日志复制信息服务器配置信息10年4月3日星期六备份策略参考业务的需求制定备份的周期定期做恢复测试备份与还原速度备份容量的规划10年4月3日星期六不同类型的恢复整个服务器不同的数据库不同的表不同的事务不同的数据库版本夸平台的数据迁移10年4月3日星期六恢复数据的方式你想什么时间点恢复你的数据库? Recovery Point Objective (RPO)你有多少时间恢复你的数据库?Recovery Point Objective (RPO)10年4月3日星期六恢复与还原单表恢复从binlog中恢复从备份中恢复即时点还原 复制延迟还原日志服务器还原INNODB还原10年4月3日星期六INNODB还原修复损坏的二级索引修复损坏的聚集索引修复损坏的系统结构(可能存在数据丢失)10年4月3日星期六规划lvm备份估算备份所要花费的时间考虑INNODB写入数据的方式记住lvm只要把更新的数据块复制到快照里一次就行监控快照备份时带来的负载情况10年4月3日星期六LVM快照是如何工作的与数据来源一致的逻辑副本快照 快照ABCDABCDB来源数据卷 被更改数据卷保留区域 保留区域10年4月3日星期六LVM snapshot 优缺点免费操作系统自带速度快,负载低快速恢复支持全部存储引擎不需要停机10年4月3日星期六执行过程FLUSH TABLESFLUSH TABLES WITH READ LOCKCreate the snapshop (lvcreate -s)(SHOW MASTER/SLAVE STATUS)UNLOCK TABLESMount snapshot, perform backupUnmount and discard the snapshot (lvremove)10年4月3日星期六备份工具mysqldumpmysqlhotcopyLVM snapshots/ZFS snapshotsInnoDB Hot Backup/XtrabackupZRM for MySQL10年4月3日星期六IdeasQuestionsSuggestions10年4月3日星期六