Mysql备份恢复

MySQL备份的类型

按照备份时对数据库的影响范围分为
1、Hot backup(热备) Cold Backup(冷备)Warm Backup(温备)
Hot backup:指在数据库运行中直接备份,对正在运行的数据库没有任何影响。(Online Backup)官方手册为在线备份
2、Cold Backup:指在数据库停止的情况下进行备份(OfflineBackup) 官方手册称为离线备份
3、Warm Backup:备份同样在数据库运行时进行,但是会对当前数据库的操作有所影响,例如加一个全局读锁以保证备份数据的一致性
按照备份后文件内容
1、逻辑备份
指备份后的文件内容是可读的,通常为文本文件,内容一般是SQL语句,或者是表内的实际数据,如mysqldump和SELECT * INTO OUTFILE的方法,一般适用于数据库的升级和迁移,恢复时间较长
2、裸文件备份
拷贝数据库的物理文件,数据库既可以处于运行状态(mysqlhotcopy 、ibbackup、xtrabackup这类工具),也可以处于停止状态,恢复时间较短。

按照备份数据库的内容来分,又可以分为

1、完全备份:对数据库完整的备份
2、差异备份:在上一次完全备份基础上,对更新的数据进行备份(xtrabackup)
3、增量备份:在上次备份的基础上,对更新的数据进行备份
4、日志备份:二进制日志备份,主从复制

安装xtrbackup 工具

1,上传压缩包,解压编译安装
tar -xf Percona-XtraBackup-2.4.14-ref675d4-el7-x86_64-bundle.tar
配置好yum仓库
安装依赖包rpm -ivh libev-4.03-3.el6.x86_64.rpm
yum install -y percona-xtrabackup-24-2.4.14-1.el7.x86_64.rpm

2.使用innobackupex创建完整备份

mkdir /mingliang #创建目录
innobackupex --user=root /mingliang/ --socket=/usr/local/mysql/mysql.sock #创建完整备份
3,删除数据,还原备份
/etc/init.d/mysqld stop #停止mysql
rm -rf /data/mysql/data/ #模拟故障,删除
innobackupex --copy-back /mingliang/2020-02-06_23-47-43/ #还原
4,查看权限,修改权限,启动mysql
在这里插入图片描述

5,创建增量备份

在上面完整备份基础上做,先插入一些数据
innobackupex --user=root --incremental /asd --incremental-basedir=/mingliang/2020-02-06_23-58-09/ --socket=/usr/local/mysql/mysql.sock #创建增量备份
6,查看LSN日志序列号
在这里插入图片描述
7.还原备份
systemctl stop mysqld ##停止mysql
rm -rf /data/mysql/data/ ##删除配置文件
innobackupex --apply-log --redo-only /mingliang/2020-02-06_23-58-09/
innobackupex --apply-log /mingliang/2020-02-06_23-58-09 --incremental-dir=/asd/2020-02-07_00-51-33/ ##合并备份
innobackupex --copy-back /mingliang/2020-02-06_23-58-09/ ##恢复数据
8.恢复mysql权限,启动mysql
在这里插入图片描述
9,查看测试

在这里插入图片描述
做到这里就结束了,做到不是很好请谅解,如果有什么问题请小伙伴们留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章