Xtrabackup备份与恢复,备份系统恢复到新硬盘

概述

今天主要通过一个实验来简单介绍一下如何用XtraBackup 实现全备&增量备份与恢复的全过程~

官方手册:https://www.percona.com/doc/percona-xtrabackup/2.4/index.html

一、xtrabackup备份过程解析

第一阶段:检查与连接的准备阶段

执行备份命令之后,备份开始,XtraBackup工具尝试去连接MySQL服务器,连接成功之后,执行MySQL版本检查,版本检查完毕。使用给定的用户、密码、端口、socket文件连接使用5.7.22版本的MySQL服务器。

第二阶段:持续拷贝redo log

这部分内容并没有在备份的输出日志里体现,推测通过开启general log可以看到,也不一定,也许要通过源码才能看到。

修正:我的测试备份环境是一个静止的数据库,在备份时,既没有发生写操作,也没有发生读操作。所以没有看到一直在做”输出看到大量log scanned up to (xxx),对应就是持续扫描redo log”

第三阶段:拷贝ibdata1和ibd文件

xtrabackup进程开始执行一系列工作

1、调用系统函数posix_fadvise(),该函数是用来清理缓存的,不太理解此处使用的意图?了解的童鞋给我科普下,谢谢。

2、进入到/data/mysql/mysql3306/data目录下面

3、把打开文件请求限制调整为65535

4、使用以下InnoDB配置:

innodb_data_home_dir = .

#innodb数据存放在当前目录

innodb_data_file_path = ibdata1:100M:autoextend

#innodb共享表空间文件为1个,初始大小为100M,类型为自动扩展

innodb_log_group_home_dir = ./

#innodb日志文件存放在当前目录

innodb_log_files_in_group = 3

#innodb日志文件个数为3个

innodb_log_file_size = 104857600

#innodb日志文件大小为100M

5、使用O_DIRECT标志,目的为绕过缓冲区高速缓存,直接把数据传递到文件或设备,实际就是无需缓存来拷贝数据

6、默认使用单线程进行备份

7、日志扫描到2643241字节的位置

8、形成一个表表空间的列表

9、为mysql/plugin分配表空间为2,旧的最大值是0

10、把ibdata1文件拷贝到备份目录下面,直到完成

11、把ibd文件拷贝到备份目录下面,直到所有的ibd文件拷贝完成

第四阶段:备份非事务表的准备阶段

innobackupex进程开始执行一系列工作

1、扫描日志文件到2643241,这是已经写入redo的LSN

2、执行FLUSH TABLES,关闭所有打开的表,使用NO_WRITE_TO_BINLOG选项,也就是该语句不会被记录到binlog里面

3、执行FTWRL,使用全局读锁来锁定整个实例

第五阶段:备份非事务表

开始拷贝非innodb引擎表和文件,包括所有的.frm文件等,直到所有的都拷贝完成

修正:

.frm文件:保存了每个表的元数据,包括表结构的定义等;

.ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索引的文件。

第六阶段:整个备份完成后的后续工作

1、开始写xtrabackup_binlog_info文件,此处推测,获取执行过的GTID值和位点信息的语句在general log里面有记录

2、执行引擎的日志刷新,也就是把日志刷新到磁盘

3、最后的检查点是2643232字节的位置,也就是数据持久化到的LSN

4、停止拷贝线程

5、扫描日志文件到2643241

6、执行UNLOCK TABLES,释放全局读锁

7、开始拷贝ib_buffer_pool,直到拷贝完成,这是一堆数字,不知道做什么用处,了解的童鞋给我科普下,谢谢。

修正:拷贝缓冲池里的数据,以备恢复后,可以快速加载和预热访问量最高的数据。

8、打印出备份结束的位点和执行过的GTID值

9、写backup-my.cnf文件

10、写xtrabckup_info

11、LSN从2643232到2643241的事务日志拷贝完成

12、打印备份成功的标志,completed OK!

二、实验–xtrabackup全备

1、事前准备

1.1、建用户及授权

CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 'bkpuser@1234';

GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT,super ON *.* TO 'bkpuser'@'localhost';

FLUSH PRIVILEGES;

1.2、准备测试数据

CREATE DATABASE TEST;

USE TEST;

CREATE TABLE t(id int primary key, name varchar(16),insert_date datetime);

