温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

xtrabackup备份工具

发布时间:2020-08-16 10:09:30 来源:网络 阅读:468 作者:524683249 栏目:数据库

xtrabackup备份工具

  下载地址   https://www.percona.com/downloads/XtraBackup/LATEST/ 

 Xtrabackup有两个主要的工具:xtrabackupinnobackupex 

  1xtrabackup只能备份InnoDBXtraDB两种数据表,而不能备份MyISAM数据表 ,不能备份表结构

  2innobackupex是参考了InnoDB Hotbackupinnoback脚本修改而来的.innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的 同时备份InnoDBMyISAM引擎的表,但在处理myisam时需要加一个读锁。并且加入了一些使用的选项。如slave-info可以记录备份恢 复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave 

 

 

 

xtrabackup

 

 

备份时常规参数

--defaults-file=# 

默认配置文件的路径,如果不该参数,xtrabackup将从依次从以下位置查找配置文件/etc/my.cnf/etc/mysql/my.cnf/usr/local/etc/my.cnf~/.my.cnf,并读取配置文件中的[mysqld][xtrabackup]配置段。[mysqld]中只需要指定datadirinnodb_data_home_dirinnodb_data_file_pathinnodb_log_group_home_dirinnodb_log_files_in_groupinnodb_log_file_size6个参数即可让xtrabackup正常工作。 

--defaults-extra-file=# 

如果使用了该参数,在读取了全局配置文件之后,会再读取这里指定的配置文件 

--target-dir=name 

备份文件的c目录路径 

--backup 

实施备份到target-dir 

--prepare 

实施对备份文件进行恢复前的准备(生成InnoDB log file) 

--print-param 

打印备份或恢复时需要的参数 

--use-memory=# 

该参数在 prepare 的时候使用,控制prepareinnodb实例使用的内存量 

--suspend-at-end 

target-dir目录下产生一个xtrabackup_suspended文件,将xtrabackup进程挂起,不停地将数据文件的变化同步到备份文件,直到用户手工删除xtrabackup_suspended文件 

--throttle=# 

每秒IO次数,限制backup时使用的I/O操作量,使备份对数据库正常业务的影响最小化 

--log-stream 

该参数在backup的时候使用,将xtrabackup_logfile的内容输出到标准输出,使用该参数时会自动使用suspend-at-end参数,innobackupex脚本的stream 模式会使用该参数。 

--incremental-lsn=name 

增量备份时只拷贝LSN比该参数指定值新的ibd pages,前次备份到了哪个LSN可以看前次备份集的xtrabackup_checkpoints文件 

--incremental-basedir=name 

该参数在backup的时候使用,备份比该参数指定位置的备份集新的idb pages 

--incremental-dir=name 

该参数在prepare的时候使用,指定prepare时产生的.delta 文件和日志文件的存放路径 

--databases=name

--tables=name 

在备份file-per-table类型的数据文件时使用,使用正则表达式指定需要备份的innodb 

--datadir=name 

MySQL数据库的数据文件目录。 

--stream 

生成压缩文件,速度比较慢

 

全备的备份还原:

xtrabackup  --defaults-file=/data/work/mysql-5.5.38/data/mysql3306/my3306.cnf  --backup  --target-dir=/data/bak_test/1

 

 

xtrabackup备份工具

给备份做恢复前准备。

xtrabackup  --defaults-file=/data/work/mysql-5.5.38/data/mysql3306/my3306.cnf  --prepare  --target-dir=/data/bak_test/1

 

xtrabackup备份工具

 

 

增量备份:

 

xtrabackup备份工具

 

给增量备份做恢复前准备

xtrabackup --defaults-file=/data/work/mysql-5.5.38/data/mysql3306/my3306.cnf --prepare --target-dir=/data/bak_test/2

xtrabackup备份工具

拷贝备份到数据库目录下

xtrabackup备份工具

修改权限并重启数据

xtrabackup备份工具

重启

 

xtrabackup备份工具

innobackupex 

 

常规参数

--defaults-file 

xtrabackup--defaults-file参数 

--apply-log 

xtrabackup--prepare参数的封装 

--copy-back 

做数据恢复时将备份数据文件拷贝到MySQL服务器datadir  

--remote-host=HOSTNAME 

通过ssh将备份数据存储到进程服务器上; 

--stream=[tar] 

备份文件输出格式, tar时使用tar4ibd , 该文件可在XtarBackup binary文件中获得.如果备份时有指定--stream=tar, tar4ibd文件所处目录一定要在$PATH(因为使用的是tar4ibd去压缩, XtraBackupbinary包中可获得该文件) 

