Percona Xtrabackup简明教程.docx

上传人:lao****ou 文档编号:81637 上传时间:2023-02-13 格式:DOCX 页数:45 大小:593.29KB
下载 相关 举报
Percona Xtrabackup简明教程.docx_第1页
第1页 / 共45页
Percona Xtrabackup简明教程.docx_第2页
第2页 / 共45页
Percona Xtrabackup简明教程.docx_第3页
第3页 / 共45页
Percona Xtrabackup简明教程.docx_第4页
第4页 / 共45页
Percona Xtrabackup简明教程.docx_第5页
第5页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Percona Xtrabackup简明教程.docx》由会员分享,可在线阅读,更多相关《Percona Xtrabackup简明教程.docx(45页珍藏版)》请在第一文库网上搜索。

1、Percona Xtrabackup简明教程Percona XtraBackup是一款开放源代码且免费的MySQL热备份软件,是目前最流行的MySQL备份软件之一,可以非阻塞地对InnoDB和XtraDB数据库进行备份。使用 Percona XtraBackup,可以: 快速可靠地完成备份。 在备份期间不间断地处理事务。 节省磁盘空间和网络带宽。 自动备份验证。 更快地恢复,以保障业务有更长的在线时间。Percona XtraBackup支持所有版本的Percona Server MySQL和MariaDB分支的MySQL热备份,可以进行流备份、压缩备份、增量备份,对InnoDB、XtraDB

2、和HailDB存储引擎支持完全非阻塞的备份。此外,还可以简单地备份MylSAM、Merge和Archive存储引擎(会锁定表)。注意:本章内容根据XtraBackup 2.4.4版本撰写,在该版本中innobackupex命令为xtrabackup的软链接,本质上它们是同一个二进制程序。原理1.完全备份与恢复原理(1)完全备份流程如图49.1所示为完全备份流程(根据执行完全备份时的日志输出信息整理)。XtraBackup备份示意图如图49-2所示(该图来自互联网)。复制InnoDB引蒙表的innobcickupex 全备流程.ibdataR undo logs等文件图49-11.粮总命令行敷的

3、定的IP地址、m号密码,使用PCdDBI逐接到MySQl中,并执行两次版本检专2、馔取正文件,找到相应的数播和日志文件位5、执行FLUSH NO.WRITE.TO.BINLOG TABLES. RUSH TABLES WITH READ IOCK请句6.复H非InnoDB用掌,的.MYD. .MYk .frm、.opt. Esc等文件构nnoOB引掌表的.frm. opt. rrtsc等文件7.收取二进制日志文件位Ji (或GTID位置)并JSUxtrQbodup-bintoQjnfo文件中8.执行FLUSH N。WRITE 10 BINLOG ENGME LOGSigt)9.停止日志复制线程

4、(复Mfadolog的线程)10.执行UNLOCK TABIES语句1k务份收尾工作:生跳f. xtrQbockupJnfo等文件,收尾工作完成之后退出Innobockupex名份进程3、start xtrobockup.log:创Jtxtrabockup_logfite文件.HKlmysqlinstance方式,以读写模式打开并添取red。log.衿查当IRcheckpcint点,从当前checkpolZ点位开始复制redo log.同时持续扫$edoloo有新产鼓的伯do looBt掘就复制到xlgbouhipjogflte文件中Delayed update(2)完全备份流程解析 inno

5、backupex在开始备份时,连接用于在备份过程中执行如加锁、首先使用指定的账号和密码连接MySQL,该数据库解锁,刷新redo日志等与数据库进行交互操作。 读取defaults-file选项指定的配置文件,解析innodb_data_home_dir和innodbog_group_home_dir等系统参数,找到数据表空间和redo日志文祥的位置。初建xtrabackupogfile文件,模拟MySQL实例方式,以读写模式打开并读取redo日志,检查当前检查点,从当前检查点位置开始复制redo日志,同时持续扫描redo日志,有新产生的redo日志数据就复制到xtrabackupogfi 1