INSERT INTO t VALUES(1,'full1',now()),(2,'full2',now()),(3,'full3',now()),(4,'full4',now()),(5,'full5',now());

1.3、创建备份目录

 mkdir -p /data/backup/

2、全备

 xtrabackup --user=bkpuser --password="bkpuser@1234" --backup --target-dir=/data/backup/

 

 

 

备份目录下面的各项文件说明

1)xtrabackup_checkpoints —— 备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;

2)每个InnoDB页(通常为16k大小)都会包含一个日志序列号,即LSN。LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的。

3)xtrabackup_binlog_info —— mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。

4)xtrabackup_binlog_pos_innodb —— 二进制日志文件及用于InnoDB或XtraDB表的二进制日志文件的当前position

5)xtrabackup_binary —— 备份中用到的xtrabackup的可执行文件;

6)backup-my.cnf —— 备份命令用到的配置选项信息;

3、Preparing a backup

The xtrabackup –prepare step makes the files perfectly consistent at a single instant in time, so you can run InnoDB on them.

You can run the prepare operation on any machine; it does not need to be on the originating server or the server to which you intend to restore. You can copy the backup to a utility server and prepare it there.

 xtrabackup --prepare --target-dir=/data/backup

 

 

4、Restoring a Backup

For convenience xtrabackup binary has an xtrabackup –copy-back option, which will copy the backup to the server’s datadir:

--停止目的端数据库

systemctl stop mysqld

--删除数据文件内容

cp -rf /fsl_data/datafile/ /fsl_data/datafile_bak

