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

[经验分享] Mysql-Xtrabackup备份与恢复

[复制链接]

尚未签到

发表于 2018-10-7 10:02:54 | 显示全部楼层 |阅读模式
  Mysql-Xtrabackup备份与恢复
  ★简介:
  Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一款开源的能够对innodb和xtradb数据库进行热备的工具。
  ★特点:
  · 物理备份,备份过程快速、可靠;
  · 备份过程不会打断正在执行的事务;
  · 能够基于压缩等功能节约磁盘空间和流量;
  · 自动实现备份验;
  · 还原速度快;
  ★支持的存储引擎功能:
  · MyISAM:温备,不支持增量备份;
  · InnoDB:热备,增量;
  zxb    IP:10.0.0.128
  zxb2  IP:10.0.0.129
  操作:
  两台机下载xtrbackup,并安装;
[root@zxb ~]# wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.8/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm  
[root@zxb ~]# yum install -y percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm
  开启二进制日志(备份机器);
[root@zxb ~]# cat /etc/my.cnf  
[mysqld]
  
log-bin=/etc/mysql/mysql-bin
  
  一、全量备份:
  1.首先在zxb创建备份目录,给权限;
[root@zxb ~]# mkdir  -p /data/backup/  
[root@zxb ~]# chown -R mysql:mysql /data/backup
  2.创建数据库;
MariaDB [(none)]> create database allbackup;  
Query OK, 1 row affected (0.00 sec)
  
MariaDB [(none)]> show databases;
  
+--------------------+
  
| Database           |
  
+--------------------+
  
| information_schema |
  
|
  
allbackup
  
        |
  
| mysql              |
  
| performance_schema |
  
| zabbix             |
  
+--------------------+
  
5 rows in set (0.00 sec)
  3.导入数据库数据
[root@zxb ~]# innobackupex -uroot -p0 /data/backup  
。。。
  
171108 17:22:40 completed OK!
  
[root@zxb ~]# cd /data/backup/2017-11-08_20-41-09/
  
[root@zxb 2017-11-08_20-41-09]# cat xtrabackup_binlog_info
  
mysql-bin.000007    1216
  4.拷贝数据到对端目录,首先创建目录;
[root@zxb2 ~]# mkdir  /backup_data/  
[root@zxb2 ~]# chown -R mysql:mysql /backup_data/
  
[root@zxb 2017-11-08_20-41-09]# scp -r * zxb2:/backup_data/
  5.准备一个数据,保证数据没有提交或则回滚的事物;