6、e文件中(在整个备份过程中一直在复制redo日志,通过查看备份目录下的xtrabackupogfile文件,可以看到这个文件在不断增长)。 另外一个线程调用xtrabackup命令开始复制数据文件(包括共享表空间文件和独立表空间文件,相当于获得了redo日志、undo日志和数据文件,只是没有内存中的脏页数据,不过没有关系,直接用redo日志来恢复就可以了)。 全局执行FLUSH TABLES WITH READ LOCK语句(下文中提到的FTWRL为该语句的简写)加一个S锁,此时数据库处于不可写状态(执行FLUSH TABLES WITH READLOCK语句的目的是为了防止读取数据时发生DD

7、L操作,并且获取binlog文件位置)。redo日志暂时也会卡在这里。 开始复制表结构文件,即.MYD和.MYI文件(由于前面步骤会锁定表,所以如果数据库中有很大的MylSAM表就要注意了,会一直锁定到MylSAM的.MYD、.MYI、.frm文件复制完成且获取了binlog文件位置之后才解锁。如果没有MylSAM表,那么在复制完表空间文件之后的操作是非常快的,可能不到1分钟就完成了复制表.frm文件,获取到binlog文件位置。 先执行FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS语句将InnoDB层的redo 日志持久化到磁盘后进行复前(因为xtrabackup并

8、不备份二进制日志,所以,如果这个过程出现问题,就会导致恢复之后丢失redo日志中的数据,做主从复制可能会同步出错,但在XtraBackup2.2.3之后不会再出现丢失redo日志的情况),然后停止读redo日志复制的线程。需要注意,innobackupex备份数据的时间点是停止redo日志复制时的数据对应的时间点。当redo日志的复制线程停止之后,执行UNLOCK TABLES语句解锁表。 innobackupex完成收尾工作,如释放资源、记录与备份相关的元数据信息等(例如backup-f和xtrabackup_info文件),最后退出innobackupex备份进程(在XtraBackup

9、2.3之前的版本中,innobackupex和xtrabackup是两个程序,innobackupex需要等待xtrabackup子进程结束后再退出。关于两个程序之间的协调下文中会详细介绍,这里不再赘述)。(3)完全备份恢复流程如图49-3所示为完全备份恢复流程(根据执行完全备份恢复时的日志输出信息整理)。图49-3(4)完全备份恢复流程解析 在备份恢复时,启动一个mini instance (最小化数据库实例),把数据文件复制到内存中,然后再读取xtrabackupog中的redo日志进行应用,最后对没有提交的事务使用undo日志进行回滚。 如果查看备份恢复时打印的日志,就会发现使用inno

10、backupex命令执行备份恢复的过程和mysqld进程启动过程非常相似,在使用innobackupex命令执行备份恢复的过程中会做一次crash recovery (崩溃恢复)操作。恢复的目的是把备份数据恢复到一个一致性位点(undo、redo日志和表空间中的数据相对应)。 备份时执行FTWRL后,数据库处于只读状态,非InnoDB表是在持有全局读锁的情况下复制的,所以其本身就对应于FTWRL的时间点。InnoDB的.ibd文件复制是在FTWRL前做的,复制出来的不同.ibd文件的最后更新时间点是不一样的,这种状态的.ibd文件是不能直接用的,但是redo日志是从备份开始就一直持续复制的,最

11、后的redo日志时间点是在执行FTWRL后取得的,所以最终通过redo日志应用后的.ibd文件数据的时间点和FTWRL的时间点是一致的。因此,恢复过程只涉及InnoDB文件的恢复,非InnoDB表是不需要恢复的。当备份恢复完成后,就可以把数据文件复制到对应的目录下,通过mysqld来启动了。2.增量备份与恢复(1)增量备份流程如图49-4所示是增量备份流程(根据执行增量备份时的日志输出信息整理)。根据命令行,敷哈龙的p地址stort xtrabockup.loginnobcickupex 增备流程复制相nnoDB引单收的MYOmlsc等文件和InnoDB引掌我的执行 UNlOCKYABlESf

12、l1句创xggckupogfite文件.以读写银式打开并EUeS log模m mysql Instonce 方式检查当第checkpost点.局时持爆扫排ed。log.执行FLUSH NO.WRITEJO.BINIOG ENGINE LOGS语句停止日态复M线程(复制redo log的线程)次取二进制日志文件位 (GTKMa)并写到xtfQbockup_blnlogJn2文件中使用pedDBljt接到MySQL中.并执行四次版本怆图 49-4(2)增量备份流程解析每个InnoDB页面都会包含一个LSN号,每当相关的数据发生改变时,相关页面的LSN号就会自动增长。这正是InnoDB表可以进行增量

13、备份的基础,innobackupex可以通过把上一次备份之后发生改变的那一部分页面复制出来以实现增量备份。也就是说,增量备份基于上一次备份的LSN号,备份大于该LSN号的那一部分数据文件页。在xtrabackup_checkpoints或xtrabackup_info等文件中fromsn、to_lsn lastsn记录的是LSN号,其中,fromsn表示备份数据笄始的LSN号(如果是增量晋份,则该LSN号与上一次备份中的tosn相等),tosn表示备份数据结束的LSN号(也是备份中最新的检查点位置),lastjsn表示备份结束时复制的redo日志LSN号。增量备份是基于上一次备份中的tosn来

14、实现的(即:基于上一次备份的检查点位置)。检查点机制可以确保LSN号小于检查点位置的数据页已经被刷新到磁盘中,所以在执行增量备份时,通过比对数据文件中数据页的LSN号,就能够找出哪些数据页需要被复制(只要是LSN号大于上一次备份的tosn的数据页,在执行增量备份时就需要被复制)。第一次增量备份必须基于一次完整的备份进行,第二次增量备份可以基于第一次增量备份进行,依此类推(当然,第二次增量备份也可以基于完全备份进行,如果采用这样的备份策略,那么第二次增量备份与第一次增量备份之间就没有关联了,恢复时需要一次完全备份+一次增量备份)。(3)增量备份恢复流程如图49-5所示为增量备份恢复流程(根据执行

15、一次完全备份+一次增量备份恢复时的日志输出信息整理)。.位口.下AT-Wcow (*B)HOmnoMrwlonc0(小lUVnnoOBX.neaoiogSCSNQ. ttBBSWMIKMWfMotog伊日十boeiMKny c.Mxgmu”$zq woog与会mm中|”一。.a. MaanaaeeAa.父豺得行4HErM”xMbSlanc愣文,秋13回过.,菱翼达仲修今耳岱俄文佟铁行。8 cowyon施,dotooMziL ,忖一宸五XgnnEodbEtarc/ OnoodbJcEjhutoownaH方*9金意808*今幔殳依务不执。ftWMoiQQJUUa. ej-WJ(5rEEO(lbmQ8c伶(EodbJtMUhuldCMI力4)9 金施8NK豪女第,备云帙f M”RrFtMM,ExJb9lflKA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服