设为首页 收藏本站
查看: 629|回复: 0

[经验分享] linux mysql 物理备份-增量备份

[复制链接]

尚未签到

发表于 2018-10-1 15:22:42 | 显示全部楼层 |阅读模式
大家好,我是霸王卸甲,今天给大家带来的是数据库中的物理备份,物理备份又包括增量备份和差异备份,今天要讲的是增量备份!!!!!!!  

  
物理备份 + binlog
  

  准备工作:
  PERCONA  XtraBakuo
  它是开源免费的支持MySQL 数据库热备份的软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份。它不暂停服务创建Innodb热备份;
  为mysql做增量备份;在mysql服务器之间做在线表迁移;使创建replication更加容易;备份mysql而不增加服务器的负载。
  percona是一家老牌的mysql技术咨询公司。它不仅提供mysql的技术支持、培训、咨询,还发布了mysql的分支版本--percona Server。并围绕
  percona Server还发布了一系列的mysql工具。
  官方站点:https://www.percona.com/
  安装:wget http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm   下载yum源
  yum -y install percona-release-0.1-3.noarch.rpm  安装yum源
  yum -y install percona-xtrabackup-24.x86_64  安装percona
  rpm -ql percona-xtrabackup-24  查询安装结果 安装文件
  单一完全备份
  首先准备备份目录
  mkdir /xtrabackup/full -p
  连接数据库,开始备份。
  innobackupex --user=root --password='QianFeng@123' /xtrabackup/full
  请注意备份结果是否完成
  xtrabackup: Transaction log of lsn (74182721) to (74182730) was copied.
  171127 15:04:12 completed OK!
  查看备份目录。数据库,配置文件,日志文件
  ls /xtrabackup/full/
  2018-08-01_00-00-02/
  二进制日志位置
  cat /xtrabackup/full/2017-08-01_00-00-18/xtrabackup_binlog_info
  完全恢复流程
  首先停止数据库
  systemctl stop mysqld
  清理环境(模拟损坏)
  rm -rf /var/lib/mysql/*
  rm -rf /var/log/mysqld.log
  rm -rf /var/log/mysql-slow/slow.log
  生成回滚日志
  innobackupex --apply-log /xtrabackup/full/2018-08-01_00-00-18/
  恢复文件
  innobackupex --copy-back /xtrabackup/full/2018-08-01_00-00-18/
  登陆验证
  ls /var/lib/mysql
  给权限
  chown -R mysql.mysql /var/lib/mysql
  重启
  systemctl start mysqld
  mysql -uroot -p'QianFeng@123'
  增量备份流程
  create database testdb;
  use testdb;
  create table test(id int);
  insert into test values (1);
  select * from test;
  模拟数据
  首先完整备份下周一的
  rm -rf /xtrabackup/*
  自己设置下时间 以免做乱了
  date 09010000
  innobackupex --user=root --password='QianFeng@123' /xtrabackup
  ll /xtrabackup/
  2018-09-01_00-00-04
  数据库中的记录是1条
  备份下周二的
  date 09020000
  mysql -uroot -p'QianFeng@123' -e  'insert into testdb.test values (2)'
  basedir基于周一的备份。
  会生成一个今天的。
  innobackupex --user=root --password='QianFeng@123' --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2017-09-01_00-00-04
  ls  /xtrabackup/
  2018-09-01_00-00-04
  2018-09-02_00-00-58
  备份下周三的
  date 09030000
  mysql -uroot -p'QianFeng@123' -e  'insert into testdb.test values (3)'
  innobackupex --user=root --password='QianFeng@123' --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2017-09-02_00-00-26
  ls  /xtrabackup/
  2018-09-01_00-00-04
  2018-09-02_00-00-58
  2018-09-03_00-00-36
  备份就到此结束
  接下来是:增量恢复流程
  停止数据库
  systemctl stop mysqld
  清理环境  模拟数据丢失
  rm -rf /var/lib/mysql/*
  回滚周一日志
  innobackupex --apply-log --redo-only /xtrabackup/2018-09-01_00-00-04
  回滚周二日志
  innobackupex --apply-log --redo-only /xtrabackup/2018-09-01_00-00-04  --incremental-dir=/xtrabackup/2018-09-02_00-00-26
  开始恢复数据
  innobackupex --copy-back /xtrabackup/2017-09-01_00-00-06
  chown -R mysql.mysql /var/lib/mysql
  systemctl start mysqld
  登陆查询记录。发现是周二的
  想要恢复周三还得在回滚一次日志
  innobackupex --apply-log --redo-only /xtrabackup/2017-09-01_00-00-04  --incremental-dir=/xtrabackup/2018-09-03_00-00-27
  停止数据库
  systemctl stop mysqld
  恢复备份
  innobackupex --copy-back /xtrabackup/2018-09-01_00-00-04
  给下权力
  chown -R mysql.mysql /var/lib/mysql
  systemctl start mysqld
  进入数据库查看数据是否恢复
  mysql -uroot -p'QianFeng@123'



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-607258-1-1.html 上篇帖子: Source Install MySQL5.7.20 下篇帖子: zabbix 安装时的报错mysql_connect(): Access denied for us
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表