--defaults-file
同xtrabackup的--defaults-file参数,指定mysql配置文件; --apply-log
对xtrabackup的--prepare参数的封装; --copy-back
做数据恢复时将备份数据文件拷贝到MySQL服务器的datadir,需先清空原有mysql的数据目录; --remote-host=HOSTNAME
通过ssh将备份数据存储到进程服务器上; --stream=[tar] 备份文件输出格式, tar时使用tar4ibd , 该文件可在XtarBackup binary文件中获得.如果备份时有指定--stream=tar, 则tar4ibd文件所处目录一定要在$PATH中(因为使用的是tar4ibd去压缩, 在XtraBackup的binary包中可获得该文件)。 在使用参数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的时候使用,控制prepare时innodb实例使用的内存量 --throttle=IOS
同xtrabackup的--throttle参数 --sleep=是给ibbackup使用的,指定每备份1M数据,过程停止拷贝多少毫秒,也是为了在备份时尽量减小对正常业务的影响,具体可以查看ibbackup的手册 ; --compress[=LEVEL]
对备份数据迚行压缩,仅支持ibbackup,xtrabackup还没有实现; --include=REGEXP
对xtrabackup参数--tables的封装,也支持ibbackup。备份包含的库表,例如:--include="test.*",意思是要备份test库中所有的表。如果需要全备份,则省略这个参数;如果需要备份test库下的2个表:test1和test2,则写成:--include="test.test1|test.test2"。也可以使用通配符,如:--include="test.test*"。 --databases=LIST
列出需要备份的databases,如果没有指定该参数,所有包含MyISAM和InnoDB表的database都会被备份; --uncompress
解压备份的数据文件,支持ibbackup,xtrabackup还没有实现该功能; --slave-info,
备份从库, 加上--slave-info备份目录下会多生成一个xtrabackup_slave_info 文件, 这里会保存主日志文件以及偏移, 文件内容类似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0 --socket=SOCKET
指定mysql.sock所在位置,以便备份进程登录mysql. mysqldump实战:
  
背景环境:

正在运行的网站系统,mysql数据库,数据量25G,日业务增量10-15M。
备份方式:
每天23:00点,计划任务调用mysqldump执行全备脚本
故障时间点:
上午10点,误删除了一个表


恢复思路:
0. 挂出维护页面
1. 找测试库
2. 恢复全备到测试库
3. 截取二进制日志到误删除时间点,恢复到测试库
起点:master-data=2,找备份文件,获取到日志名字和位置号
终点:分析最后一个binlog,找到误删除事件的位置点
4. 验证数据,将故障表导出,导入会生产库
5. 开启业务



模拟故障
1. 模拟昨天的全备

mysqldump -uroot -p -A -R --triggers --master-data=2 --single-transaction>all.sql

2.

2. 模拟白天的业务
create database baidu charset utf8;
use baidu;
create table t1 (id int);
insert into t1 values(1),(2),(3);
commit;
insert into t1 values(11),(12),(13);
commit;
update t1 set id=10 where id=1;
commit;

 3,删除一些数据

4, 查看 备份文件第22行:

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000016', MASTER_LOG_POS=425;

截取二进制日志:

mysql -uroot -p
show binlog events in 'mysql-bin.000016'; >>>>>>>>1231

5, 截取binlog

mysqlbinlog --start-position=425 --stop-position=1231 /data/mysql/mysql-bin.000016 >/backup/binlog.sql

6.开始恢复

set sql_log_bin=0;
source /backup/all.sql
source /backup/binlog.sql

  

innobackupex实战
 
innobackupex --user=root --password=123 --no-timestamp /backup/full   开始备份
 
模拟备份:   
kingle [(none)]>create database full charset utf8;
kingle [(none)]>use full
kingle[full]>create table t1(id int);
kingle[full]>insert into t1 values(1),(2),(3);
kingle[full]>commit;
备份提交:
innobackupex --user=root --password=123 --no-timestamp --incremental-basedir=/backup/full --incremental /backup/inc1

--incremental-basedir=   : 上次备份的路径.
--incremental :打开增量备份的功能
 
第二次数据模拟:
create database inc1 charset utf8;
use inc1
create table t2(id int);
insert into t2 values(1),(2),(3);
commit;
 
数据递交
innobackupex --user=root --password=123 --no-timestamp --incremental-basedir=/backup/inc1 --incremental /backup/inc2
 
 
数据故障启动!
 
