一、全量备份

1.安装xtrabackup

# wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
# yum install perl-Digest-MD5 libev -y
# yum localinstall percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm

2. 创建备份用户:

mysql> CREATE USER 'backup'@'172.27.%' IDENTIFIED BY 'backup123';
mysql> GRANT SELECT, RELOAD, LOCK TABLES, REPLICATION CLIENT, PROCESS, SUPER ON *.* TO 'backup'@'172.27.%';
mysql> FLUSH PRIVILEGES;

3. 创建备份目录

# mkdir /data/innobackup

4. 备份

# innobackupex --user=backup --password=backup_123 --port= --socket=/tmp/mysql.sock --defaults-file=/etc/my.cnf --parallel= --no-timestamp  /data/innobackup 

注意:输出的日志‘completed OK!’,说明备份成功

-u, --user: 用户名 
-p, --password: 密码
-H, --host:  主机
-P, --port:  端口
-S, --socket:  socket
--defaults-file:  指定数据库配置文件
--parallel: 多线程拷贝.ibd文件
--no-timestamp:  不使用时间戳生成备份目录

二、恢复

1. apply log

# innobackupex --apply-log /data/innobackup/ --use-memory=16G  

注意:留意输出的日志‘completed OK!’,说明apply redo 日志成功.

2. 恢复步骤

# 先停止mysql
/etc/init.d/mysqld stop
# 清空mysql的data目录,否则会报错:Original data directory /data is not empty!
mv /usr/local/mysql/data /usr/local/mysql/data_bak
mkdir /usr/local/mysql/data

innobackupex --apply-log /data/innobackup/ --use-memory=16G

拷贝主配置文件my.cnf,并修改server-id等。

# 执行恢复操作
innobackupex --defaults-file=/etc/my.cnf --copy-back /data/innobackup
# 授权
chown -R mysql:mysql /usr/local/mysql/data
# 物理备份会将主从配置信息一起同步过来。在mysql配置里面添加一行
vim /etc/my.cnf
[mysqld]
skip-slave-start #添加这一行,slave复制进程不随mysql启动
# 启动数据库
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf & (/etc/init.d/mysqld start)

流式备份:

如果需要将 机器上面的备份数据发送到远程机器,或者快速搭建主从,可以采用流式备份。

例如:这里将172.26.1.3的数据发送到 172.26.1.245 并做成主从同步。  master: 172.26.1.3  slave:172.26.1.245

# 172.26.1.3 备份之前需要先关闭多线程复制,否则会报错

> show variables like '%worker%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| slave_parallel_workers | 0 |
+------------------------+-------+
> set global slave_parallel_workers=0;

备份命令:

innobackupex --defaults-file=/etc/my.cnf  --user=backup --password="backup123" --port=3306 --socket=/tmp/mysql.sock --slave-info --parallel=16  --stream=xbstream ./ 2>/data/xtrabackup_log.txt | pv -q -L40m | ssh lily@172.26.1.245 " cat - |  xbstream -x -C /data/innobackup"

注:这里的 172.26.1.245 是远程机器的ip

--slave-info: 备份目录下会多生成一个xtrabackup_slave_info文件,文件内容类似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0。 
    这个参数适用的场景:假设有主库A和从库B,目前想再添加一台备库C,并让备库C以主库A为master;因为主库A是生产库,压力一般比较大,所以就在备库B上备份一个数据库,然后把这个备份拿到C服务器上,并导入到C库,接下来再在C服务器上执行change master的命令:其中master_host是A的ip,而master_log_file和master_log_pos就是这个xtrabackup_slave_info里面的值。

恢复(在远程机器172.26.1.245执行)

1,拷贝master机器的/etc/my.cnf 文件,并修改server_id。

2,执行(二、恢复)这个步骤之后

3,将172.26.1.245做成172.26.1.3的从库, 从 /data/innobackup/xtrabackup_binlog_info 文件里面读取binlog和position信息。

#  cat /data/innobackup/xtrabackup_binlog_info

mysql-bin.000066 94839444

mysql> CHANGE MASTER TO MASTER_HOST='172.26.1.3',MASTER_USER='repl',MASTER_PASSWORD='xxxxxx',MASTER_AUTO_POSITION=0,MASTER_LOG_FILE='mysql-bin.000066',MASTER_LOG_POS=94839444; 

mysql> start slave;

