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

本文来自投稿,不代表展天博客立场,如若转载,请注明出处:https://www.me900.com/327011.html

(0)

相关推荐

  • 怎样辨别假币旧版(旧版假币诈骗案例)

    曾经看到过孤寡的老人家在市场售买物品,卖出东西收到的却有一张假币,眼里泛着泪光的样子,着实让人心疼,本就生活不易的他还要面对这样的打击,为了杜绝此类现象再次出现,希望大家能帮忙转发,让更多的人知道,学会辨别纸币真伪!   第一点,头像水印 把纸币倾斜着拿或者对向亮度强的光源,纸币左下角空白部位会出现毛爷爷头像的水印,而且头像下方还有数字100的字样…

    2022-01-08 投稿
  • 云服务器esc,云服务器:最全面的指南和技巧

    云服务器ECS入门,部分试题及答案参考: 单选21道题 1.云服务器ECS以服务化的方式对客户提供,阿里云产品售后支持的时间段是? A.5*8 B.7*8 C.7*12 D.7*24 2.云服务器ECS的计费方式不含以下哪项? A.包年包月 B.按量计费 C.抢占式实例 D.网商贷 3.云服务器ECS产品丰富,以下哪个不是云服务器ECS实例类型? A.通用计…

    投稿 2023-05-21
  • 蜻蜓幼虫水虿长什么样?蜻蜓幼虫图片

    蜻蜓幼虫必须在水中度过,学名水虿(chài,近似音读”彩”、”钗”),人们习惯称之为“水中老虎”、“吃鱼虎” ,它是昆虫纲蜻蜓目昆虫稚虫的一种统称。在露天水产养殖中,水虿和水蜈蚣一样,对水花育苗阶段中的水花苗至寸片以下的鱼苗伤害很大,不但对鱼、虾苗种危害极大,还会侵袭南美白对虾秋茬苗,造成严重损失。…

    2022-05-01 投稿
  • 歪曲丑化英烈事件(丑化英雄人物的案例)

    女子发帖侮辱烈士获刑7个月 引发关注! 11月4日, 北京市东城区人民法院 公布案件最新进展。 女子按照判决公开发表致歉声明 据@北京东城法院 消息,近日,女子许某就其在微博发帖侵害英雄烈士名誉、荣誉的行为,除依法承担刑事责任外,按照人民法院生效判决确定的义务,在相关媒体上公开发表了致歉声明。 许某在声明中称: “我深刻认识到自己行为的错误,英雄烈士的事迹和…

    2022-01-04
  • 支付宝无法登陆怎么办(支付宝账号不能登录了)

    8月14日午间,有网友反映支付宝崩了,随后又恢复了正常。 但毕竟是很多人离不开的支付软件,此次支付宝宕机话题很快引起大量关注并登上热搜。 “支付宝崩了”上热搜 网友:七夕红包发的太多? 14日恰恰也是中国传统民俗节日“七夕节”,不少网友猜测是七夕红包发的太多?转崩溃了? 网友的猜测也有一定根据,支付宝在今天确实有“付款立减13.14元”的红包活动。 顺着这个…

    2021-11-15
  • 网上打字赚钱的方法(网上打字赚钱的方法是真的吗)

    现在大家都闲在家里,肯定很着急吧 ,晶晶今天给大家分享一个通过互联网就可以做任务的打字兼职。 一、云景任务是什么? 云景任务是大家在闲暇时候,打开浏览器,通过互联网就可以做的任务。 二、怎么参与云景任务? 免费注册一个账号后就可以参与啦。可以不加任何Q群。 参与云景任务,推荐使用的浏览器:谷歌、火狐、IE(8.0或以上版本),或其他支持HTML5的浏览器。 …

    2022-01-16 投稿
  • 汉字的演变过程,汉字的起源及演变过程

    “汉字”,作为每个中国人都会使用的工具,但它也是中国历史的风云变幻的记录者。因为它是记录中国的思想、文化的工具,并且从它在中国的大地上诞生那一刻起,就一直和中国这个古老的大国联系在一起,它的变换,也是中国的变化的一部分,它作为载体和记录者,在后世的我们可以从它的变化中,得以对历史一窥究竟。 汉字的起源 先从它的起源说起,关于汉字的起源…

    2022-05-04 投稿
  • 河北保定疫情最新情况(河北保定疫情最新情况属于高风险)

    2022年1月1日 河北省新型冠状病毒肺炎疫情情况 2022年1月1日0—24时,河北省无新增新型冠状病毒肺炎确诊病例,无新增无症状感染者。 截至1月1日24时,河北省现有确诊病例0例;尚在医学观察无症状感染者0例。 事关“加强针” 石家庄市疾控中心最新提醒 打“加强针”啦 接种新冠病毒疫苗后,体内的抗体水平会随着时间的推移出现不同程度的下降,预防病毒感染的…

    投稿 2022-01-02
  • 149个世界经典营销案例,解析企业生死成败的关键

    图片来源:图虫创意 世界经典营销案例解析集锦(149篇) – MBA智库文档 企业的营销必须要以满足消费者的需要为前提,企业的一切活动都必须以消费者为中心。唯有能满足消费者需要的企业,才能获得消费者的支持,才能实现企业的目标。 案例从市场营销、企业战略、营销环境、消费者分析、市场细分和选择定位、产品策略、竞争策略、营销策划等14部分分别选取相关企…

    2022-04-27
  • 最经典的末日小说,末日末世丧尸类小说

    第一本《末日崛起》 作者:太极阴阳鱼 简介:资源枯竭,爆发内战,地球几近被毁,重新建立秩序之后依然矛盾重重,平静的底下激流暗涌……一艘携带重犯的宇宙飞船在火星附近遭遇海盗被击落,替罪少年刘危安幸运逃走,奴隶区的的小蝴蝶煽动了一下翅膀,历史的齿轮由此改变…… 入坑指南: “路见不平,拔刀相助者。”刘危安笑眯眯道。 “你知不知道我是什么人?”领队邹眉,眼中闪烁着…

    2023-07-09
  • 怎么能在网上赚钱(网上简单快速赚钱方法)

    如何从零开始在网上赚钱? 揭露顶级营销大师透露的赚钱秘诀! 给你一个新的微信号,一个人都没有,你会怎样开始创建你的生意? **有一位顶级的营销大师,他叫盖瑞亥尔波特。 有一次,他把自己多年实战的经验告诉了自己的儿子。 做生意的核心秘诀就是: 先拥有一群饥渴的人群,再寻找产品去愈合他们的伤口。 按照以下流程,包你稳赚不赔: 如果是我,我首先会: 1.确定一个细…

    2022-01-13
  • 移动大流量卡38元(移动大流量卡38元5g)

    中新经纬9月27日电 (牛朝阁 常涛)27日,中国广电在**、青海两地启动5G网络服务,至此,除港澳台以外的全国31个省(自治区、直辖市)全部开通广电5G网络服务。 中新经纬注意到,目前中国广电5G套餐正6折促销中,不过,对于不少用户心心念念的192号段靓号,其实选择并不多,且有最低消费门槛。亦有业内人士认为,中国广电的促销活动只是“看着便宜”。 套餐只是看…

    2023-05-31