xtrabackup模拟备份100G数据

本文通过使用xtrabackup工具,在Dell R620服务器上进行不同线程数的100G数据备份测试,揭示了Samsung SSD 860 EVO 500GB固态硬盘的I/O性能极限。

一、环境说明

dell r620 双颗CPU,单核心是12核心,内存是72G ,硬盘伪sata接口的企业级的SSD固态硬盘:500G

固态盘型号如下:

PD Type: SATA
Raw Size: 465.761 GB [0x3a386030 Sectors]
Inquiry Data: S3Z3NB0K116201W     Samsung SSD 860 EVO 500GB               RVT01B6Q
Device Speed: 6.0Gb/s 

二、测试项目

测试项目:使用xtrabackup 备份100G的数据使用的时间

xtrabckup备份工具安装此处忽略

授权xtrabackup 备份数据时登录库的用户

grant reload,lock tables,process,replication client,super on *.* to backupuser@'127.0.0.1' identified by '654321ccs';flush privileges;

测试使用xtrabackup 单线程备份100G的数据使用的时间是17分39秒

备份命令:

[root@localhost ~]# time innobackupex --defaults-file=/etc/my.cnf  -ubackupuser -p654321ccs  --host=127.0.0.1  -S /tmp/mysql3306.sock  --no-timestamp 

190812 16:40:52 Finished backing up non-InnoDB tables and files
190812 16:40:52 [00] Writing /data/backup/db_3306_20190812/xtrabackup_binlog_info
190812 16:40:52 [00]        ...done
190812 16:40:52 Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...
xtrabackup: The latest check point (for incremental): '143003390816'
xtrabackup: Stopping log copying thread.
.190812 16:40:52 >> log scanned up to (143003390816)

190812 16:40:52 Executing UNLOCK TABLES
190812 16:40:52 All tables unlocked
190812 16:40:52 [00] Copying ib_buffer_pool to /data/backup/db_3306_20190812/ib_buffer_pool
190812 16:40:52 [00]        ...done
190812 16:40:52 Backup created in directory '/data/backup/db_3306_20190812/'
MySQL binlog position: filename 'mysql-bin.000060', position '324009766'
190812 16:40:52 [00] Writing /data/backup/db_3306_20190812/backup-my.cnf
190812 16:40:52 [00]        ...done
190812 16:40:52 [00] Writing /data/backup/db_3306_20190812/xtrabackup_info
190812 16:40:52 [00]        ...done
xtrabackup: Transaction log of lsn (143003390806) to (143003390816) was copied.
190812 16:40:52 completed OK!

real    17m39.710s
user    6m23.436s
sys     2m19.513s

从zabbix上查看监控磁盘io的使用率如下:
xtrabackup模拟备份100G数据

**从zabbix上查看监控磁盘io的使用率刚超过设定的阈值50%,不到60%,同时每秒的磁盘写入量如下:
xtrabackup模拟备份100G数据

也就是此时采用3个线程并行备份数据刚刚好。磁盘的io繁忙度可以接受

测试使用xtrabackup 开启3个线程备份100G的数据使用的时间是9分44秒:

time innobackupex --defaults-file=/etc/my.cnf  -ubackupuser -p123456ccs  --host=127.0.0.1  -S /tmp/mysql3306.sock  --parallel=3 --no-timestamp /data/backup/db_3306_`date +%Y%m%d`
190812 16:55:07 Finished backing up non-InnoDB tables and files
190812 16:55:07 [00] Writing /data/backup/db_3306_20190812/xtrabackup_binlog_info
190812 16:55:07 [00]        ...done
190812 16:55:07 Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...
xtrabackup: The latest check point (for incremental): '143003390816'
xtrabackup: Stopping log copying thread.
.190812 16:55:07 >> log scanned up to (143003390816)

190812 16:55:07 Executing UNLOCK TABLES
190812 16:55:07 All tables unlocked
190812 16:55:07 [00] Copying ib_buffer_pool to /data/backup/db_3306_20190812/ib_buffer_pool
190812 16:55:07 [00]        ...done
190812 16:55:07 Backup created in directory '/data/backup/db_3306_20190812/'
MySQL binlog position: filename 'mysql-bin.000060', position '324017447'
190812 16:55:07 [00] Writing /data/backup/db_3306_20190812/backup-my.cnf
190812 16:55:07 [00]        ...done
190812 16:55:07 [00] Writing /data/backup/db_3306_20190812/xtrabackup_info
190812 16:55:07 [00]        ...done
xtrabackup: Transaction log of lsn (143003390816) to (143003390816) was copied.
190812 16:55:07 completed OK!

real    9m44.015s
user    5m26.039s
sys     2m26.201s

说明在使用3个线程备份数据时,已经是达到了SSD固态盘io写入的极限。不可能再快了

同时备份期间查看iostat命令查看SSD磁盘 设备:sdb 的已经是100%繁忙了。达到了磁盘写入性能的极限。

