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字段中这意味 ...
随机推荐
- 动手实现linux中的cp命令(可自行拓展)
我们在学习系统编程的时候,一定会有这样的经历,让你动手实现一个简单的cp命令,也就是拷贝相应的文件到对应的目录,或者说是复制吧,当然,实现非常的简单,我们来看看源码吧: #include <st ...
- android的PackageManagerService详解
PackageManagerService主要是一个包的管理服务,在开机的时候会解析以前保存的一些安装包的相关数据,android运行过程中新安装的apk也会保存到PackageManagerServ ...
- 调用sed命令的三种方式
调用sed命令的三种方式 调用sed有三种方式,一种为Shell命令行方式,另外两种是将sed命令写入脚本文件,然后执行该脚本文件. 三种方式的命令格式归纳如下: 一.在Shell命令行输入命令调用s ...
- awk字符串函数及其意义
awk字符串函数及其意义 awk提供了强大的内置字符串函数,用于实现文本的字符串替换.查找以及分隔等功能. awk字符串函数主要有:gsub.index.length.match.split.sub ...
- 监控系统的多协议直播(RTSP RTMP HTTP Live Streaming)
监控系统的多协议直播(RTSP RTMP HTTP Live Streaming)
- javascript语法之字符串转换成数字
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- CTBS问题百科
1.浏览CTBS网站时,Service Unavailable或应用程序池自动停止的现象 解决方法: 点击"开始"-"控制面板"-"管理工具" ...
- STL常用排序算法介绍
merge() 以下是排序和通用算法:提供元素排序策略 merge: 合并两个有序序列,存放到另一个序列. #include <iostream> #include <cstdi ...
- droid invalidate和postinvalidate的区别
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...