mysql数据备份

mysql数据备份

逻辑备份:备份时,备份的是建表,建库,插入操作的SQL语句。适用于中小数据库,效率低。
mysqldump
mydumper
物理备份:直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,恢复的时候mysql版本相同。
xtrabackup
inbackup
lvm snapshot

1. lvm快照备份
两个条件:1,数据库目录挂载在逻辑卷上
2,数据卷和备份卷在同一卷组

mysql数据备份_第1张图片
mysql数据备份_第2张图片
mysql数据备份_第3张图片
注:加锁的终端一定要保证会话连接,不然锁会释放。

数据库还原过程:
停止数据库
清理环境
导入备份数据库
启动数据库
binlog恢复

清除备份库中的数据
rm -rf /var/lib/mysql/*
在这里插入图片描述
mysql数据备份_第4张图片
2,xtrabackup物理备份
官网下载备份工具:yum 或者下载安装包。

安装源
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-xtrabackup-80
  1. 案例一 :完全备份

    完全备份流程
    [root@shuaiaoli ~]# mkdir /xtrabackup/full -p
    [root@shuaiaoli ~]# innobackupex --user=root --password='123456' /xtrabackup/full
    完全备份流程恢复流程
    停止数据库
    清理环境
    重演回滚--恢复数据
    修改数据
    启动数据库
    
    [root@shuaiaoli full]# systemctl stop mysqld
    rm -rf /data/mysql/*
    [root@shuaiaoli full]# innobackupex --apply-log /xtrabackup/full/2019-08-01_05-10-17/
    [root@shuaiaoli full]# innobackupex --copy-back /xtrabackup/full/2019-08-01_05-10-17/
    [root@shuaiaoli full]# chown -R mysql.mysql /data/mysql/
    [root@shuaiaoli full]# systemctl start mysqld
    
  2. 案例二:增量备份

mysql数据备份_第5张图片
注:增量每次都是基于上一次备份
mysql数据备份_第6张图片
mysql数据备份_第7张图片

  1. 案例三:差异备份

mysql数据备份_第8张图片
注:增量每一次都是基于完全备份
mysql数据备份_第9张图片

查看binlog位置及文件
mysql> show master status\G
*************************** 1. row ***************************
             File: slave2.000002
         Position: 120
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

3.mysqldump逻辑备份
mysql数据备份_第10张图片

mysql数据备份_第11张图片
mysql数据备份_第12张图片
注:恢复binlog时候,先暂停binlog的写入,然后恢复日志
mysql数据备份_第13张图片
或者在备份的SQL语句中添加一个set sql_log_bin=0

使用binlog进行完全恢复
在这里插入图片描述

你可能感兴趣的:(linux运维,mysql基础)