mysql物理备份innobackupex的更多相关文章

  1. MySQL · 物理备份 · Percona XtraBackup 备份原理

    http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据 ...

  2. mysql物理备份基本操作

    Ⅰ.xtrabackup介绍 xtrabackup只能备份innodb引擎的数据,不能备份表结构,percona开源的,强烈推荐最新版本(旧版本bug多) innobackupex可以备份myisam ...

  3. MySQL 物理备份工具-xtrabackup

    安装 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum -y install perl ...

  4. MySQL物理备份 lvm-snapshot

    MySQL备份之 lvm-snapshot lvm-snapshot(工具备份) 优点: 几乎是热备(穿件快照前把表上锁,创建完成后立即释放) 支持所有引擎 备份速度快 无需使用昂贵的商业软件(它是操 ...

  5. MySQL物理备份 xtrabackup

    MySQL 备份之 xtrabackup | innobackupex Xtrabackup 介绍 Xtrabackup 是一个对 InnoDB 做数据备份的工具,支持在线热备份(备份时不影响数据读写 ...

  6. mysql物理备份

    原本以为直接将data文件夹下每个数据库对应的文件夹拷贝到新的MySQL的data文件夹就可以了,其实不然. 这样做有几个问题: 1.如果是用了引擎的表,还需要复制ibdata文件,并且frm文件所在 ...

  7. mysql物理备份恢复 xtrabackup 初试

    听闻xtrabackup开源且强大 2018-03-06 11:54:41 在官网下载安装了最新的2.4.9版本 网上文章都用的innobackupex,但是最新版已经抛弃了,自己看看手册<Pe ...

  8. (4.15)mysql备份还原——物理备份之XtraBackup的下载与安装

    关键词:mysql物理备份,XtraBackup,XtraBackup安装,XtraBackup下载 实践链接:https://www.cnblogs.com/gered/p/11147193.htm ...

  9. 使用 xtrabackup 进行MySQL数据库物理备份

    0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...

随机推荐

  1. 大海航行靠舵手 华为云靠什么征服K8S?

    Kubernetes 是Google开源的容器集群管理系统或者称为分布式操作系统.它构建在Docker技术之上,为容器化的应用提供资源调度.部署运行.服务发现.扩容缩容等整一套功能,本质上可看作是基于 ...

  2. window程序意外关闭自动重启脚本实现

    @echo off : tasklist|find /i "xxxx"||start yyyy ping/n 127.1>nul 新建 .bat 文件,将其写入文件 xxxx ...

  3. 《图解HTTP》笔记1

    Web 是建立在 HTTP 协议上通信的. HTTP 通常被译为超文本传输协议,但这种译法并不严谨.严谨的译名应该为“超文本转移协议”. 通过发送请求获取服务器资源的 Web 浏览器等,都可称为客户端 ...

  4. Java并发包--线程池原理

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509954.html 线程池示例 在分析线程池之前,先看一个简单的线程池示例. 1 import jav ...

  5. 我为什么要立刻放弃 React 而使用 Vue?

    作者有过多种框架,以亲身经历告诉我们vue的优势在哪里! 我为什么要立刻放弃 React 而使用 Vue?   18-07-2919:28 现在,Vue.js 在 Github 上得到的星星数已经超过 ...

  6. [HTML5] Lazyload below the fold images and iframes with native browser lazy-loading

    In this lesson, you'll learn how to use the loading="lazy" attribute available on images a ...

  7. ITextSharp开源PDF处理库

    1:官方完整开源项目 http://sourceforge.net/projects/itextsharp/ 2:使用NUGET :> install-package itextsharp

  8. 【题解】球迷购票问题-C++

    题目背景 盛况空前的足球赛即将举行.球赛门票售票处排起了球迷购票长龙. 按售票处规定,每位购票者限购一张门票,且每张票售价为50元.在排成长龙的球迷中有N个人手持面值50元的钱币,另有N个人手持面值1 ...

  9. 001_UCOSIII引入原因

    (一)在前年的学习中一直都是在裸机上跑程序的,根本没有用到操作系统,但是因为以前开发的东西很小,根本用不着,也没必要在操作系统上跑,所以就没有学习.在未来的几天中将进军UCOSIII.为什么选择UCO ...

  10. 利用chrome console批量下载文件

    因工作需要,需要定期从某页面下载多个文档,是体力活. 想用chrome扩展,找了几个不行.原因是: 1.有的扩展识别不了链接,因为链接是形如:jsp?XXX=XXX的形式 2.有的扩展能批量打开链接, ...