Xtrabackup2.4.8备份、还原、恢复Mysql5.7.19实操
环境:CentOS 6.7 + Mysql 5.7.19 + Xtraback 2.4.8
innobackupex常用参数:
--user=USER 指定备份用户,不指定的话为当前系统用户
--password=PASSWD 指定备份用户密码
--port=PORT 指定数据库端口
--defaults-group=GROUP-NAME 在多实例的时候使用
--host=HOST 指定备份的主机,可以为远程数据库服务器
--apply-log 回滚日志
--database 指定需要备份的数据库,多个数据库之间以空格分开
--defaults-file 指定mysql的配置文件
--copy-back 将备份数据复制回原始位置
--incremental 增量备份,后面跟要增量备份的路径
--incremental-basedir=DIRECTORY 增量备份时使用指向上一次的增量备份所在的目录
--incremental-dir=DIRECTORY 增量备份还原的时候用来合并增量备份到全量,用来指定全备路径
--redo-only 对增量备份进行合并
--rsync 加快本地文件传输,适用于non-InnoDB数据库引擎。不与--stream共用
--no-timestamp 生成的备份文件不以时间戳为目录.
示例组1:全备还原
#数据目录:/data/mysql
$ mkdir -pv /backup///full
#本地 单实例 全量备份
$ innobackupex --defaults-file=/etc/my.cnf --user=root --password= --socket=/tmp/mysql.sock --no-timestamp --parallel= /backup///full
#还原
$ innobackupex --apply-log /backup///full
$ service mysqld stop
$ mv /data/mysql /data/mysql_bak_201711071 ##备份原数据目录
$ mkdir -pv /data/mysql
$ innobackupex --copy-back /backup///full
$ chown -R mysql:mysql /data/mysql
$ service mysqld start
示例组2:增量还原
#数据目录:/data/mysql
$ mkdir -pv /backup///{full,inc1,inc2,inc3}
#本地 单实例 全量备份
$ innobackupex --defaults-file=/etc/my.cnf --user=root --password= --socket=/tmp/mysql.sock --no-timestamp --parallel= /backup///full
#本地 单实例 增量备份1
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "create table tpccdb.tb2(col1 varchar(16));"
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "insert into tpccdb.tb2 values('1'),('2'),('3'),('第一次插入结束');"
$ innobackupex --defaults-file=/etc/my.cnf --user=root --password= --socket=/tmp/mysql.sock --no-timestamp --parallel= --incremental-basedir=/backup///full --incremental /backup///inc1
#本地 单实例 增量备份2
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "insert into tpccdb.tb2 values('4'),('5'),('6'),('第二次插入结束');"
$ innobackupex --defaults-file=/etc/my.cnf --user=root --password= --socket=/tmp/mysql.sock --no-timestamp --parallel= --incremental-basedir=/backup///inc1 --incremental /backup///inc2
#本地 单实例 增量备份3
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "insert into tpccdb.tb2 values('7'),('8'),('9'),('第三次插入结束');"
$ innobackupex --defaults-file=/etc/my.cnf --user=root --password= --socket=/tmp/mysql.sock --no-timestamp --parallel= --incremental-basedir=/backup///inc2 --incremental /backup///inc3
#还原
$ innobackupex --apply-log --redo-only /backup///full
$ innobackupex --apply-log --redo-only /backup///full --incremental-dir=/backup///inc1
$ innobackupex --apply-log --redo-only /backup///full --incremental-dir=/backup///inc2
$ innobackupex --apply-log /backup///full --incremental-dir=/backup///inc3
$ innobackupex --apply-log /backup///full
$ service mysqld stop
$ mv /data/mysql /data/mysql_bak_201711072 ##备份原数据目录
$ mkdir -pv /data/mysql
$ innobackupex --copy-back /backup///full
$ chown -R mysql:mysql /data/mysql
$ service mysqld start
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "select * from tpccdb.tb2;"
示例组3:完全&定点&误操作恢复
#数据目录:/data/mysql
$ mkdir -pv /backup///{full,inc1,inc2}
#本地 单实例 全量备份
$ innobackupex --defaults-file=/etc/my.cnf --user=root --password= --socket=/tmp/mysql.sock --no-timestamp --parallel= /backup///full
#本地 单实例 增量备份1
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "create table tpccdb.tb3(col1 varchar(16));"
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "insert into tpccdb.tb3 values('1'),('2'),('3'),('第一次插入结束');"
$ innobackupex --defaults-file=/etc/my.cnf --user=root --password= --socket=/tmp/mysql.sock --no-timestamp --parallel= --incremental-basedir=/backup///full --incremental /backup///inc1
#本地 单实例 增量备份2
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "insert into tpccdb.tb3 values('4'),('5'),('6'),('第二次插入结束');"
$ innobackupex --defaults-file=/etc/my.cnf --user=root --password= --socket=/tmp/mysql.sock --no-timestamp --parallel= --incremental-basedir=/backup///inc1 --incremental /backup///inc2 $ mysql -S /tmp/mysql.sock -uroot -p123456 -e "insert into tpccdb.tb3 values('7'),('8'),('9'),('第三次插入结束');" ##二进制日志恢复
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "flush logs;"
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "insert into tpccdb.tb3 values('10'),('11'),('12'),('第四次插入结束');"
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "flush logs;"
$ mysql -S /tmp/mysql.sock -uroot -p123456 -e "insert into tpccdb.tb3 values('13'),('14'),('15'),('第五次插入结束');" #恢复
$ innobackupex --apply-log --redo-only /backup///full
$ innobackupex --apply-log --redo-only /backup///full --incremental-dir=/backup///inc1
$ innobackupex --apply-log /backup///full --incremental-dir=/backup///inc2
$ innobackupex --apply-log /backup///full
$ cat /backup///inc2/xtrabackup_binlog_info ##获取最后一次备份的LSN
## mysql-bin.
$ ll -t /data/mysql/mysql-bin* ##查看有多少个需要导入的二进制文件
-rw-r----- mysql mysql Nov : /data/mysql/mysql-bin.
-rw-r----- mysql mysql Nov : /data/mysql/mysql-bin.
-rw-r----- mysql mysql Nov : /data/mysql/mysql-bin. $ mysqlbinlog --start-position= /data/mysql/mysql-bin. -vv >> /tmp/load.sql
$ mysqlbinlog /data/mysql/mysql-bin. -vv >> /tmp/load.sql
$ mysqlbinlog /data/mysql/mysql-bin. -vv >> /tmp/load.sql ##完全恢复 #$ mysqlbinlog --stop-position= /data/mysql/mysql-bin. -vv >> /tmp/load.sql ##指定点恢复 #$ mysqlbinlog --stop-position= /data/mysql/mysql-bin. -vv >> /tmp/load.sql ##误删除恢复(误操作前停止)
#$ mysqlbinlog --start-position= /data/mysql/mysql-bin. -vv >> /tmp/load.sql ##误删除恢复(误操作后继续) $ service mysqld stop
$ mv /data/mysql /data/mysql_bak_201711073 ##备份原数据目录
$ mkdir -pv /data/mysql
$ innobackupex --copy-back /backup///full
$ chown -R mysql:mysql /data/mysql
$ /usr/local/mysql/bin/mysqld start --skip-... (关系二进制日志,只需要SUPER权限登录) $ mysql -uroot -p123456
mysql> source /tmp/load.sql
$ service mysqld stop
$ /usr/local/mysql/bin/mysqld start
Xtrabackup2.4.8备份、还原、恢复Mysql5.7.19实操的更多相关文章
- Xtrabackup2.4.8备份、还原、恢复Mysql5.7.19实操(网络拷贝)
环境:CentOS 6.7 + Mysql 5.7.19 + Xtraback 2.4.8 innobackupex常用参数: --user=USER 指定备份用户,不指定的话为当前系统用户 --p ...
- python脚本:在Ubuntu16系统上基于xtrabackup2.4和mysql5.7实现数据库数据的自动化备份和恢复,亲测有效!
1 安装教程 官网安装教程:https://www.percona.com/doc/percona-xtrabackup/2.4/installation/apt_repo.html -------- ...
- MongoDB整库备份与还原以及单个collection备份、恢复方法
mongodb数据库维护离不开必要的备份.恢复操作,而且一般不会出错,所以我们在使用的时候大部分时候使用备份和恢复操作就可以了 mongodump.exe备份的原理是通过一次查询获取当前服务器快照 ...
- centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复
centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复 有时候我们会碰到这样的业务场景: 1.将大的数据库恢复到本地进行业务测试 ...
- (4.10)mysql备份还原——利用binlog+全备恢复误删表【不推荐使用】
关键误操作:mysql误删除 1.备份+binlog恢复数据 [1.1]场景:不小心误删除某张表 [1.2]解决方法:在另外一台机器,恢复全库+日志,然后导出删除的表,再插入会生产库. [1.3]案例 ...
- (4.16)mysql备份还原——物理备份之XtraBackup实践
关键词:XtraBackup实践,物理备份,xtrabackup备份,innobackupex备份 [1]如何使用? [3]系列:innobackupex --help |more [4]系列:xtr ...
- xtrabackup备份还原mariadb数据库
一.xtrabackup 简介 xtrabackup 是由percona公司开源免费的数据库热备软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份,对于myisam的备份同样需要 ...
- 我的MYSQL学习心得(十四) 备份和恢复
我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) ...
- 我的MYSQL学习心得 备份和恢复(详细)
备份 逻辑备份方法 使用MYSQLDUMP命令备份 MYSQLDUMP是MYSQL提供的一个非常有用的数据库备份工具.mysqldump命令执行时将数据库备份成一个文本文件, 该文件中实际上包含了多个 ...
随机推荐
- Hibernate之深入Hibernate的配置文件
1.创建Configuration类的对象 Configuration类的对象代表了应用程序到SQL数据库的映射配置.Configuration类的实例对象,提供一个buildSessionFacto ...
- 2017 国庆湖南 Day6
期望得分:100+100+60=260 实际得分:100+85+0=185 二分最后一条相交线段的位置 #include<cstdio> #include<iostream> ...
- UVA 10622 Perfect P-th Powers
https://vjudge.net/problem/UVA-10622 将n分解质因数,指数的gcd就是答案 如果n是负数,将答案除2至奇数 原理:(a*b)^p=a^p*b^p #include& ...
- mui 页面无法下滑拖拽 主要体现在华为手机浏览器
项目做到中期遇到一个问题,华为手机有些页面显示不全且无法下滑. 因为之前一直用的Google浏览器的模拟模式进行开发和调试的,一直未发现这个问题. 刚开始 选用mui的下拉刷新上拉加载的方式来进行页面 ...
- JAVA_SE基础——14.循环结构语句
建议有些基础的同学阅读,0基础可能会有些困难(最好看正文配合基础课本的例子) 所谓循环语句主要就是在满足条件的情况下反复执行某一个操作.Java提供了3种常用的循环语句,分别为for循环语句.whil ...
- CSS基础:块级元素与盒模型
简介 在 HTML4.01 中,元素通常可以分为块级元素( “Block-level element” ) 和内联元素 ( "Inline-level element" ) 两大类 ...
- jQuery兼容浏览器IE8方法
在维护公司网站的时候,发现在IE8下jquery会报对象不支持此属性或方法.缺少对象的错误: 在其他浏览器就可以正常运行,当前使用的jquery版本是3.1.1,查资料发现jquery从2.0开始不 ...
- RESTful API 编写指南
基于一些不错的RESTful开发组件,可以快速的开发出不错的RESTful API,但如果不了解开发规范的.健壮的RESTful API的基本面,即便优秀的RESTful开发组件摆在面前,也无法很好的 ...
- 基于dns搭建eureka集群
eureka集群方案: 1.通常我们部署的eureka节点多于两个,根据实际需求,只需要将相邻节点进行相互注册(eureka节点形成环状),就达到了高可用性集群,任何一个eureka节点挂掉不会受到影 ...
- 无用代码清除tip
测试提了个bug过来,说是有个ajax请求报404了. 我一看,后台代码被人删了,问了同事,因为实现机制变了,是应该删,但删多了. 把service和controller都恢复后,一个接口中除了我那个 ...