2023年7月30日发(作者:)
mysql数据库备份机制_mysql备份机制有哪些只有InnoDB表,仅上备份锁请点击输⼊图⽚描述若有⾮InnoDB表,上全局锁请点击输⼊图⽚描述特性2:Redo Log ArchivingMEB能做到在线热备,备份时不影响数据库读写,这是利⽤了InnoDB事务⽇志,在备份期间持续监视redo log的变化,读取增量变化,写⼊到ibbackup_logfile,也就不需要上锁来保障备份⼀致性。(对⾮InnoDB的⽂件需要上读锁拷贝)如果备份期间数据库写⼊负载特别⼤,⽽写⼊ibbackup_logfile速度较慢,redo log size也不⼤,很可能会出现ibbackup_logfile的写⼊速度跟不上redo log记录⽣成速度,redo log 空间不够时需要覆写⽇志⽂件,那么来不及写⼊ibbackup_logfile的记录会丢失,导致备份失败。MEB 4.1对此做了优化,将redo log处理线程拆分成多线程分⼯合作,提⾼处理redo log的效率,降低了redo log覆写造成备份失败的概率,但redo log新增速度和ibbackup_logfile写⼊速度悬殊太⼤,问题依然会发⽣。MySQL 8.0.17⽀持了redo log archiving 彻底解决了此问题,备份前设置innodb_redo_log_archive_dirs,指定redo log归档⽬录。MEB备份时⾃动开启⽇志归档,当checkpoint时会将旧记录归档到此⽬录,后续从归档⽂件中读取redo⽇志记录,避免了覆写可能导致的redo记录丢失。请点击输⼊图⽚描述注意:innodb_redo_log_archive_dirs 不能在数据⽬录下,⽬录权限要求是700特性3:Page TrackingPage Tracking 是为优化增量备份效率,减少不必要的数据页扫描。增量备份当前有3种扫描模式:page-track:利⽤LSN精确跟踪上次备份之后被修改页⾯,仅复制这些页⾯,效率最快。optimistic:扫描上次备份之后被修改的InnoDB 数据⽂件中,找出并拷贝修改的页⾯。依赖系统时间,使⽤存在限制。full-scan:扫描所有InnoDB数据⽂件,找出并拷贝⾃上次备份之后修改的页⾯,效率最慢1、利⽤page-track增量备份,需先安装备份组件mysql> INSTALL COMPONENT "file://component_mysqlbackup";2、在全备前开启page-trackSELECT mysqlbackup_page_track_set(true);3、全备之后,做增量备份时指定若满⾜page tracking条件,默认会使⽤page-track模式,否则会使⽤full-scan模式,也可以指定--incremental=page-track。mysqlbackup --incremental-backup-dir=backup_incr --trace=3 --incremental=page-track --incremental-base=history:last_full_backup backupincremental-base有3种选择last_backup:基于前⼀次备份做增备,前⼀次备份可能是增备,也可能是全备。这种⽅式全备之间可能会有多个增备,每次增量可能⽐较⼩,但恢复时需要逐个合并。last_full_backup:基于前⼀次全备做增备。这种⽅式增备会越往后体积可能越⼤,但恢复时只需要合并最后⼀次增量备份。dir:基于前⼀次的备份⽬录,前⼀次备份可能是增备,也可能是全备。测试对⽐full-scan 和page-track ,在变更页⼩于总体50%的情况下 ,备份效率⾄少能有1倍的速度提升。page-track 模式 磁盘读写均衡,说明读写的都是修改页⾯。请点击输⼊图⽚描述full-scan模式 磁盘读写差别很⼤,说明读了很多未修改的页⾯。请点击输⼊图⽚描述
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690653592a387206.html
评论列表(0条)