innobackupex不停库的数据备份并恢复到别的服务器上【转】
1、innobackupex原理:
备份原理
1)、首先会开启一个后台检测进程,实时检测myql redo的变化,一旦发现redo中有新日志写入,立即将日志记入后台日志文件xtrabackup_log中
2)、复制innodb的数据文件和系统表空间文件ibdata1
3)、执行flush tables with read lock操作(防止数据表发生DDL操作,并且在这一时刻获得binlog的位置),复制.frm、.MYI、.MYD等文件
恢复原理
1)、启动xtrabackup内嵌的innodb实例
2)、回放xtrabackup日志xtrabackup_log
3)、将提交的事务信息变更应用到innodb数据/表空间,同时回滚未提交的事务。
2、操作模拟
操作目的:不停库的情况下将10.200.70.185的数据备份并恢复到10.200.70.183中
操作系统:centos 6.5
innobackupex版本:1.5.1
操作如下
1)、全备(在10.200.70.185上操作)
# cd /home/mysql
# mkdir data
# innobackupex --user=root password=martin --defaults-file=/usr/local/mysql/data/my.cnf -- data/
会在当前路径下的data文件夹下生成当前时间的文件夹
# ls ./data
2016-12-22_21-07-10
2)、数据传输(在10.200.70.185上操作)
# cd /home/mysql/data
# scp -r 2016-12-22_21-07-10 10.200.70.183:/home/mysql/datadir
会将185上的全备数据传输到183的/home/mysql/datadir(如没有改文件夹,scp之前需要在183上新建)
在10.200.70.183上操作
3)、应用日志
# cd /home/mysql/datadir
# innobackupex --apply-log ./2016-12-22_21-07-10/
4)、停库并清空data下的数据
# /etc/init.d/mysql.server stop
# cd /usr/local/mysql/
# mv data data_old
# mkdir data
# cp data_old/my.cnf data/
5)、拷贝文件
# innobackupex --defaults-file=/usr/local/mysql/data/my.cnf --copy-back /home/mysql/datadir/2016-12-22_21-07-10/
6)、启动数据库
先更改属主
# chown -R mysql.mysql /usr/local/mysql
启动
# /etc/init.d/mysql.server start
转自
MySQL常用工具(三):热备工具innobackupex - 今日头条(www.toutiao.com)
http://www.toutiao.com/i6366564434063655425/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?