在使用参数stream=tar备份的时候,你的xtrabackup_logfile可能会临时放在/tmp目录下,如果你备份的时候并发写入较大的话xtrabackup_logfile可能会很大(5G+),很可能会撑满你的/tmp目录,可以通过参数--tmpdir指定目录来解决这个问题。 

--tmpdir=DIRECTORY 

当有指定--remote-host or --stream, 事务日志临时存储的目录, 默认采用MySQL配置文件中所指定的临时目录tmpdir 

--redo-only --apply-log

强制备份日志时只redo ,跳过rollback。这在做增量备份时非常必要。 

--use-memory=# 

该参数在prepare的时候使用,控制prepareinnodb实例使用的内存量 

--throttle=IOS 

xtrabackup--throttle参数 

--sleep=是给ibbackup使用的,指定每备份1M数据,过程停止拷贝多少毫秒,也是为了在备份时尽量减小对正常业务的影响,具体可以查看ibbackup的手册 ; 

--compress[=LEVEL] 

对备份数据迚行压缩,仅支持ibbackupxtrabackup还没有实现; 

--include=REGEXP 

xtrabackup参数--tables的封装,也支持ibbackup。备份包含的库表,例如:--include="test.*",意思是要备份test库中所有的表。如果需要全备份,则省略这个参数;如果需要备份test库下的2个表:test1test2,则写成:--include="test.test1|test.test2"。也可以使用通配符,如:--include="test.test*" 

--databases=LIST 

列出需要备份的databases,如果没有指定该参数,所有包含MyISAMInnoDB表的database都会被备份; 

--uncompress 

解压备份的数据文件,支持ibbackupxtrabackup还没有实现该功能; 

--slave-info, 

备份从库, 加上--slave-info备份目录下会多生成一个xtrabackup_slave_info 文件, 这里会保存主日志文件以及偏移, 文件内容类似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0 

--socket=SOCKET 

指定mysql.sock所在位置,以便备份进程登录mysql. 

 

--databases=name

指定要备份的库

--tables=name 

在备份file-per-table类型的数据文件时使用,使用正则表达式指定需要备份的innodb 

--incremental-basedir= 上一个备份目录

--incremental  增量备份

 

全备  innobackupex  --user=root --password=xxxxx--defaults-file=/data/work/mysql-5.5.38/data/mysql3306/my3306.cnf  /data/bak_test/3 

 

xtrabackup备份工具

恢复前的准备   xtrabackup  --defaults-file=/data/work/mysql-5.5.38/data/mysql3306/my3306.cnf  --prepare  --target-dir=/data/bak_test/3/2015-05-28_09-59-28

xtrabackup备份工具

apply-log,为了加快速度,一般建议设置--use-memory,这个步骤完成之后,目录/backup/mysql/data/2013-10-29_09-05-25下的备份文件已经准备就绪

xtrabackup备份工具

拷贝数据到数据库数据目录下对文件进行权限修改启动数据。

增量备份:

增量备份需要基于全备,先假设我们已经有了一个全备(x )或基于上一个增量备份之上,在该全表的基础上做增量备份。

 

--defaults-file=/data/work/mysql-5.5.38/data/mysql3306/my3306.cnf --user=root --password=xxxx  --incremental-basedir=/data/bak_test/3/2015-05-28_10-23-35 --incremental /data/bak_test/

xtrabackup备份工具

曾备的还原

模式

innobackupex --apply-log --redo-only BASE-DIR

innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1

innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2

其中BASE-DIR是指全备目录,INCREMENTAL-DIR-1是指第一次的增量备份,INCREMENTAL-DIR-2是指第二次的增量备份,以此类推。

第一步是在所有备份目录下重做已提交的日志

innobackupex --apply-log --redo-only /data/bak_test/3/2015-05-28_10-23-35

xtrabackup备份工具

innobackupex --apply-log --redo-only /data/bak_test/3/2015-05-28_10-23-35 --incremental-dir=/data/bak_test/2015-05-28_10-34-11

xtrabackup备份工具

 

回滚未完成的日志:

innobackupex --apply-log /data/bak_test/3/2015-05-28_10-23-35

xtrabackup备份工具

准备数据 prepare  ,恢复前的准备   xtrabackup  --defaults-file=/data/work/mysql-5.5.38/data/mysql3306/my3306.cnf  --prepare  --target-dir=/data/bak_test/3/2015-05-28_10-23-35

拷贝数据到数据库目录下并修改权限启动数据即可。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI