在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、简介
|
备份种类 | 逻辑备份 | 物理备份 |
---|---|---|
简介 | 利用mysqldump等命令实现备份 | 直接复制数据库文件 |
优点 | 可以文本编辑,恢复简单,使用mysqldump备份灵活。 | 足够直观,备份和恢复过程,本质上就是文件的移动。恢复速度更快。MySQL服务器几乎不需要执行操作。 |
缺点 | 备份和恢复都需要MySQL服务参与、且占用CPU资源。有可能很慢 | InnoDB的原始文件通常比逻辑备份大得多。 |
物理备份和逻辑备份的一点抉择:
物理备份简单高效,逻辑备份尽量也要做。【两者都要有,看具体需求和资源分配】
其次:除非经过测试,否则不能假设备份可用。比如使用 mysqlcheck -A 测试数据库。
Binlog也是备份中的重要一环,因为基于时间点的恢复需要用到它。而且Binlog一般很小,频繁的备份也较容易实现。如果有某个时间点的数据备份,加上自那以后的所有Binlog,就可以回滚所有变动。
FLUSH LOGS --log_slave_updata
需要注意的是,expire_log_days是通过 日志文件的修改时间 来判断的,而不是内容。(如果一直只有一个Binlog文件,可能就不会清理)。所以一定要使用 FLUSH LOGS 定期刷新Binlog。
最好使用expire_log_days来进行自动的清理,保留一定天数。如果需要用cron清理。那么 不要使用 find+rm配置的cron清理日志。
0 3 * * * /usr/bin/mysql /var/log/mysql -mtime +N -name "mysql-bin.[0-9]"* | xargs rm
使用如下cron代替:
0 3 * * * /usr/bin/mysql -e "PURGE MASTER LOGS BEFORE CURRENT_DATE - INTERVAL N DAY"
增量备份:自任意类型备份后,改动的所有内容的备份。
差异备份:特指自上次 全备份 之后,改动的所有内容的备份。
也就是说,差异备份基于全备份。而增量备份基于任意备份(比如某一个指定的差异备份。
差异备份可选项:
虽然这样做差异备份可以提高恢复速度。但是全备份还是很有必要的。( 全备份可以频率低,但是必须有 )。
在从库中备份,有时候是一个 可选项 ,不会干扰到主库,避免给主库增加更多的负载。其次,当计划从从库备份的时候,要保存更多信息,比如从库相对于主库的位置(偏移)等。
首先 从库不等于备份 ,从库和主库数据不匹配是很常见的。其次、从从库备份确实可以减轻主库备份时的负载,但是不够好。稳定起见,还是建议进行主库备份、全备份。
离线备份是最简单最安全的。也是一致性最好的。问题就是,大部分数据库不能接受停机备份。所以基本还是用在线备份,或者说不停机备份
可以考虑在业务低峰期进行在线备份,即使负载增大也不会有太大影响。
数据一致性:对于多个表之间数据的一致性要求。(比如两个逻辑相关的操作分在了两个事务内,而备份在两个事务之间执行,就会导致数据不一致)
InnoDB可以在转储一组相关表的时候,开始一个事务,这样可以很大程度上保证数据的一致性。
但是也要注意,如果事务设置的不合理,比如一组相关表的修改分在了两个事务内,这仍然会导致数据不一致。( 一组表的相关操作需要确保在一个事务内 )
能恢复的备份才有价值,不是有备份就可以
本文讲解了一些备份的基本知识和概念,包括一些基本概念、恢复的重要性、备份和恢复的简单策略。还提及到了备份内容的选择、差异/增量备份、Binlog备份等。后续还需要继续学习,了解备份和恢复的具体操作方法和实践。
以上就是浅析MySQL 备份与恢复的详细内容,更多关于MySQL 备份与恢复的资料请关注极客世界其它相关文章!
请发表评论