mysql xtrabackup-v2_MySQL物理备份基础知识(基于xtrabackup2.4版本)

本文详细介绍了xtrabackup2.4和xtrabackup8.0在备份MySQL时的区别和用法。xtrabackup2.4适用于MySQL5.x版本,而xtrabackup8.0支持MySQL8.x,并引入了系统表空间加密和LZ4压缩等新特性。文章涵盖了备份步骤、安装方法、权限设置、备份场景、主要选项等内容,强调了xtrabackup在日常备份中的重要性。
摘要由CSDN通过智能技术生成

一 版本说明:

1、xtrabackup2.4可以备份5.1,5.5,5.6,5.7版本的MySQL,不能备份MySQL8.0及以上版本,

2、如果要备份MySQL8.x版本,使用xtrabackup8.0版本(xtrabackup8.0.12以前版本不支持MySQL8.0.20及以后版本的备份),

所以建议使用xtrabackup8.0.12及以上版本,另外xtrabackup8.x只能备份MySQL8.X系列,不能备份MySQL5.X版本

二 xtrabackup8.0.12相比之前版本有哪些新特性:

1、支持系统表空间加密

2、支持LZ4加密算法(--compress=lz4 --compress-threads=N).

三 xtrabackup2.4介绍:

1、备份步骤

1)开始记录redo log 的LSN

2) copy innodb表数据文件,与此同时,一个后台进程监视redo log的变化,将变化写入redo log 的备份文件

3)当innodb数据文件备份完成后,加FLUSH TABLES WITH READ LOCK,备份non-innodb 文件(lock table with backup 代替FTWRL锁,不过只对于percona server 5.6+)

4) non-innodb文件备份完成后,记录当时的binlog位置,这时备份redo log进程还在

5)完成redo log备份,释放FTWRL锁,完成备份

2、安装

当前最新版本2.4.20

https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/

1) 解压

2) 设置环境变量

vim /etc/profile

export PATH=$PATH:/usr/local/mysql/bin:/tools/percona-xtrabackup-2.4.20-Linux-x86_64/bin

source /etc/profile

3、先决条件

mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';

mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO

'bkpuser'@'localhost';

mysql> FLUSH PRIVILEGES;

4、备份场景

1) 全量备份

2)增量备份

3)压缩备份

4)加密备份

5、使用说明

innobackupex

innobackupex是xtrabackup的软链接。Innobackupex仍然支持2.2版本所有功能和语法,但现在已被废弃,并将在下一个主要版本中删除。

xtrabackup

一个编译的C二进制文件,它提供了备份整个MySQL数据库实例的功能,包括MyISAM、InnoDB和XtraDB表。

xbcrypt

用于加密和解密备份文件的实用程序。

xbstream

允许流和从xbstream格式提取文件的实用程序。

xbcloud

实用程序,用于从/到云下载和上传xbstream存档的全部或部分。

强烈推荐使用xtrabackup工具进行日常备份。

6、xtrabackup主要选项

1)--backup

执行备份必须的选项

2)--target-dir

指定备份到该目录,如果不存在目录,会自动创建(注意不能是级联目录都不存在)

3)DSN(-h -P -u -p -S)

指定ip,port,user,password,socket等

4)以下两个参数控制当系统中出现长事务时xtrabackup执行FTWRL锁的行为

--ftwrl-wait-threshold=SECONDS 依赖于--ftwrl-wait-timeout=SECONDS,默认值60s,当--ftwrl-wait-timeout=0时,该参数不生效

--ftwrl-wait-timeout=SECONDS,默认值0,表示不关注长事务,直接执行FTWRL锁。如果非0,表示xtrabackup通过show processlist的方式,获取是否存在sql已经执行超过--ftwrl-wait-threshold 的值,如果超过了,

则在执行FTWRL锁之前等待--ftwrl-wait-timeout时间,如果该sql未执行完成,xtrabackup进程退出备份。如果一个慢sql刚刚开始执行,执行时间还未超过--ftwrl-wait-threshold 的值,

那么xtrabackup还是会执行FTWRL锁,这时候执行FTWRL还是会被block住。

5) --apply-log-only

增量备份时,在prepare阶段应用redo日志

6)--binlog-info

此选项控制xtrabackup备份工具应如何检索与备份对应二进制日志坐标,一般备份无需指定该参数,默认即可

OFF: 不获取binlog坐标,不会生成xtrabackup_binlog_info文件

ON: 遍历binlog文件获取坐标,生成xtrabackup_binlog_info文件

LOCKLESS:目前只在Percona Server实现,官方MySQL版本不支持该值

AUTO:默认值,在ON和LOCKLESS之间自动选择,优先选择LOCKLESS,如果不支持LOCKLESS,那么选择ON

7)--compress

此选项告诉xtrabackup使用指定的压缩算法压缩所有输出数据,包括事务日志文件和元数据文件。 目前唯一支持的算法是quicklz,

结果文件具有qpress存档格式,如*.qp格式

8)--compress-threads=#

此选项指定xtrabackup用于并行数据压缩的工作线程数。 此选项默认为1。 并行压缩可以与并行文件复制--parallel一起使用。

例如, --parallel=4 --compress --compress-threads=2 将创建4个I/O线程,这些线程将读取数据并将其管道到2个压缩线程。

9)--copy-back

将先前备份的所有文件从备份目录复制到实例的数据目录。

10)--move-back

将先前备份的所有文件从备份目录move到实例的数据目录。

11)--databases=#

此选项指定应备份的数据库和表列表。 该选项接受表单“databasename1[.table_name1]databasename2[.table_name2]...”的列表]

12)--databases-exclude=name

不包括基于名称的数据库,操作方式与--databases相同,但匹配的名称不包括在备份中。 请注意,此选项比--databases具有更高的优先级。

13)--databases-file=#

此选项指定文件的路径,该文件包含应备份的数据库和表列表。 该文件可以包含表单databasename1[.table_name1]的列表元素,每行一个元素。

14)--decompress

解压.qp文件,可以跟--parallel配合使用,采用多线程解压

15)--defaults-file=[MY.CNF]

指定my.cnf的路径

16)--export

用来恢复单个表

17)--parallel=#

采用多线程备份,可以搭配copy-back,--decompress

18)--prepare

应用redlo日志,达到数据一致性

19)--safe-slave-backup

当指定时,xtrabackup将在运行FLUSH TABLES WITH READ LOCK之前停止从SQL线程,并等待直到SHOW状态中的Slave_open_temp_tables为零才开始备份。

如果没有打开的临时表,将进行备份,否则将启动和停止SQL线程,直到没有打开的临时表。 如果Slave_open_temp_tables在xtrabackup-safe-slave-backup-timeout秒后没有变为零,

则备份将失败。 备份完成后将重新启动从SQL线程。这个选项是为了处理复制临时表问题而实现的,row格式不存在该问题。

20)--slave-info

此选项在备份从服务器时非常有用。 它打印主服务器的二进制日志位置。 它还将二进制日志坐标写入xtrabackup_slave_info文件,作为Change MASTER命令。

可以通过xtrabackup_slave_info文件中的二进制日志位置的CHANGE MASTER命令来设置此主服务器的新从服务器。

21)--throttle=#

用来限制带宽,默认大小10MB, 如果--throttle=1表示带宽为10MB/S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值