innobackupex
选项介绍
--backup 备份
--apply-log 应用日志
--move-back --copy-back 恢复
--export 只导出单个表。前提是使用innodb_file_per_table
decompress decrypt 解压,解密
--incremental-basedir 增量备份的基路径
--incremental-lsn 指定增量备份的lsn。就可以不用指定增量备份的基路径。
--incremental-dir 增量备份到哪
--safe-slave-backup 在从节点备份,指定该参数停止SQL线程,等到show status 总的 Slave_open_temp_tables为0开始备份。如果Slave_open_temp_tables不为0。将不断启动停止SQL线程知道Slave_open_temp_tables为0。如果超过了--safe-slave-backup-timeout 指定时间,Slave_open_temp_tables 还不为0,备份失败。
--rsync 使用rsync实用程序优化本地文件传输。不能--stream一同使用
--parallel 并行线程
--no-timestamp 不生成时间戳目录
--compress 压缩为qp格式
--compress-threads 压缩的线程
--rebuild-indexes
--rebuild-threads
--decompress 解压缩,需要 qpress
--incremental-history-name PERCONA_SCHEMA.xtrabackup_history
--stream 指定输出格式,目前支持tar和xbstream
--tmpdir 指定文件的临时存储位置,默认为my.cnf里面配置的临时位置。
--use-memory 使用的内存,仅仅用于--apply-log
--redo-log-version
--redo-only 在增量备份恢复时,跳过rollback。只做redo。
--tables-file
--include=REGEXP 对xtrabackup参数--tables的封装,也支持ibbackup。备份包含的库表,例如:--include="test.*",意思是要备份test库中所有的表。如果需要全备份,则省略这个参数;如果需要备份test库下的2个表:test1和test2,则写成:--include="test.test1|test.test2"。也可以使用通配符,如:--include="test.test*"。
--databases=LIST 例如 --databases='lizhi_online test' 也可以指定某个表--databases='test.t1' 。
列出需要备份的databases,如果没有指定该参数,所有包含MyISAM和InnoDB表的database都会被备份;
--compress xtrabckup自身带的压缩和--stream 互斥。 在压缩方面 gzip压缩率最大,但是压缩时间久。--compress (即qpress)压缩率较小,但是压缩快,可以指定多线程。建议使用 xtrabackup自身带的--compress压缩。
--slave-info 重要参数。只有开启了GTID才可用,如果在从库进行备份,会生成一个备份文件xtrabackup_slave_info 记录了 SET GLOBAL gtid_purged='xxx' ;CHANGE MASTER TO MASTER_AUTO_POSITION=1 。这样可以方便的接到主库上。
备份(用stream模式备份)
innobackupex --defaults-file=$defaults --host=${host} --user=${user} --password="${password}" --port=${port} --parallel=6 --compress --compress-threads=6 --slave-info --stream=xbstream $backup_dir >$backup_file 2>$backup_log
例如:
/usr/local/xtrabackup/bin/innobackupex --defaults-file=/usr/local/mysql/my_online.cnf --socket=/data_db1/mysql_online/data/mysql.sock --databases='lizhi_online test' --user root --password '123456' --stream=tar /tmp/xtrabackupdir/ |gzip >/tmp/xtrabackupdir/online_mysql2.tar.gz
恢复全部备份
/usr/local/xtrabackup/bin/innobackupex --apply-log /dir
innobackupex --defaults-file=/usr/local/mysql/my_Podcast.cnf --copy-back /dir &
或者使用--move-back
innobackupex --defaults-file=/usr/local/mysql/my_Podcast.cnf --move-back /dir &
恢复全部备份中的指定表
innobackupex --apply-log --export /backupdir (可以通过--include 仅export某个表,其他表会被忽略。报错数据正常 )
复制目录下生成的 .exp .cfg .ibd 文件到目标实例做恢复
目标实例:
create table push_msg
alter table push_msg discard tablespace;
复制cfg exp ibd文件 到对应数据目录下 (如: ls |grep push_content|grep -E 'cfg$|ibd$|exp$'|while read line ;do mv $line dir ;done )
alter table push_content import tablespace;
恢复完毕后 change重定向主库
change master to
master_host='xxx',
master_port=xxx,
master_user='xxx',
master_password='xxx',
master_log_file='xxx',
master_log_pos=xxx;
相关命令
解压 xbstream备份的介质
xbstream -x < xxxx.xbstream -C ./
解压有带--compress压缩的每个备份文件
for fil in `ls ./*/*qp`;do dirname=`dirname $fil`;echo $fil;qpress -d $fil $dirname;done;
解压完删除.qp文件
for fil in `ls ./*/*qp`;do dirname=`dirname $fil`;echo $fil;qpress -d $fil $dirname;if [ $? -eq 0 ];then rm -rf $fil;fi;done;
xtrabackup BUG
如果创建表使用数据目录之外的目录。会在数据目录下生成isl文件存储ibd目录的全地址。但恢复 --copy-back 或者move-back不一定能够把对应的ibd移动到相关目录。
根据isl链接移动文件到目标目录:
ls |grep isl$|while read line; do echo $line;strings $line|awk -F/ '{print $NF}' |awk '{system("mv "$0" /dir ")}';done
- 3.2 配置构建Angular应用——简单的笔记存储应用
本节我们会通过构建一个简单的笔记存储应用(可以载入并修改一组简单的笔记)来学习如何应用Angular的特性.这个应用用到的特性有: 在JSON文件中存储笔记 展示.创建.修改和删除笔记 在笔记中使用M ...
- Log4j简单学习笔记
log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...
- Linux——帮助命令简单学习笔记
Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...
- OI数学 简单学习笔记
基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\ ...
- 3.2.1 配置构建Angular应用——简单的笔记存储应用——编辑功能
本节我们会接着上节课的内容,继续来完成使用Angular来创建简单的笔记存储应用,上一节课,我们完成了笔记的展示功能,本节课,我们来完成编辑功能. 编辑主要是两个功能:编辑现有的笔记以及创建新笔记.首 ...
- 3.2.1 配置构建Angular应用——简单的笔记存储应用——展示功能
本节我们会通过构建一个简单的笔记存储应用(可以载入并修改一组简单的笔记)来学习如何应用Angular的特性.这个应用用到的特性有: 在JSON文件中存储笔记 展示.创建.修改和删除笔记 在笔记中使用M ...
- format()的简单实用 笔记
# 关于format和format_map的使用# 如果要使用输出的字符串对其不仅仅是可以使用format,还可以使用ljust/rjust/center来处理,输出当然也可以是使用%来进行操作,但是 ...
- Liquibase+SpringBoot的简单使用笔记!update+rollback
该笔记记录了springboot整合liquibase之后,如何根据liquibase ChangeLogFile对数据库进行修改以及回滚操作 参考: baeldung.com JHipster 1. ...
- ElasticSearch 5学习(4)——简单搜索笔记
空搜索: GET /_search hits: total 总数 hits 前10条数据 hits 数组中的每个结果都包含_index._type和文档的_id字段,被加入到_source字段中这意味 ...
随机推荐
- SpriteBuilder中使用GUI界面快速搭建RPG游戏中的地图名显示动画
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在RPG游戏中我们在进入一个新的场景时,比如一个房间,一个村庄, ...
- 使用JavaScript在Canvas上画出一片星空
随着Html5的迅猛发展,画布也变得越来越重要.下面我就写一个关于在canvas上画出一片星空的简单的代码的示例. 理论基础 初始化一个canvas,获得一个用于绘制图形的上下文环境context.并 ...
- UNIX网络编程——TCP长连接与短连接的区别
一.TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接.client向server发送消息,server回应client,然后 ...
- Zeroc Ice Slice语言使用 HelloWorld
Slice介绍 为了开发多语言支持的RPC服务,需要一种中立的新语言来定义这个服务接口,以便各个编程语言能够准确无误地理解和翻译接口,为此Ice设计了Slice语言.Ice开发的第一步 ...
- AngularJS进阶(三十八)上拉加载问题解决方法
AngularJS上拉加载问题解决方法 项目中始终存在一个问题:当在搜索栏输入关键词后(见图1),按照既定的业务逻辑应该是服务端接收到请求后,首先返回查询的前7条数据,待客户端出现上拉加载时,继续查找 ...
- 设计模式之——工厂模式(C)
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41219129 主要介绍抽象工厂模式,以及工厂方法和抽象工厂 ...
- Mybatis插件原理分析(一)
我们首先介绍一下Mybatis插件相关的几个类,并对源码进行了简单的分析. Mybatis插件相关的接口或类有:Intercept.InterceptChain.Plugin和Invocation,这 ...
- 9.9、Libgdx之软键盘
(官网:www.libgdx.cn) 大部分Android设备和所有的iOS设备没有实体键盘.取而代之的是软键盘,为了调用软键盘,可以使用如下方法: Gdx.input.setOnscreenKeyb ...
- python发送post请求
urllib2.urlopen() urlib2是使用各种协议完成打开url的一个扩展包.最简单的使用方式是调用urlopen方法,比如 def urlopen(url, data=None, tim ...
- iOS树状视图(折叠单元格)详细使用
RATreeView是一个第三方的iOS树视图(通俗的讲就是折叠单元格),它是对UITableView的封装,定义自己的委托和数据源的法,RATreeView是高度可定制的,并且有很多功能.很多朋友都 ...