xtrabackup全量备份恢复操作

梦莱2年前技术文章1081

一、核实环境

1、核实服务器环境

cat /etc/centos-release

2、核实数据库版本

随着Percona XtraBackup 8.0 的推出,Percona XtraBackup 2.4将继续支持MySQL和Percona Server 5.6和5.7数据库。由于新的MySQL重做日志和数据字典格式,Percona XtraBackup 8.0.x版本将仅与MySQL 8.0.x和即将推出的Percona Server for MySQL 8.0.x兼容

select version();--核实数据库版本

二、安装 xtrabackup 工具

1、按照环境下载对应的安装包,如下是 centos 7、xtrabackup 2.4

wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.23/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.23-1.el7.x86_64.rpm

2、如下链接对应的是 centos 6 、xtrabackup 2.4,可按需挑选

wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.26/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.26-1.el6.x86_64.rpm2.通过 yum 安装 xtrabackup (期间可能会报错的情况稍后补充至报错一)

yum install -y percona-xtrabackup-24-2.4.26-1.el6.x86_64.rpm
--因我的环境为 6.8 所有后续操作都以 6.8 的情况进行

3.安装完成后可使用 xtrabackup --version 核实是否安装成功

xtrabackup --version

 

三、备份实例

1、创建一个用于放备份文件的文件夹

mkdir -p /backup/20220907

2、备份数据,其中 defaults-file 填写数据库的参数文件,后面分别写上数据库账号、密码 和备份到的地址(期间可能的报错后续整理至报错2)

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /backup/20220907

3、记录数据

cd /backup/20220907
du -sh *

 

四、恢复实例数据

1、新服务器上安装好同版本的 xtrabackup 和 mysql,建议使用同版本、新版本的 xtrabackup,否则容易发生报错

2、通过 scp 将备份好的文件传到目标服务器

scp -r /backup/20220907  root@172.16.104.10:/backup
--该命令是在有备份的服务器上,将备份远程传送到需要恢复数据的实例上
--即 scp -r 本地备份存在地址 接收方(需要将数据恢复至的服务器)用户@ip:需要放置到的地址

scp -r

1.将本地文件夹拷贝到远程:scp -r 目录名 用户名@计算机IP或者计算机名称:远程路径

2.从远程将文件夹拷回本地:scp -r 用户名@计算机IP或者计算机名称:目录名 本地路径

3、恢复之前,要先关闭数据库,并且删除数据文件和日志文件。先进行数据库的关闭

service mysqld stop

4、删除一直是一个高危操作,在删除前可以先将原始数据目录备份一下。

mkdir /dtstack
cp -r /data/mysql/data   /dtstack
rm -rf /data/mysql/data

5、进行数据的恢复

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456  --apply-log   /backup/20220907

innobackupex --defaults-files=/etc/my.cnf --user=root --password=123456 --copy-back  /backup/20220907

6、恢复完成后,进行检查并修改权限

cd /data/mysql/data
ll
chown -R mysql.mysql /data/mysql/data

7、启动 mysqld

service mysqld start

五、数据验证

1、核实数据大小是否正确

cd /backup/20220907
du -sh *

2、登陆数据库验证数据情况

--登陆数据库
mysql -uroot -pROOT123@
--通过 SQL 验证数据库及表数据量情况
SELECT db AS '数据库', type AS '对象类型', cnt AS '对象数量'
FROM (
SELECT 'TABLE' AS type, table_schema AS db, COUNT(*) AS cnt
FROM information_schema.`TABLES` a
WHERE table_type = 'BASE TABLE'
GROUP BY table_schema
UNION ALL
SELECT 'EVENTS' AS type, event_schema AS db, COUNT(*) AS cnt
FROM information_schema.`EVENTS` b
GROUP BY event_schema
UNION ALL
SELECT 'TRIGGER' AS type, trigger_schema AS db, COUNT(*) AS cnt
FROM information_schema.`TRIGGERS` c
GROUP BY trigger_schema
UNION ALL
SELECT 'PROCEDURE' AS type, db, COUNT(*) AS cnt
FROM mysql.proc d
WHERE `type` = 'PROCEDURE'
GROUP BY db
UNION ALL
SELECT 'FUNCTION' AS type, db, COUNT(*) AS cnt
FROM mysql.proc e
WHERE `type` = 'FUNCTION'
GROUP BY db
UNION ALL
SELECT 'VIEW' AS type, TABLE_SCHEMA, COUNT(*) AS cnt
FROM information_schema.VIEWS f
GROUP BY table_schema
) t
WHERE db NOT IN ('sys', 'mysql', 'INFORMATION_SCHEMA', 'performance_schema')
ORDER BY db, type;


相关文章

sqlserevr索引、自增列查询SQL

sqlserevr索引、自增列查询SQL

一、索引查询1.可视化方式查询1) 进入实例数据库内,选择想要查看的数据库及表信息。2) 展开表,即可查看其索引情况(一般情况下,PK为主键,IX为索引)。 3) 或者右击表,编辑表结构,可以查看到索...

pgbench 压测工具

pgbench 压测工具

一、基本参数pgbench工具是Postgres自带的一款轻量型基准压测工具。它自定义相关场景下脚本进行1.1 初始化参数参数含义-i / --initialize调用初始化模式-I init_ste...

Linux 会话管理

Linux 会话管理

在 terminal 终端中输入命令,这种用户与计算机的临时交互称为一次会话(session)。会话的一个重要特点:与其中启动的进程是连在一起的,打开窗口、会话开始,关闭窗口、会话结束,会话内部的进程...

kafka节点数规划

按磁盘容量规划节点数Kafka的数据存放在本地磁盘,建议使用SAS盘,提供较高磁盘IO,以提高Kafka吞吐量。在本规划基于的硬件规格下,单节点平均吞吐量参考值为读300MB/s,写150MB/s。数...

MySQL运维实战(4.6) SQL_MODE之NO_BACKSLASH_ESCAPES

设置NO_BACKSLASH_ESCAPES后,反斜杠(\)不作为转义符。不设置NO_BACKSLASH_ESCAPES时,反斜杠(\)用来转义后一个字符mysql> create&n...

Redis 慢查询相关配置

Redis 慢查询相关配置

一、查询生命周期一条查询的生命周期:发送命令命令排队执行命令返回结果Redis 慢日志只统计 “执行命令” 步骤 3 的耗时,所以没有慢查询并不代表客户端没有超时问题。二、慢日志配置参数慢日志相关的参...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。