XtraBackup工具详解 Part 6 使用innobackupex对全备进行恢复
前情提要
XtraBackup工具详解 Part 1 xtrabackup介绍
XtraBackup工具详解 Part 2 xtrabackup安装
XtraBackup工具详解 Part 3 XtraBackup工作原理
XtraBackup工具详解 Part 4 XtraBackup权限及配置
XtraBackup工具详解 Part 5 使用innobackupex对数据库进行全备
实验环境
此次实验的环境如下
- MySQL 5.7.25
- Redhat 6.10
- 操作系统账号:mysql
- 数据库备份账号:backup
1. prepare阶段
上节我们介绍了如何使用innobackupex对数据库进行全备
结束后我们得到了一个非一致性的备份文件,即需要对未提交的事务进行回滚以及对提交的事务进行前滚
这个过程在xtrabackup中叫做准备阶段(prepare stage)
这个阶段完成后该备份文件就可被使用
2. prepare 备份
使用--apply-log进行恢复动作,相当于Oracle的recover动作
后面接全备的目录
如果内存有空闲,可使用--use-memory加快速度
innobackupex --apply-log --use-memory =1G /oradata/data/mysql/xtra/2019-05-27_14-56-51
结束后会出现如下提示
150806 01:01:57 InnoDB: Shutdown completed; log sequence number 1609228 150806 01:01:57 innobackupex: completed OK!
这时数据文件处于一致状态,可供数据库使用
3. copy 数据文件
这个阶段我们使用--copy-back将prepare过的数据文件拷贝至需要还原的服务器的datadir目录
我们需要注意如下几点
- innobackupex 读取my.cnf文件获取数据文件(datadir)位置
- datadir目录必须为空
- 命令允许用户必须对datadir目录有读写权限
- 使用datadir目录的数据库实例必须关闭
innobackupex --copy-back /oradata/data/mysql/xtra/2019-05-27_14-56-51
如何磁盘空间不大,我们可以使用--move-back参数在拷贝完成后删除备份文件(文件目录仍保留)
同样结束后会显示completed OK字样
最后datadir的文件如下图
4. 启动数据库
首先我们需要注意下文件的权限,如果不是使用mysql账号执行的备份和恢复,首先要更改权限
$ chown -R mysql:mysql /var/lib/mysql
最后我们启动数据库即可
service mysqld start
到这里我们完成使用innobackupex进行完全备份和还原
4. 参考资料
本专题所有内容翻译子Percona XtraBackup的官方文档
可通过如下链接下载
http://www.zhaibibei.cn/mysql/xtrabackup/tutorial1/
觉得文章不错的欢迎转发,收藏~
- android 游戏移植 (一) (文末有福利) | SDL 西游释厄传调试
- 自制分布式漏洞扫描工具
- [细节剖析]X Windows中一个22年的漏洞
- android 游戏移植 (二) | SDL2.0适配 西游释厄传
- Android调用系统相册和拍照的Demo
- 黑客是如何通过RDP远程桌面服务进行攻击的
- SDL的几个宽高概念讲解(文中有福利)
- [安全科普]你必须了解的session的本质
- Android中如何动态的实现设置全屏和退出全屏
- Android 双进程Service常驻后台,无惧“一键清理”
- Android之捕获TextView超链接
- 自封装Android软键盘工具类ImeUtil
- XSS挑战第一期Writeup
- 安全公司新星Aorato推出“行为防火墙”
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- flink教程-flink 1.11 集成zeppelin实现简易实时计算平台
- flink教程-详解flink 1.11 中的CDC (Change Data Capture)
- flink教程-基于flink 1.11 使 sql客户端支持执行sql文件
- flink教程-详解flink 1.11 中的JDBC Catalog
- flink教程-flink modules详解之使用hive函数
- 面试iOS 机会在自己手中
- Flink教程-将流式数据写入redis
- Flink教程-keyby 窗口数据倾斜的优化
- Flink源码分析之深度解读流式数据写入hive
- 浙大版《C语言程序设计(第3版)》题目集 习题10-1 判断满足条件的三位数
- 差分标记-HDU1556 Color the ball
- flink cep 案例之机架温度监控报警
- 详解flink 1.11中的新部署模式-Application模式
- 浙大版《C语言程序设计(第3版)》题目集 习题10-2 递归求阶乘和
- hadoop源码解析之RPC分析