[root@localhost backup]# iostat -d -x -k 2 30
Linux 3.10.0-327.el7.x86_64 (localhost.localdomain)     08/12/2019  _x86_64_    (32 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00     0.57    0.34    3.26    42.53   256.11   166.31     0.05   13.46   38.31   10.90   0.26   0.09
sda               0.00     0.27    0.00    1.35     0.06     9.31    13.84     0.00    1.54    0.51    1.54   0.13   0.02

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00     1.50 1040.00 1674.50 132442.00 213625.50   254.98   224.57   83.06   46.46  105.79   0.37 100.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
。。。。。。。。。。。。。。。。
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00     1.00 1294.00 1417.00 164846.00 180440.75   254.73   202.51   74.50   43.77  102.56   0.37 100.00
sda               0.00     0.00    0.00    4.00     0.00    16.25     8.12     0.00    0.75    0.00    0.75   0.75   0.30

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00     2.00 1616.50 1366.00 206328.00 174046.25   255.07   223.71   75.18   47.35  108.12   0.34 100.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

从zabbix上查看监控磁盘io的使用率已经是100%,磁盘的写入和读取基本都在185M/s
xtrabackup模拟备份100G数据

xtrabackup模拟备份100G数据

这个已经是达到次SSD盘的io性能的极限了。

测试使用xtrabackup 开启4个线程备份100G的数据使用的时间是9分58秒

time innobackupex --defaults-file=/etc/my.cnf  -ubackupuser -p123456ccs  --host=127.0.0.1  -S /tmp/mysql3306.sock  --parallel=4 --no-timestamp /data/backup/db_3306_`date +%Y%m%d`

190812 17:11:55 Finished backing up non-InnoDB tables and files
190812 17:11:55 [00] Writing /data/backup/db_3306_20190812/xtrabackup_binlog_info
190812 17:11:55 [00]        ...done
190812 17:11:55 Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...
xtrabackup: The latest check point (for incremental): '143003390816'
xtrabackup: Stopping log copying thread.
.190812 17:11:55 >> log scanned up to (143003390816)

190812 17:11:55 Executing UNLOCK TABLES
190812 17:11:55 All tables unlocked
190812 17:11:55 [00] Copying ib_buffer_pool to /data/backup/db_3306_20190812/ib_buffer_pool
190812 17:11:55 [00]        ...done
190812 17:11:55 Backup created in directory '/data/backup/db_3306_20190812/'
MySQL binlog position: filename 'mysql-bin.000060', position '324048095'
190812 17:11:55 [00] Writing /data/backup/db_3306_20190812/backup-my.cnf
190812 17:11:55 [00]        ...done
190812 17:11:55 [00] Writing /data/backup/db_3306_20190812/xtrabackup_info
190812 17:11:55 [00]        ...done
xtrabackup: Transaction log of lsn (143003390816) to (143003390816) was copied.
190812 17:11:55 completed OK!

real    9m58.171s
user    5m12.634s
sys     2m43.506s
做基本完整的备份策略,按备份策略使用percona-xtrabackup做全量和增量备份模拟数据损坏恢复数据为完整一致。 1)下载 xtrabackup wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz 2)解压 # tar zxf percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz 3)进入解压目录 # cd percona-xtrabackup-2.4.4-Linux-x86_64/ 4)复制 bin 下的所有程序到/usr/bin [root@localhost percona-xtrabackup-2.4.4-Linux-x86_64]# cp bin/* /usr/bin/ 5)安装相关插件 #yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-TermReadKey.x86_64 perl-Digest-MD5 –y 6)下载 percona-toolkit 并安装 #wget https://www.percona.com/downloads/percona-toolkit/2.2.19/RPM/percona-toolkit-2.2.19-1.noarch.rpm # rpm -vih percona-toolkit-2.2.19-1.noarch.rpm 完全备份: 语法:# innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/ # innobackupex --user=root --password=123456 /opt/mysqlbackup/full 增量备份二进制文件: #mysqlbinlog --start-position=2378 /usr/local/mysql/data/mysql-bin.000023 > /opt/mysqlbackup/inc/`date +%F`.sql 模拟数据库损坏: 例 : # rm -fr /home/mysql/data/* 还原完全备份: # innobackupex --apply-log /opt/mysqlbackup/full/2016-09-12_11-29-55/ --apply-log 指明是将日志应用到数据文件上,完成之后将备份文件中的数据恢复到数据库中。 注:/opt/mysqlbackup/full/2016-09-12_11-29-55/备份文件所在目录名称 还原数据库: # innobackupex --copy-back /opt/mysqlbackup/full/2016-09-12_11-29-55/ 这里的--copy-back 指明是进行数据恢复。数据恢复完成之后,需要修改相关文件的权限 mysql 数据库才能正常启动。 # chown -R mysql:mysql /usr/local/mysql/data/ 必须重启 MySQL: # systemctl restart mysqld 验证还原后的数据
最新发布
06-08
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值