rm -rf /fsl_data/datafile/*

--恢复数据库

xtrabackup --copy-back --target-dir=/data/backup

--授权

chown -R mysql:mysql datafile

chmod -R 755 datafile

systemctl restart mysqld

 

 

5、重启后校验

 systemctl restart mysqld

 

三、实验–xtrabackup增备

1、基于全备的增备

1.1、插入测试数据

use test;

INSERT INTO t VALUES(6,'incr_1',now()),(7,'incr_2',now());

1.2、创建目录

 mkdir -p /data/backup_incr

1.3、基于全备的增备

Now that you have a full backup, you can make an incremental backup based on it. Use the following command

开始第一次增备,只要全备和多个增备的LSN号连续,那么就可以逐个进行恢复。可以再备份目录xtrabackup_checkpoints文件中看到,其中全备的from_lsn=0,增备的from_lsn应该等于上一个增备或者全备的to_lsn

xtrabackup --user=bkpuser --password="bkpuser@1234" --backup --target-dir=/data/backup_incr \

    --incremental-basedir=/data/backup/

说明:–incremental-basedir是上次全备或者增备出来的文件夹。当第一次增备的时候,一般填上次全备,第二次增备的时候,如果–incremental-basedir填上次全备,那么本次增备就会包含上次全备到现在变化的内容,相当于oracle依次做1级,2级,3级。。。增备如果–incremental-basedir填第一次增备的目录,那么该次增备只包含第一次增备到现在的变化,文件会更小,相当于oracle rman里面每次都做1级增备。

 

 

 

2、基于增备的增备

2.1、插入数据

use test;

INSERT INTO t VALUES(8,'incr_incr1',now()),(9,'incr_incr2',now());

2.2、创建目录

 mkdir -p /backup/backup_incr2

2.3、基于增备的增备

xtrabackup --user=bkpuser --password="bkpuser@1234" --backup --target-dir=/data/backup_incr2 \

    --incremental-basedir=/data/backup_incr xtrabackup --user=bkpuser --password="bkpuser@1234" --backup --target-dir=/data/backup_incr2 \    --incremental-basedir=/data/backup_incr

 

 

 

3、prepare

这里依然要做prepare,而且是做两次prepare,第一次是把全备给prepare,不过这次和上次不一样,这次要加入–apply-log-only参数,因为在每个备份过程中,都会碰到一些事务进来执行,而备份结束时可能有些事务并没有执行完毕,所以在默认prepare中这些事务就会被回滚(rollback),而加入了–apply-log-only就不会回滚这些事务,而是等待prepare下次增备。第二次prepare就是准备第一次增备的目录,这个prepare目的就是把第一次增备期间发生的变化写入到全备的目录中去,然后第一次增备的目录就没有用处了,因为我们最终拷贝表空间文件是把增备目录拷贝过去。无论多少个增备,最后prepare的那个增备是不能加–apply-log-only参数的,因为最后一次增备还没有完成的事务就要彻底回滚来保证一致性。

3.1、prepare全备

 xtrabackup --prepare --apply-log-only --target-dir=/data/backup

3.2、prepare第一次增备

 xtrabackup --prepare --apply-log-only --target-dir=/data/backup --incremental-dir=/data/backup_incr

3.3、prepare第二次增备

 xtrabackup --prepare --target-dir=/data/backup --incremental-dir=/data/backup_incr2

 

4、Restoring a Backup

For convenience xtrabackup binary has an xtrabackup –copy-back option, which will copy the backup to the server’s datadir:

--停止目的端数据库

systemctl stop mysqld

--删除数据文件内容

cp -rf /fsl_data/datafile/ /fsl_data/datafile_bak

rm -rf /fsl_data/datafile/*

--恢复数据库

xtrabackup --copy-back --target-dir=/data/backup

--授权

chown -R mysql:mysql datafile

chmod -R 755 datafile

systemctl restart mysqld

 

 

5、重启后校验

 systemctl restart mysqld
本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。

(0)

相关推荐

  • 免费的优质网站(网络营销优质的工具网站)

    1、小纸条 在阿里云盘以不限速号称逐渐成为主流网盘后,收藏和分享阿里云盘资源的站点也越来越多,不甚新鲜。不过大多都是以做一个索引功能类的功能,也有像【小纸条】这样子把目前各类阿里云资源一一分类,包括影视、动漫、软件、小说等分类,哈哈,就怕你的阿里云盘空间不够。 2、抖音/Tiktok无水印解析 【抖音/Tiktok无水印解析】站点,将抖音/Tiktok的链接…

    2022-05-22 投稿
  • 白色西装配什么裤子好看(白色裤子搭配指南)

    在各种各样的裤装之中,最能穿出优雅好气质的大概是白色裤子。白色的清爽与明亮,并不仅仅适合夏天,它出现在冬季,也会带来别样的风情。 很多女生总是担心白裤子显胖、显腿粗,但是当我们看到时尚潮人们的街拍,又总是惊叹于白裤子的美。其实,冬天你可以永远相信“白裤子”,它百搭实用,可以演绎出不同的穿搭风格,搭配毛衣或者各种外套,优雅又高级。接下来就从不同版型的白裤子入手…

    2022-05-12 投稿
  • 郎昆刘岩什么关系

    说起郎昆的话,相信大家都不会陌生,他是著名的央视春晚导演,曾执导过多场大型文艺演出活动,才华毋庸置疑。 但郎昆的感情却颇为诟病,他一生经历三段失败的婚姻,与“内地第一名模”马艳丽生下一女,却因刘岩背负抛妻弃女的骂名。   而身为郎昆的第三任前妻,马艳丽为丈夫生儿育女却惨遭抛弃,离婚后独自抚养女儿受尽了磨难。 那么比起刘岩来,她到底输在了哪里呢? 【…

    2022-05-01 投稿
  • 第一代计算机什么样子?第一代计算机主要应用于什么领域

    第一代计算机原来长这样 我国唯一保存至今的第一代计算机103机。 博物馆内陈列的部分教具,包括戒尺、摇铃、教铃等。 近日,记者来到曲阜师范大学参观中国教师博物馆,揭开中国教师博物馆预博馆的“神秘面纱”。作为中国首家教师主题的博物馆,里面珍藏了很多象征教育和教师发展历史、反映教育和教师活动的文献、证照、教材、教具、建筑遗迹等,同时包括古今中外教育人士的手稿、著…

    2022-05-03
  • 三大勋章是指钻石勋章,金质勋章和白银勋章对吗

      而最近它又整了个“查网龄送流量”活动,这就不一样了,因为介个活动真滴简单又粗暴。几十G流量随便送,最重要的是能免费提升家里带宽速度,查网龄还顺便白嫖流量,这么刺激的事情当然得安排一下。       三种勋章、五大特权   首先小雷给大家捋一捋三大勋章是指钻石勋章、金质勋章和白银勋章。   钻石勋…

    2023-06-13 投稿
  • 上眼睑下垂恢复锻炼法,眼睑下垂锻炼方法

    1.45岁以后眼周老化明显 不知道其她的姐妹们眼周老化怎么样?我是过了45岁以后,就明显地感觉到上眼睑的皮肤松弛越来越明显,双眼皮越来越窄,眼睛也变得越来越小了,下眼睑又稍微有些眼袋松弛。这些小问题结合在一起就成了大问题,让眼睛看上去越来越有年龄感。 提眉+外切眼袋术前 2.52岁要让眼周恢复自然年轻化 今年52岁了,不想再这么等着老下去了。还是决定做个眼周…

    2023-06-26
  • 朝朝宝里面的钱没了(朝朝宝存5万每天收益多少钱)

    本期《机警理财日报》聚焦现金管理类产品。近期招商银行高管变动,使得外界对招行理财产品关注上升。这期关注 招行朝朝宝,这到底是一款什么样的产品? 记者打开招商银行APP看到,“朝朝宝”为招商银行力推的一款活期理财产品,无论在APP首页,还是在理财产品页面,都可以在显眼位置找到这款产品。 这款产品主打卖点跟余额宝类似,号称“朝朝宝”账户里的余额可以直接支付、转账…

    2023-05-31 投稿
  • 企业供应链管理,企业供应链管理系统的主要特点

    物流及供应链管理行业技术水平特点及行业发展趋势 1、物流及供应链管理行业技术水平及特点 (1)行业技术水平 由于物流及供应链的动态性决定了其技术的核心在于信息的及时传递及共享,而现阶段在物流及供应链管理领域广泛运用的RFID、GPS、EDI等交互系统以及以互联网为基础的业务管理系统有效解决了信息孤岛的问题,有利于信息和数据之间的互通。 5G、大数据、物联网、…

    2023-01-27
  • 郭麒麟事件是怎么回事?郭麒麟事件女网红道歉

    近日,女网红安珀wang在社交平台上曝出郭麒麟与她的聊天截图,令不少网友不敢相信,想不到平日里这么严肃有礼貌的男生,还有这么不为人知的一面。 从聊天截图里可以了解到,俩人应该是在酒吧认识,还曝出郭麒麟经常去酒吧和美女玩,私生活有点丰富。 这位女网红表示,她和郭麒麟发生关系后,郭麒麟对她的态度就发生了变化,女网红就要求俩人互删,还嘲讽郭麒麟知道要删除联系方式时…

    2022-04-30 投稿
  • 优学派平板,优学派平板电脑作业辅导

    对于很多家长来说,辅导孩子作业是非常头疼的事。费时费力不说,有时还不会教、教不会、怕教错。为此优学派AI学生平板专门推出纸屏互动功能,无论是作业、试卷还是课本,辅导中遇到的问题,优学派都能帮家长快速解决。   比如最常见的作业检查问题。家长可以将孩子做完的作业放到优学派AI学生平板的AR镜头前一拍,就能快速完成作业检查,平时家长需要花几十分钟检查的…

    2023-07-05
  • 标题一二三级标题格式(课题标题一二三级标题格式)

    事实证明, 一个标题, 写得好不好, 区别真是大了去了, 那些高分作文的标题和低分的, 明显不是一个路子, 不信的话往往下看。 高质量的作文标题要符合以下几点要求: ①形象醒目 要尽量避免俗套的体例词语,如记、叙、说、论、议、感等。寻求形象的表达,如“握住别人垂下的藤索”,“藤索”指人们伸出的援助之手,是人们的帮助。 ②概括凝练 好的作文题目,既能概括文章内…

    2023-06-01
  • 小区里面适合做什么生意?适合在小区开的实体店

    在当前经济形势下,实体店生意受到非常大的冲击,许多实体店关门倒闭,还有一些在经营上也是举步维艰。回答这个粉丝的问题,当下年收入10万以上的实体店,有哪些项目门槛低、投入少呢?我这里给大家推荐一些,仅供调研参考。 早餐肠粉店 10万以内的投入,开一家早餐肠粉店就是一个非常不错的实体店项目。一个人如果是不怕吃苦,不怕早起,不怕累,那就完全可以去做,成功率也高,投…

    2022-06-06 创业项目