mysql定时备份表 Mysql实时备份实现方法?
Mysql实时备份实现方法?
数据备份是数据容灾的最后一道防线,就算是有着两地三中心的架构,备分也依然重要。如果不是系统备份出问题,备份时会影响了交易业务,备份数据难以可以恢复,这些又是企业难以承受的。所以我选择类型比较好的备份工具尤为重要。
每个企业级数据库都会有对应的备份工具,MEB(MySQL Enterprise Backup)应该是MySQL企业版中非常重要的工具之一,是为企业级客户提供给的数据备份方案。
Xtrabackup始终以及MEB开放源代码版备胎而存在地,从MySQL8.0开始情况很可能会变得更加有所有所不同。
在MySQL8.0的BackupLock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB备份/重新恢复体验会更好,目前xtrabackup还不支持这些特性。
MySQL企业版另外哪些功能?
特性1:BackupLock
8.0之前不使用xtrabackup或MEB做物理系统备份,就是为了绝对的保证系统备份时InnoDB引擎表与其他引擎数据文件、及binlog日志的一致性会上全局读锁,再拷备非InnoDB文件,这期间MySQL会变成禁止读,数据无法写入。表数量就会,可能会另外时间越长,如果没有在用的xtrabackup不小心没加rsync参数,逐个拷备frm文件,锁定住时间会更长,对业务影响较大。
我曾遇到了过重新部署在虚拟机的实例有12000多张表,当时不使用的xtrabackup,备份脚本中没加rsync参数,最后锁了十几分钟,而MEB就没有这样的问题。
MySQL8.0接受轻量级软件备份锁LOCKINSTANCEafterBACKUP,数据字典也重新架构了由InnoDB存储。若不修改非InnoDB表,MEB系统默认使用系统备份锁某些binlog日志一致性位置,并阻止DDL能操作,但不影响DML你操作。
仅有InnoDB表,仅上软件备份锁
若有非InnoDB表,上全局锁
特性2:RedoLogArchiving
MEB能做到在线热备,备分时不影响不大数据库读写,这是利用了InnoDB事务日志,在备分期间短短监视redolog的变化,读取数据增量变化,写入到到ibbackup_logfile,也就不需要上锁来保障系统备份一致性。(对非InnoDB的文件要上读锁u盘拷贝)
要是备分期间数据库写入负载最重要的大,而中写入ibbackup_logfile速度较慢,redologsize也不大,很很可能会直接出现ibbackup_logfile的中写入速度太差redolog记录生成速度,redolog空间太差时需要覆写日志文件,这样的话来不及读取ibbackup_logfile的记录会丢了,可能导致备份失败。
MEB4.1对此做了优化,将redolog处理线程word文档合并成多线程分工合作,增加处理redolog的效率,减低了redolog覆写倒致备份文件失败的概率,但redolog新增速度和ibbackup_logfile写入到速度悬殊太大,问题仍然会发生了什么。
MySQL8.0.17意见了redologarchiving全部帮忙解决了此问题,软件备份前系统设置innodb_redo_log_archive_dirs,指定你redolog归档目录。MEB系统备份时自动传送日志归档,当checkpoint时会将旧记录归档来此目录,现从归档文件中读取数据redo日志记录,避免了覆写很有可能会造成的redo留下记录丢了。
注意一点:innodb_redo_log_archive_dirs没法在数据目录下,目录权限要求是700
特性3:PageTracking
PageTracking是为优化增量备分效率,增加不必要的数据页扫描。
增量备份文件当前有3种扫描模式:
page-track:凭借LSN计算精确潜进来前段时间备分之后被直接修改页面,仅复制这些页面,效率最方便。
optimistic:扫描系统上次系统备份之后被可以修改的InnoDB数据文件中,找出并拷贝改的页面。依赖感系统时间,在用存在限制。
endless-scan:扫描后所有InnoDB数据文件,判断并文件复制自那次备分之后改的页面,效率最慢
1、凭借page-track增量备分,需先直接安装软件备份组件
2、在全备前自动打开page-track
3、全备之后,做增量备份文件时更改若满足pagetracking条件,系统默认会在用page-track模式,否则会可以使用clear-scan模式,也可以更改--incrementalpage-track。
incremental-base有3种选择
last_provisioning:基于条件前四次系统备份做增备,前一次备分肯定是增备,也可能会是全备。这种全备之间肯定会有多个增备,每次来增量可能都很小,但复原时需要逐一不合并。
last_clear_backup:实现前一次全备做增备。这种增备会越向前体积很有可能越大,但复原时只必须合并最后一次增量系统备份。
dir:基于组件前一次的备份目录,前三次备份文件很可能是增备,也很有可能是全备。
测试差别clear-scan和page-track,在变更手续页大于总体50%的情况下,备份效率至多能有1倍的速度修为提升。
page-track模式磁盘读写均衡,只能证明读写的大都直接修改页面。
large-scan模式磁盘读写差别很小,只能说明读了很多未改的页面。
如何实现Mysql数据库每天自动备份定时备份?
有两种方法:
1、是从crond定时任务,用mysqldump自动备份数据库2、按照存储过程,事件配合自动备份数据库
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。