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报错:"无法还原日志备份或差异备份,因为没有文件可用于前滚".查阅很多资料后,终于得到解决.收集整理成这篇随笔. 问题原因:出 ...
随机推荐
- Windows下配置Apache+PHP跑Wordpress拾遗
首先,我很少这么做,因为一旦有跑WAMP的需求,我就直接下一个wamp的安装包就可以了,市面上数不胜数,我一直用的是EasyPHP,不是说它有多好,而是很多年前第一次用后没什么问题,就一直用下来了.这 ...
- window用Xmanager4.0的Xstart连接linux远程桌面
安装包: xorg-x11-xauth xterm.x86_64 0:253-1.el6 Execute command path:/usr/bin/xterm Xstart连接Linux远程桌面有一 ...
- 关于android 调用网页隐藏地址栏
首先创建项目,在main.xml里 添加好WebView控件R.id为webview1. HelloWebView.java 代码 package liu.ming.com; import andro ...
- Ocx控件注册不成功?可能是tlb文件导致~
Ocx文件是最常用的文件,实际操作中常常需要注册之~ 但是问题来了,经常会出现注册不成功的问题: 解决方法: 1.以“管理员身份”注册 2.Dependency Walker查看依赖是否缺失 3.查看 ...
- VC++ ToolTip的简单使用
1.在基于对话框的MFC应用程序中使用Tooltip,首先在Dlg类的头文件中定义一个变量: CToolTipCtrl m_iToolTips; 2.在Dlg类的OnInitDialog中添加代码: ...
- .NETFramework、C#、VisualStudio 这三者之间关系,你了解吗!
.NetFrameWork 是微软开发的以"虚拟机"运行,以通用语言运行库为基础,在其上面进行各种语言开发的一个开发平台. C# 是一个和平台更好交互,以托管在虚拟机上的一个语法糖 ...
- HTML&CSS精选笔记_CSS入门
CSS入门 CSS核心基础 CSS样式规则 选择器{属性1:属性值1; 属性2:属性值2; 属性3:属性值3;} CSS代码结构中的特点 CSS样式中的选择器严格区分大小写,属性和值不区分大小写,按照 ...
- linux命令之scp
两个主机之间copy数据经常用到命令 1.copy文件命令 scp /home/test/1.mp3 root@192.168.1.20:/home/test/music 2.copy文件目录命令 s ...
- DEMO6:坐标添加文字标签的JavaScript插件
Google地图API MarkerWithLabel Example http://google-maps-utility-library-v3.googlecode.com/svn/tags/ ...
- docker run 详解
docker run 用于把镜像启动为容器,语法如下: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 常见用法: [root@localhost ~]$ ...