数据库学习案例20240311 -mysql xtrabackup 备份与恢复

下载使用

Software Downloads - Percona

下载需要的依赖包

yum install perl-DBI -y

yum install perl-DBD-MySQL -y

yum install perl-Time-HiRes -y

yum install perl-IO-Socket-SSL -y

yum install perl-TermReadKey.x86_64 -y

下载安装配置完环境变量,然后做一个简单测试既可。

1 mysql数据库备份

以下为测试mysql数据库备份脚本,包括增量备份

bash 复制代码
xtrabackup --backup -uroot -p123 --target-dir=/backup/full
xtrabackup --backup -uroot -p123 --target-dir=/backup/incre1 --incremental-basedir=/backup/full
xtrabackup --backup -uroot -p123 --target-dir=/backup/incre2 --incremental-basedir=/backup/incre1
xtrabackup --backup -uroot -p123 --target-dir=/backup/incre3 --incremental-basedir=/backup/incre2
xtrabackup --backup -uroot -p123 --target-dir=/backup/incre4 --incremental-basedir=/backup/incre3

2 恢复数据库

bash 复制代码
xtrabackup --prepare --apply-log-only --target-dir=/backup/full
xtrabackup --prepare --apply-log-only --target-dir=/backup/full  --incremental-dir=/backup/incre1
xtrabackup --prepare --apply-log-only --target-dir=/backup/full  --incremental-dir=/backup/incre2
xtrabackup --prepare --apply-log-only --target-dir=/backup/full  --incremental-dir=/backup/incre3
xtrabackup --prepare --target-dir=/backup/full  --incremental-dir=/backup/incre4

3 拷贝回数据目录

bash 复制代码
xtrabackup --copy-back --target-dir=/backup/full



[root@router data]# ls -lrt
total 84000
-rw-r-----. 1 root root 16777216 Mar 11 05:02 undo_001
-rw-r-----. 1 root root 16777216 Mar 11 05:02 undo_002
drwxr-x---. 2 root root        6 Mar 11 05:02 #innodb_redo
-rw-r-----. 1 root root 12582912 Mar 11 05:02 ibdata1
-rw-r-----. 1 root root      353 Mar 11 05:02 router-bin.000068
-rw-r-----. 1 root root       18 Mar 11 05:02 router-bin.index
drwxr-x---. 2 root root       28 Mar 11 05:02 sys
drwxr-x---. 2 root root      243 Mar 11 05:02 mysql_innodb_cluster_metadata
drwxr-x---. 2 root root       80 Mar 11 05:02 mgr
-rw-r-----. 1 root root 27262976 Mar 11 05:02 mysql.ibd
drwxr-x---. 2 root root      143 Mar 11 05:02 mysql
drwxr-x---. 2 root root     8192 Mar 11 05:02 performance_schema
-rw-r-----. 1 root root     4362 Mar 11 05:02 ib_buffer_pool
-rw-r-----. 1 root root 12582912 Mar 11 05:02 ibtmp1
-rw-r-----. 1 root root      849 Mar 11 05:02 xtrabackup_info
[root@router data]# 

4 授权重启mysql

bash 复制代码
chown -R mysql:mysql /data/*

systemctl restart mysql.service

5 核心要点

1 需要有一个基础全备份,

bash 复制代码
[root@router full]# more xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 25942086
last_lsn = 25942086
flushed_lsn = 25942086
redo_memory = 0
redo_frames = 0


[root@router incre1]# more xtrabackup_checkpoints
backup_type = incremental
from_lsn = 25942086
to_lsn = 25942096
last_lsn = 25942096
flushed_lsn = 25942096
redo_memory = 0
redo_frames = 0

[root@router incre2]# more xtrabackup_checkpoints
backup_type = incremental
from_lsn = 25942096
to_lsn = 25942612
last_lsn = 25942612
flushed_lsn = 25942612
redo_memory = 0
redo_frames = 0

2 使用incre恢复阶段会不断提高xtrabackup_checkpoints中的lsn值。

3 备份期间会给全库触发一个轻量级backup锁

相关推荐
r***93481 天前
CentOS7安装Mysql5.7(ARM64架构)
adb·架构
q***57742 天前
MySql的慢查询(慢日志)
android·mysql·adb
翔云1234562 天前
MySQL 机器重启后,gtid_executed 是如何初始化的
数据库·mysql·adb
d***95622 天前
docker 安装 mysql
mysql·adb·docker
3***89192 天前
开放自己本机的mysql允许别人连接
数据库·mysql·adb
Kaede62 天前
MySQL中如何使用命令行修改root密码
android·mysql·adb
1***t8272 天前
MySQL 8.0安装
数据库·mysql·adb
3***g2052 天前
Linux系统离线部署MySQL详细教程(带每步骤图文教程)
linux·mysql·adb
i***t9193 天前
Linux下MySQL的简单使用
linux·mysql·adb
q***57743 天前
MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置
windows·mysql·adb