[root@zxb2 ~]# innobackupex --apply-log /backup_data/  
''''
  
171108 20:53:40 completed OK
  ##--apply-log:回滚日志
  一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备 份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准 备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至 数据文件也使得数据文件处于一致性状态。
  6.暂停mysql服务器,修改/etc/my.cnf,直接恢复后启动服务;
[root@zxb2 ~]# systemctl stop mariadb  
[root@zxb2 ~]# cat /etc/my.cnf
  
[mysqld]
  
datadir=/backup_data
  
[root@zxb2 ~]# innobackupex --copy-back /backup_data/
  
171108 20:56:42 innobackupex: Starting the copy-back operationIMPORTANT: Please check that the copy-back run completes successfully.
  
           At the end of a successful copy-back run innobackupex
  
           prints "completed OK!".innobackupex version 2.4.8 based on MySQL server 5.7.13 Linux (x86_64) (revision id: 97330f7)
  
Original data directory /backup_data is not empty!
  
[root@zxb2 ~]# systemctl start mariadb
  7.查看数据是否同步;
MariaDB [(none)]> show databases;  
+--------------------+
  
| Database           |
  
+--------------------+
  
| information_schema |
  
|
  
allbackup
  
        |
  
| mysql              |
  
| performance_schema |
  
| zabbix             |
  
+--------------------+
  
5 rows in set (0.00 sec)
  二、增量备份:
  1.操作命令:
  第一次增量备份;
  innobackupex --incremental /zl1(增量备份目录1) --innobackupex-basedir=BASEDIR(全备目录)
  第二次增量备份;
  innobackupex --incremental /zl2(增量备份目录2) --innobackupex-basedir=zl1(增量备份目录1)
  第一次增量备份:
  创建两个增量目录;
[root@zxb ~]# mkdir /data/backup_zl1  
[root@zxb ~]# mkdir /data/backup_zl2
  2.进入数据库,增加数据;
MariaDB [(none)]> use allbackup;  
Database changed
  
MariaDB [allbackup]> select * from increment;
  
+------+-------+
  
| id   | name  |
  
+------+-------+
  
|    1 | test  |
  3.开始增量备份;
[root@zxb ~]# innobackupex -uroot -p0 --incremental /data/backup_zl1 --incremental-  
basedir=/data/backup/2017-11-08_21-08-56/
  
。。。
  
171108 21:14:00 completed OK!
  4.拷贝数据到对端目录,首先创建目录;
[root@zxb2 ~]# mkdir /zl1  
[root@zxb2 ~]# mkdir /zl2
  
[root@zxb2 ~]# chown -R mysql:mysql /zl1
  
[root@zxb2 ~]# chown -R mysql:mysql /zl2
  
[root@zxb ~]# scp -r /data/backup_zl1/* zxb2:/zl1/
  5.停止服务,首先恢复完整数据,再合并第一个增量到完全备份里面;
  ##--redo-only:回滚合并
[root@zxb2 ~]# systemctl stop mariadb  
[root@zxb2 ~]# innobackupex --apply-log  --redo-only /backup_data/
  
[root@zxb2 ~]# innobackupex -uroot -p0 --apply-log --redo-only /backup_data/
  
--incremental-dir=/zl1/backup_zl1/2017-11-08_22-30-37/
  6.在全备目录下恢复;
[root@zxb2 ~]# innobackupex -uroot -p0 --copy-backup /backup_data/  7.启动服务,查看数据;
[root@zxb2 ~]# systemctl start mariad  
MariaDB [(none)]> use allbackup;
  
Database changed
  
MariaDB [allbackup]> select * from increment;
  
+------+-------+
  
| id   | name  |
  
+------+-------+
  
|    1 | test  |
  第二次增量备份:
  1.进入数据库,增加数据;
MariaDB [(none)]> use allbackup;  
Database changed
  
MariaDB [allbackup]> select * from increment;
  
+------+-------+
  
| id   | name  |
  
+------+-------+
  
|    1 | test  |
  
|    2 | test2 |
  2.开始增量备份;
[root@zxb ~]#  innobackupex -uroot -p0 --incremental /data/backup_zl2 --incremental-  
basedir=/data/backup_zl1/2017-11-08_22-30-37/
  3.拷贝数据到对端目录;
[root@zxb ~]# scp -r /data/backup_zl2/ zxb2:/zl2  4.停止服务,首先恢复完整数据,再合并第二个增量到完全备份里面;
[root@zxb2 ~]#  innobackupex --apply-log  --redo-only /backup_data  
[root@zxb2 ~]# innobackupex -uroot -p0 --apply-log --redo-only /backup_data/
  
--incremental-dir=/zl2/backup_zl2/2017-11-08_23-07-21/
  5.在全备目录下恢复;
[root@zxb2 ~]# innobackupex -uroot -p0 --copy-backup /backup_data/  6.启动服务,查看数据;
MariaDB [allbackup]> select * from increment;  
+------+-------+
  
| id   | name  |
  
+------+-------+
  
|    1 | test  |
  
|    2 | test2 |
  总结:经常会遇到mysql启动不了,通常是由于权限问题,或者配置文件配置问题;



运维网声明 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-614214-1-1.html 上篇帖子: mysql优化和索引 下篇帖子: mysql 5.7 二进制安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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