mysql物理备份innobackupex
一、全量备份
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的更多相关文章
- MySQL · 物理备份 · Percona XtraBackup 备份原理
http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据 ...
- mysql物理备份基本操作
Ⅰ.xtrabackup介绍 xtrabackup只能备份innodb引擎的数据,不能备份表结构,percona开源的,强烈推荐最新版本(旧版本bug多) innobackupex可以备份myisam ...
- MySQL 物理备份工具-xtrabackup
安装 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum -y install perl ...
- MySQL物理备份 lvm-snapshot
MySQL备份之 lvm-snapshot lvm-snapshot(工具备份) 优点: 几乎是热备(穿件快照前把表上锁,创建完成后立即释放) 支持所有引擎 备份速度快 无需使用昂贵的商业软件(它是操 ...
- MySQL物理备份 xtrabackup
MySQL 备份之 xtrabackup | innobackupex Xtrabackup 介绍 Xtrabackup 是一个对 InnoDB 做数据备份的工具,支持在线热备份(备份时不影响数据读写 ...
- mysql物理备份
原本以为直接将data文件夹下每个数据库对应的文件夹拷贝到新的MySQL的data文件夹就可以了,其实不然. 这样做有几个问题: 1.如果是用了引擎的表,还需要复制ibdata文件,并且frm文件所在 ...
- mysql物理备份恢复 xtrabackup 初试
听闻xtrabackup开源且强大 2018-03-06 11:54:41 在官网下载安装了最新的2.4.9版本 网上文章都用的innobackupex,但是最新版已经抛弃了,自己看看手册<Pe ...
- (4.15)mysql备份还原——物理备份之XtraBackup的下载与安装
关键词:mysql物理备份,XtraBackup,XtraBackup安装,XtraBackup下载 实践链接:https://www.cnblogs.com/gered/p/11147193.htm ...
- 使用 xtrabackup 进行MySQL数据库物理备份
0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...
随机推荐
- C# Parellel.For 和 Parallel.ForEach
简介:任务并行库(Task Parellel Library)是BCL的一个类库,极大的简化了并行编程. 使用任务并行库执行循环C#当中我们一般使用for和foreach执行循环,有时候我们呢的循环结 ...
- js-虚拟dom
问题: vdom是什么?为什么存在vdom? vdom是如何应用的,核心的api是什么? 介绍一下diff算法 1.一些虚拟dom应用了snabbdom.其中的 h函数相当于渲染成了右侧的JS虚拟节点 ...
- python的变量命名规范
一.python变量名命名规则: 1.变量名通常由字母,数字,下划线组成; 2.数字不能作为变量名开头; 3.不能以python中的关键字命名; 4.变量名要有意义; 5.不要用汉字和拼音去命名; 6 ...
- 12、Spring Boot 2.x 集成 MongoDB
1.12 Spring Boot 2.x 集成 MongoDB 完整源码: Spring-Boot-Demos
- P4149 [IOI2011]Race 点分治
思路: 点分治 提交:5次 题解: 刚开始用排序+双指针写的,但是调了一晚上,总是有两个点过不了,第二天发现原因是排序时的\(cmp\)函数写错了:如果对于路径长度相同的,我们从小往大按边数排序,当双 ...
- java获取web项目下文件夹的路径方法
方法一: String realPath=request.getSession().getServletContext() .getRealPath("upload"); 方法二: ...
- Noip2012 提高组 Day1 T1 Vigenère 密码
题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南 ...
- Drainage Ditches (HDU - 1532)(最大流)
HDU - 1532 题意:有m个点,n条管道,问从1到m最大能够同时通过的水量是多少? 题解:最大流模板题. #include <iostream> #include <algor ...
- 使用scp上传ssh公钥到服务器
$ scp ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:.ssh/id_rsa.pub $ ssh root@xxx.xxx.xxx.xxx $ cat ~/.ssh ...
- MySQL中使用LIMIT分页
需求:客户端通过传递pageNum(页码)和pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据. 我们知道MySQL提供了分页函数limit m,n,但是该函数的用法和需求不一样,所 ...