一、全量备份

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. python学习之基础入门,安装,字符串,数据转换,三元运算符

    python基础 我们要开始学习新的编程语言了,加油~~ python是“世界上最好的语言”,学习它当然是认为它是最好的所以我们才学(人生苦短我学python),python运用于不同的领域,采集分析 ...

  2. FFmpeg常用命令学习笔记(七)直播相关命令

    直播相关命令 主要涉及到直播中的推流和拉流 1.直播推流 ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName -re: ...

  3. 今天把自己的ocr镜像开源了

    docker pull docker.io/zhangbo2008/ocr_docker_byzhang:v1 即可,欢迎下载

  4. 软件测试第二周个人作业:WordCount

    github地址:https:/github.com/muzhailong/wc.git 第一次写博客很不容易,也算是一个好的开始吧. 1.   个人作业要求 作业简述:根据WordCount的需求描 ...

  5. c#winform多线程感想

    我很菜所以好好学!!! 最近在做一个关于识别的项目,手动识别和自动识别,为了更好的保证自动识别不会引起界面的卡顿等现象,所以简单的学习了一下多线程,也只是入门但还是记录一下. 一.首先了解一下用多线程 ...

  6. 遍历windows窗口

    原文 1. GetDesktopWindow GetNextWindow HWND hAll = ::GetDesktopWindow(); HWND hCurrent = ::GetNextWind ...

  7. 003_linux驱动之_file_operations函数

    (一)解析file_operations函数 解析002_linux驱动之_register_chrdev注册字符设备中的问题 (二) 1. file_operations结构原型 2. 使用举例   ...

  8. Flutter布局3-----Center

    Center 居中的布局 只能有一个chlid,但是可以用container包含好多子child,继承自Align. 用于将其子项与其自身对齐,并根据子级的大小自行调整大小. 如果它的尺寸受到约束且[ ...

  9. SharePoint學習

    1.SharePoint 2010 Products -> SharePoint 2010 Products Configuration Wizard    配置好后,系統會自動在localho ...

  10. CF #589 (Div. 2) D. Complete Tripartite 构造

    这个 D 还是十分友好的~ 你发现这 $3$ 个集合形成了一个环的关系,所以随意调换顺序是无所谓的. 然后随便让 $1$ 个点成为第 $2$ 集合,那么不与这个点连边的一定也属于第二集合. 然后再随便 ...