innobackupex 还原和备份实例
InnoDB 和非 InnoDB 文件的备份都是通过拷贝文件来做的,但是实现的方式不同,前者是以page为粒度做的(xtrabackup),后者是 cp 或者 tar 命令(innobackupex),xtrabackup 在读取每个page时会校验 checksum 值,保证数据块是一致的,而 innobackupex 在 cp MyISAM 文件时已经做了flush(FLUSH TABLES WITH READ LOCK),磁盘上的文件也是完整的,所以最终备份集里的数据文件都是写入完整的。
当重新修改了MySQL的数据目录时:
重启报错:
Starting MySQL.The server quit without updating PID file (/[FAILED]l/mysql/data/ben.com.pid).
执行下列命令可以恢复:
1,chown -R mysql:mysql /usr/local/mysql/data
2,kill掉其他没有关闭的MySQL进程
innobackupex 如果没有--host=127.0.0.1 参数,就会报错
备份:
-- 备份全库
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --parallel=4 /home/backup/ -- 增量全库
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --parallel=4 --host=127.0.0.1
--incremental-basedir=/home/backup/2017-03-07_14-27-24 --incremental /home/backup/ --流备份(tar压缩备份文件)
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --parallel=4 --stream=tar /home/backup/ | gzip /home/backup/`date +%F_%H-%M-%S`.tar.gz --解压到指定目录 -C是大写 dd是目录,要保证有这个目录,不然会报错
tar -xvzf 2017-03-08_16-32-43.tar.gz -C /home/backup/dd
-- 建立软链接
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
--流压缩xbstream备份 (全部)
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --parallel=4 --stream=xbstream --compress --extra-lsndir=/home/backup >/home/backup/bak_compress.xbstream --流压缩xbstream备份(增量)
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --parallel=4 ---compress --incremental --extra-lsndir=/home/backup --incremental-basedir=/home/backup \>
--stream=xbstream >/home/backup/bak_compress_inc.xbstream
可以加快恢复的速度。
xtrabackup把备份过程中可能有尚未提交的事务或已经提交但未同步数据文件的事务,写到xtrabackup_logfile文件,所以要先通过这个日志文件回滚,把未完成的事务同步到备份文件,保证数据文件处于一致性。
[root@localhost 2017-07-29_12-34-51]# pwd
/opt/xtrabackup/2017-07-29_12-34-51
[root@localhost 2017-07-29_12-34-51]#innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /opt/xtrabackup_full/2017-07-29_12-34-51 --use-memory=4G --user=root --password=123456
如果执行正确,其最后输出的几行信息通常如下:
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
xtrabackup: This target seems to be not prepared yet.
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 20125736
170729 13:30:29 completed OK!
成功后,备份可以被用来还原数据库了
看到redo log已经出现。xtrabackup_开头的几个文件记录了一些日志偏移量的信息和日志名和时间等信息。在xtrabackup_checkpoints中记录了备份的模式:
backup_type = full-backuped。
xtrabackup_binlog_info:记录当前最新的LOG Position
xtrabackup_binlog_pos_innodb:innodb log postion
xtrabackup_checkpoints: 存放备份的起始位置beginlsn和结束位置endlsn,增量备份需要这个lsn[增量备份可以在这里面看from和to两个值的变化
xtrabackup_info:备份的一些具体信息日志
还原:
使用选项--apply-log:该选项将应用事务日志到数据文件,要回滚的事务回滚,提交的提交,进行数据的同步,还没开始恢复数据,是恢复前的准备工作 --全备份目录
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --apply-log --redo-only
/home/backup/2017-03-07_14-27-24 --全备份目录
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --host=127.0.0.1 --apply-log --redo-only
/home/backup/2017-03-07_14-27-24 --incremental-dir=/home/backup/2017-03-07_14-35-56
增量备份的prepare有点复杂,如果对base backup执行事务一致性恢复,则其不能再用于增量备份恢复,为此须指定—redo-only选项;
innobackupex --apply-log --redo-only BASE-DIR
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2
当合并完所有的增量备份后,开始回滚所有未提交的事务
innobackupex --apply-log BASE-DIR
innobackupex 还原和备份实例的更多相关文章
- Innobackupex(xtrabackup)物理备份
1. Percona XtraBackup介绍 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个完全开源的用于 MySQL 数据库物理热备的备份工具,在备份过程中不 ...
- (4.16)mysql备份还原——物理备份之XtraBackup实践
关键词:XtraBackup实践,物理备份,xtrabackup备份,innobackupex备份 [1]如何使用? [3]系列:innobackupex --help |more [4]系列:xtr ...
- DB2还原数据库备份
用命令还原数据库备份 1.建立一个新的数据库db2 create db 数据库名 on 路径 using codeset GBK territory zh_CN 2.将需要恢复的数据库恢复得到这个新的 ...
- MySQL innobackupex全量备份恢复
转自 http://blog.itpub.net/27099995/viewspace-1295099/ 先简单介绍一下这个工具:innobackupexinnobackupex比xtarbackup ...
- sqlserver2008r2还原完整备份和差异备份及自动删除过期备份
本文主要内容: 还原完整和差异备份 删除超过1个月的备份 注:保证SQL Server代理服务启动,并把服务设置为自动启动 完整备份和差异备份还原原理: 差异备份是完整备份的补充,只备份上次完整备份后 ...
- oracle数据库还原以及备份 包括快速备份(并发压缩)
expdp jhpt/XXXX directory=databackup dumpfile=dpfile_201512091300_%U.dmp filesize=5G parallel=8 comp ...
- SQL server 2005数据库的还原与备份
一.SQL数据库的备份: 1.依次打开 开始菜单 → 程序 → Microsoft SQL Server 2005→SQL Server Management Studio ,这里我以UMVTEST命 ...
- (4.3)mysql备份还原——mysql备份策略
(4.3)mysql备份还原——mysql备份策略 1.指定备份策略时需要考虑的点 [1.1]备份周期:2次备份间隔时长 [1.2]备份方式:在备份周期中,使用什么备份方式.备份模式 [1.3]实现方 ...
- sqlserver还原差异备份
因为之前遇到还原差异备份,最开始遇到SQLServer报错:"无法还原日志备份或差异备份,因为没有文件可用于前滚".查阅很多资料后,终于得到解决.收集整理成这篇随笔. 问题原因:出 ...
随机推荐
- R基本介绍
一.基本介绍:1. 警告:在输入命令前请切换到英文模式.否则你的一大段代码可能因为一个中文状态的括号而报错,R语言的报错并不智能无法指出错误的具体位置.最可怕的是不报错但就是无法输出正确结果.2. 警 ...
- 重载 CreateParams 方法[1]: 从一个例子开始(取消窗口最大化、最小化按钮的三种方法)
方法1: 使用 TForm 的 BorderIcons 属性 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, C ...
- html5简单拖拽实现自动左右贴边+幸运大转盘
此篇文章主要实现两个功能: 1.点击屏幕下方签到悬浮按钮: 2.弹出幸运大转盘,转盘抽奖签到 效果如图: 在网上找了很多移动端拖拽的js实现方式,大部分都是这一种,html5的touch事件,但是 ...
- Linux select 机制深入分析
Linux select 机制深入分析 作为IO复用的实现方式.select是提高了抽象和batch处理的级别,不是传统方式那样堵塞在真正IO读写的系统调用上.而是堵塞在sele ...
- 服务端用例设计的思(tao)路!
服务端的测试简单来说就是除了前端以外的的测试. 总的来说可以分为以下两类: 1. WEB或者APP的提供业务逻辑的服务端接口测试 2. 数据库.缓存系统.中间件..jar包依赖.输入输 ...
- thinkphp nginx+phpcgj安装配置
环境:mysql-5.6.26 nginx-1.9.4.tar.gz php-5.6.13 程序框架ThinkPHP 客户要求必须使用nginx + php 1.首先安装n ...
- vue2.0+element-ui(01简单点的单页面)
前言: 在<Vue.js权威指南>刚出版的时候,自己就作为一名前端粉捧了一把场,可是真是应了那句“出来混,总是要还的“这句话了,那时候信心满满的买来书想要认真研究,最终却还是把它搁浅了.直 ...
- iOS 自动布局 Autolayout 优先级的使用
一.约束的优先级 0.屏幕适配 发展历程 代码计算frame -> autoreszing(父控件和子控件的关系) -> autolayout(任何控件都可以产生关系) -> siz ...
- 在Win64系统上动态加载无签名驱动:WIN64LUD
1.WIN64LUD的全称是WIN64 Load Unsigned Driver,功能如其名,在WIN64系统上加载无签名的驱动. 2.支持Windows 7/8/8.1/2008R2/2012/20 ...
- LeetCode——Implement Stack using Queues
Description: Implement the following operations of a stack using queues. push(x) -- Push element x o ...