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,原理类似于 ...
随机推荐
- OpenCV读取图像问题:OpenCV(3.4.3) D:\Build\OpenCV\opencv-size.width0 && size.height0 in function 'cvimshow'
版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/83280067 - 问题与解决 最近正在学OpenCV,发现 ...
- 笔记本电脑安装jupyterthemes
上午准备在老笔记本上也装上jupyter themes,竟然遇到一堆问题: 首先直接 pip install jupyterthemes 参考:https://blog.csdn.net/Jinlon ...
- 【数位DP-板子题目】HDU-3555-Bomb- [只要49]
Bomb Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepted Su ...
- 数组的新方法 forEach some filter findIndex
forEach some filter findIndex这些都属于数组的新方法,都会对数组中的每一项,进行遍历,执行相关的操作: 只不过在循环的时候有些不一样 参考资料:https://wan ...
- 写点恐怖小说为自己打call
https://github.com/zhangbo2008/TryingWriteHorrorStory
- hibernate步骤和配置
1.引入hibernate的jar包和数据库驱动包 2.src添加hibernate.cfg.xml(hibernate配置文件) 3.数据库编写pojo public class Test { pu ...
- flutter布局-1-column
1.mainAxisAlignment:主轴布局方式,column主轴方向是垂直的方向 mainaxis.png 默认值:MainAxisAlignment.start: start ,沿着主轴方 ...
- CF540D Bad Luck Island
嘟嘟嘟 看到数据范围很小,就可以暴力\(O(n ^ 3)\)dp啦. 我们令\(dp[i][j][k]\)表示这三种人分别剩\(i, j, k\)个的概率.然后枚举谁挂了就行. 这里的重点在于两个人相 ...
- django使用mysql的时区问题解决
1.如果是linux 将系统的时区表导入mysql. mysql_tzinfo_to_sql /usr/share/zoneinfo 2.如果是windows 下载时区表 然后导入时区表,file_n ...
- RTMP协议分析及推流过程
1.RTMP(实时消息传输协议)是Adobe 公司开发的一个基于TCP的应用层协议. 2.RTMP协议中基本的数据单元称为消息(Message). 3.当RTMP协议在互联网中传输数据的时候,消息会被 ...