XtraBackUp 全量备份

XtraBackUp 全量备份

准备

环境

MySQL 版本: 8.0.23
xtrabackup: 8.0.23-16
sysbench: 1.0.20
系统: Ubuntu Server 20.4

用户

创建 MySQL 用户, 用于备份数据

CREATE USER 'db_test'@'%' IDENTIFIED WITH mysql_native_password BY '111111';
grant all privileges on *.* TO 'db_test'@'%' WITH GRANT OPTION;

Linux 用户: root

注: 为了不必要的权限问题, Linux 直接使用 root 用户, MySQL 用户直接分配了所有权限

开始

生成测试数据

生成测试数据前要先创建数据库

create database db_50_10;

生成测试数据(96s)

sysbench /usr/share/sysbench/oltp_insert.lua \
    --threads=48 \
    --table-size=500000 \
    --tables=10 \
    --mysql-db=db_50_10 \
    --mysql-user=db_test \
    --mysql-password=111111 \
    --mysql-socket=/var/run/mysqld/mysqld.sock \
     prepare

为了体现 XtrabackUp 性能, 查询下数据大小(1.0363G)

select count(TABLE_NAME) as table_num, concat(format(sum(DATA_LENGTH)/1024/1024/1024, 4), 'G') as total_size from information_schema.tables where table_schema="db_50_10";

全量备份

准备备份目录

mkdir /data/mysql/backup -p

备份(7s)

xtrabackup \
    --user=db_test \
    --password=111111 \
    --backup \
    --target-dir=/data/mysql/backup/20210526000918

准备备份数据

恢复数据前, 要先准备数据

准备备份(2s)

xtrabackup  \
    --user=db_test \
    --password=111111 \
    --prepare \
    --target-dir=/data/mysql/backup/20210526000918

恢复备份数据

恢复数据前, 需要先清空数据目录, 否则会得到错误:

Original data directory /var/lib/mysql is not empty!

恢复数据(4s)

xtrabackup  \
    --user=db_test \
    --password=111111 \
    --copy-back \
    --target-dir=/data/mysql/backup/20210526000918/

数据恢复之后, 要修改MySQL数据目录权限

chown -R mysql:mysql /var/lib/mysql

数据对比

字段数据数据
10(个)100(个)
单表数据50万50万
生成数据耗时96s1182s
数据大小1.0363G10.4193G
备份数据耗时7s68s
准备备份数据耗时2s3s
恢复数据耗时4s55s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值