恢复开始:
准备恢复
innobackupex --apply-log --redo-only /backup/full/ 第一次增量合并并准备:
innobackupex --apply-log --redo-only --incremental-dir=/backup/inc1 /backup/full 第二次增量合并并准备:
innobackupex --apply-log --incremental-dir=/backup/inc2 /backup/full 全备再次准备:
innobackupex --apply-log /backup/full/
 
 
数据传入数据库
1. 停数据库
pkill mysqld 2. 删数据
rm -rf /application/mysql/data/* 3.准备备份(使用redo前滚,使用undo回滚,保证数据一致性)
innobackupex --apply-log /backup/full/ 4.恢复数据:
cd /backup/full
cp -a * /application/mysql/data/
或者:
innobackupex --copy-back /backup/full/ 5.改权限,起数据库 chown -R mysql. /application/mysql/data/*
/etc/init.d/mysqld start
 


innoback 参数及使用说明的更多相关文章

  1. Java之可变参数方法使用说明

    代码: package test_demo; /* * 可变参数函数说明 * 传入指定数据类型的数组 * 优先匹配固定长度函数 * */ public class VarArgsDemo { // 可 ...

  2. setDefaultCloseOperation()参数得使用说明

    System.exit(0)是退出整个程序,如果有多个窗口,全部都销毁退出.setDefaultCloseOperation()是设置用户在此窗体上发起 "close" 时默认执行 ...

  3. opcache运行时配置参数详解

    PHP的opcode缓存又出 了新成员(说新不新,也有一段日子了),那就是opcache.新浪微博等都在使用,惠新宸老师强力推荐.本人最近根据官网地址 (http://www.php.net/manu ...

  4. EXCEL函数LookUp, VLOOKUP,HLOOKUP应用详解(含中文参数解释)

    关于VLOOKUP函数的用法 “Lookup”的汉语意思是“查找”,在Excel中与“Lookup”相关的函数有三个:VLOOKUP.HLOOKUO和LOOKUP.下面介绍VLOOKUP函数的用法. ...

  5. 深入浅析JAVA注解

    注解,相信大家都会知道,像@requestMapping,@Resource,@Controller等等的一些注解,大家都用过,那么,他的工具类你用过吗?下面就和大家一起来分享一下注解工具类. 注解的 ...

  6. 深入理解Java:注解

    注解作用:每当你创建描述符性质的类或者接口时,一旦其中包含重复性的工作,就可以考虑使用注解来简化与自动化该过程. Java提供了四种元注解,专门负责新注解的创建工作. 元注解 元注解的作用就是负责注解 ...

  7. Java Basic - Annotation

    使用注解最主要的部分在于对注解的处理,那么就会涉及到注解处理器.      从原理上讲,注解处理器就是通过反射机制获取被检查方法上的注解信息,然后根据注解元素的值进行特定的处理.   注解处理器类库( ...

  8. tornado api 简单模板

    # 安装 pip insatll tornado # 主文件 web_server.py #!/usr/bin/env python # encoding: utf-8 import tornado. ...

  9. Python之函数与变量

    本节内容 函数介绍及其作用 函数的定义与调用 函数的参数说明 全局变量与局部变量 值传递和引用传递 一.函数的介绍及其作用 编程语言中的函数与数学中的函数是有区别的:数学中的函数有参数(输入),就会有 ...

随机推荐

  1. POJ - 2586 Y2K Accounting Bug (找规律)

    Accounting for Computer Machinists (ACM) has sufferred from the Y2K bug and lost some vital data for ...

  2. Canvas保存为图片

    public static void GenerateCanvas(string imgSaveName, int canvasWidth, int canvasHeight, string imgD ...

  3. 正则表达式回溯-导致CPU偏高

    最近了解了下有关正则表达式回溯的内容,想想就写下来,方便自己. 正则表达式匹配算法是建立在正则表达式引擎的基础上的,目前有两种引擎:DFA(确定型有穷自动机)和NFA(不确定型有穷自动机).这两种引擎 ...

  4. 小规模kvm宿主机管理-webvirtmgr安装

    1.前言WebVirtMgr是近两年来发展较快,比较活跃,非常清新的一个KVM管理平台,提供对宿主机和虚机的统一管理,它有别于kvm自带的图形管理工具(virtual machine manager) ...

  5. MarkdownPad基于语法示例

    博客园 [有道] (https://www.zybuluo.com/mdeditor#) [Markdown语法教学链接] (https://www.cnblogs.com/chimoxuanzhi/ ...

  6. ubuntu命令行安装tomcat8

    环境: 虚拟机VM14 Ubuntu16.04 java 1.8 步骤: 先更新 sudo apt-get update 然后安装: sudo apt-get install tomcat8 等一会 ...

  7. C# Winform下一个热插拔的MIS/MRP/ERP框架12(数据处理基类)

    作为ERP等数据应用程序,数据库的处理是重中之重. 在框架中,我封装了一个数据库的基类,在每个模组启动或窗体启动过程中,实例化一个基类即可调用CRUD操作(create 添加read读取 update ...

  8. DRF的认证、权限 和 限制

    一.概述 认证是将传入请求与一组标识凭据(例如请求来自的用户或其签名的令牌)相关联的机制.然后 权限 和 限制 组件决定是否拒绝这个请求. 简单来说就是: 认证确定了你是谁 权限确定你能不能访问某个接 ...

  9. DOM操作技术之动态脚本与动态样式(兼容版)

    动态脚本 使用<script>元素可以向页面中插入Javascript代码,一种方式是通过其src特性包含外部文件,另一种方式就是用这个元素本身来包含代码. 而我们要说的动态脚本,指的是在 ...

  10. 更改Linux下的时间

    1.使用tzseletect glibc-common-2.12-1.192.el6.x86_64 : Common binaries and locale data for glibc Repo : ...