lvm-差异备份

LVM 快照备份流程(差异):

首先进行一次物理完全备份
[root@mysql-21 /test]# ./full-backup.sh
对/data/mysql的完全备份开始…
锁定表…
解锁表…
备份完成时1秒

LVM快照: 锁表时间接近热备

  1. 加全局读锁
    mysql> flush tables with read lock;

2.创建快照,刷新二进制日志
3. 释放锁
4. 挂载 快照设备 ,并从快照设备中,对数据库文件进行打包与 压缩
5、卸载快照设备
6、 移除快照设备
当前数据为2074
产生了一份新的 二进制日志。
此时,手动插入 几条数据,修改几条数据 ======》 体现最新的 二进制日志中。!
插入20条数据

模拟崩溃:

停止服务,删除 数据库所有文件
[root@mysql-21 /test]# /usr/local/mysql57/support-files/mysql.server stop
[root@mysql-21 /test]# rm -rf /data/mysql

    ( 提醒:想清楚自己的二进制日志在哪?? )
    要求,恢复所有数据,包括 刚才 新增 和 修改了的 数据。
    我的二进制文件放在
    [root@mysql-21 /test]# cd /bin-log/mysql-bin.          二进制文件
    mysql-bin.000001  mysql-bin.000004  mysql-bin.000007  mysql-bin.index
    mysql-bin.000002  mysql-bin.000005  mysql-bin.000008  
    mysql-bin.000003  mysql-bin.000006  mysql-bin.000009  
    
    
    查看最后一次备份后二进制
    [root@mysql-21 ~]# vim /root/mysql-bak.log 
    ===[完全备份]2019年 04月 16日 星期二 21:15:09 CST==========
    /bin-log/mysql-bin.000008

    
    
    [root@mysql-21 /backup]# ls
     mysql2019-04-16-21-42-18-full.tar.gz           #完全备份文件
     mysql-2019-04-16-21-44-09.tar.gz              #l执行脚本后的lvm差异备份文件

恢复流程:

1、恢复最近的一次 完全备份, mysql2019-04-16-21-42-18-full.tar.gz
在/data 下解压。
[root@mysql-21 /data]# tar -xf mysql2019-04-16-21-42-18-full.tar.gz
2、将最近的一份二进制日志 进行导出
mysqlbinlog /data/mysql-binlog/mysql.000025 > /tmp/a.sql

    3、启动mysql服务(产生一份新的二进制日志 ),登录mysql   
    [root@mysql-21 /test]# /usr/local/mysql57/support-files/mysql.server start
    [root@mysql-21 ~]# mysql        
    
         ### 此时数据库没有完全恢复完成,此时应该还是禁止 数据 写入到数据库
         ### 临时  阻断  3306 的连接。             
         iptables -t filter -A INPUT -p tcp --dport 3306 ! -s 192.168.217.21 -j REJECT
    4、设置 临时 停止记录 二进制 日志。 
     mysql> set session sql_log_bin=0; 
     
    5、将二进制文件导入数据库中
    mysql> source /tmp/a.sql;
    
    6、  重新开启二进制日志功能
    mysql> set session sql_log_bin=1;   
    
    至此,恢复完成!  用  select 语句 进行 查询验证,看数据是否恢复 。
    mysql> select * from class.students;
    
    数据全部找回,恭喜你,你又上了一层楼。

========================================

LVM + 二进制日志 实现 差异备份 + Cron: =========================

二进制日志 与 数据库 分开存放。 数据库 /mysql 二进制日志 /data/mysql-binlog/

完全备份脚本(每周日 ) :=========================

[root@mysql-21 /test]# cat mysql-lvm.sh
#!/bin/bash
#需求:lvm完全备份
a_log="/root/mysql-bak.log"
a_dir=/backup
data_dir=/data/mysql
data_name=echo echo $data_dir | awk -F "/" '{print $NF}'
tmp_dir="/tmp-mysql"
echo “=[完全备份]date===================”>> $a_log
tail -1 /bin-log/mysql-bin.index >> $a_log

echo “对$data_dir的完全备份开始…”
time1=date +%s
cp /etc/my.cnf $a_dir/my-date +%F-%H-%M-%S.cnf

mkdir -p t m p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值