首页 > 编程知识 正文

mysql咋恢复备份,mysql数据备份恢复命令

时间:2023-05-06 21:19:48 阅读:44278 作者:2890

mysqlbackup xtrabackup

(RHEL6X86_64 )

我以前对mysql的备份进行了简单的测试,并与大家共享

目前,关于MySQL备份工具最流行的主要有三个

1.xtra backup---- percona开放资源

2.MySQL backup---- MySQL企业版

3.MySQL----MySQL附带工具

三种工具支持热备盘;全装备和增强。

附带的mysqldump备份速度慢,备份的是作为sql语句的DDL insert,追加使用的是mysqlbinlog,必须打开二进制记录;

xtrabackup中使用了ib_logfile和. ibd文件

mysqlbackup不仅提供ib_logfile文件,还提供ib_logfile和. ibd文件。 主要介绍两个工具: mysqlbackup和xtrabackup。 以下是不同之处:

功能

Percona XtraBackup

MySQL企业备份

(InnoDB Hot Backup )

许可

通用航空

属性

普莱斯

自由号

includedinsubscriptionat $ 5000 per server

开放资源

流和加密格式

开放资源

属性

支持的MySQL flavors

Percona Server,MySQL,MariaDB

MySQL

非阻塞innodb backups 1

Blocking MyISAM backups

增量备份

完全压缩备份

增量压缩备份

快速增量备份2

增量备份窗口itharchivedlogs

备份锁定8

(虽然Percona写为NO,但从mysqlbackup文档与Percona的对比来看,它也应该针对非嵌入式读取锁定。)

加密备份

流备份

并行本地备份

并行流备份

并行压缩

并行加密

并行应用日志

并行副本后退

粒子备份

Throttling 4

时间点恢复支持

安全从属备份

压缩备份5

缓冲池状态备份

individual tables导出

individual partitions导出

restoringtablestoadifferentserver 7

数据索引文件统计信息

innodbsecondaryindexesdefragmentation

rsync支持到minimize lock time

经验证的ftwrl处理

备份历史表

备份进度表

Offline备份

tapebackupswithoraclesecurebackup

2 .备份工具比较

功能

MySQL备份

xtra备份

mysqldump

全装备

确认了传球

确认了传球

确认了传球

增备

确认了传球

确认了传球

未验证

备份/导出单个(指定)表

确认了传球

确认了传球

确认了传球

增量恢复

已验证pass

已验证pass

未验证

全量恢复

已验证pass

已验证pass

未验证

压缩

已验证pass

已验证pass

未验证

Tape backup

已验证pass

N/A

N/A

Aws cloude storage

未验证

N/A

N/A

Parallel backup

已验证pass

已验证pass

N/A

注:1.tts mysqlbackup 不支持分区表的导出

2.mysqlbackup压缩也仅仅支持全备,不支持增量(除了image文件--及tape需要的格式)

3.tapebackup mysqlbackup仅支持page-size=16k  不支持8K的page-size

3. mysqlbackup和xtrabackup备份性能对比

测试环境:10.45.53.6 mysql/mysql

存储V7000

对ccv80ch库进行备份,库占用大小:14735MB

默认不使用parallel options(mysqlbackup默认1:6:1)

全备

Cpu

Time cost

File size

iops

util

Mysqlbackup

3%

72s

6195MB

3800

≈100%

xtrabackup

2%

94

6184MB

680

≈100%

增备的前置条件为:update subs set update_date=now();

update acct set update_date=now();

每个表存在100W数据

增备

Cpu

Time cost

File size

iops

util

Mysqlbackup

2%

43s

286MB

3600

≈100%

xtrabackup

2%

272s

386MB

500

≈16%

数据分析:

全备其中相差的部分为其他库的frm文件,mysqlbackup include会拷贝除指定库外其他库的frm文件;

增备其中相差部分是xtrabackup生成了.delta,.meta(每个frm都对应一个),而mysqlbackup,只生成了产生数据变更的sub和acct表的.idb文件

Parallel 备份

Cpu

Time cost

File size

iops

util

Mysqlbackup

12

73s

6493MB

3900

100

xtrabackup

28

51s

6482MB

1900

100

数据分析:

mysqlbackup和xtrabackup的并发机制并不一样导致了这种结果,

mysqlbackup的并发指的是读写线程的并发,即在io足够的情况下分配多个cpu线程;

xtrabackup的并发是file level级别的通常指的就是一次批量的copy ibd文件之类;

通过xtrabackup可以提升备份性能

4. mysqlbackup和xtrabackup恢复性能对比

这里的恢复主要指的是apply-log(因为通常情况下不会使用到最后一步copy-log,而copy-log的实质就是一个copy paste的过程只有在真正数据库坏了的时候才会使用到)

Apply-log

Cpu

Time cost

File size

iops

util

Mysqlbackup

3%

35s

14387MB

788

≈100%

xtrabackup

2%

31s

14387MB

783

≈100%

apply-log其中相差部分是

xtrabackuk生成的一些xtrabackup_binlog_info, xtrabackup_binlog_pos_innodb,

xtrabackup_checkpoints,xtrabackup_info文件

性能基本一致

5. 备份锁测试

lock/default

fullbackup

increment backup

single table exp/imp

mysqlbackup

none

none

yes(--use-tts=(table metadata lock)

xtrabackup

none

none

yes(default) use --no-lock can diable lock 参考

2.2.3文档page37 --no-lock()

mysqldump

yes

None

yes(table-level)  但是可以禁用--single-transaction

经过验证(innodb)得出如上表格结论:

全量备份中除了mysqldump存在锁,mysqlbackup和mysqlbackup都不存在锁;

增量不存在锁(mysqldump是通过binlog,其他两个不是)

对于tts即单表表的导入导出,经过测试发现mysqlbackup存在锁虽然是粒度很小的read lock,但是未发现有参数可以禁用,但是对于xtrabackup和mysqldump虽然默认有锁,但是可以disable掉。

6. 建议和讨论

1.对于全量和增量备份使用mysqlbackup enterprise

2.对于单表的导入导出,数据量小建议使用mysqldump,比较方便;数据量较大例如分区表之类建议使用xtrabackup,虽然比较麻烦但是对系统性能影响更小效率更高

3.对于tape的支持oracle的SBT 是否存在这种需求,若则page-szie必须为16K

4.对于aws cloud storage的功能是否存在需求

5.对于增量的备份mysqlbackup默认2种方法一种是普通的不加参数的,另一种则是--incremental-redo-log-only

这是几年前的文章,如有问题请与指正

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。