快照备份原理(从其他博客看的):

原理:通过lvm快照给lvm真身拍个照片,当lvm真身发送改变时,lvm快照把lvm真身改变之前的内容存放在快照上,这样在lvm快照有效的这段时间内,我们看到的lvm快照上的内容始终是lvm真身在创建lvm快照时内容,通过备份lvm快照即可达到在线备份lvm真身的目的。需要注意的是,当lvm快照比lvm真身小时,若lvm真身发生的改变大于lvm快照,则lvm快照将变得无法读取而失效; 若lvm快照大于等于lvm真身,则不会发生前面的情况。
当一个snapshot创建的时候,仅拷贝原始卷里数据的元数据(meta- data)。创建的时候,并不会有数据的物理拷贝,因此snapshot的创建几乎是实时的,当原始卷上有写操作执行时,snapshot跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在改变之前被拷贝到snapshot预留的空间里,因此这个原理的实现叫做写时复制(copy-on- write)。
在写操作写入块之前,CoW将原始数据移动到snapshot空间里,这样就保证了所有的数据在snapshot创建时保持一致。而对于snapshot的读操作,如果是读取数据块是没有修改过的,那么会将读操作直接重定向到原始卷上,如果是要读取已经修改过的块,那么就读取拷贝到snapshot中的块。

lvm快照备份几乎热备:

前提:
        1、数据文件要在逻辑卷上;
        2、此逻辑卷所在卷组必须有足够空间使用快照卷;
        3、数据文件和事务日志要在同一个逻辑卷上;

[root@localhost mydata]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root  4.0G  3.7G  125M  97% /
tmpfs                         935M     0  935M   0% /dev/shm
/dev/sda1                     485M   39M  421M   9% /boot
/dev/mapper/myvg-mylv         886M  151M  691M  18% /mydata           //这是mysql数据库文件和二进制日志文件还有151M可用空间
[root@localhost mydata]#

过程:

  1.给mysql表加锁

mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)

2、通过另一个终端,保存二进制日志文件及相关位置信息;

[root@localhost mydata]# mysql -e 'show master status\G'>/backup/master.info
*************************** 1. row ***************************File: mysql-bin.000030Position: 472Binlog_Do_DB:
Binlog_Ignore_DB:

3、给/mydata创建快照卷,名字为back_test

[root@localhost mydata]# lvcreate -L 30M -s -n back_test /dev/mapper/myvg-mylv Rounding up size to full physical extent 32.00 MiBLogical volume "back_test" created

4、释放锁,插入数据

mysql> insert into student (name) value ('david');
ERROR 1223 (HY000): Can't execute the query because you have a conflicting read lock
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)mysql> insert into student (name) value ('david2');
Query OK, 1 row affected, 1 warning (0.00 sec)mysql> insert into student (name) value ('david3');
Query OK, 1 row affected, 1 warning (0.00 sec)mysql> commit-> ;
Query OK, 0 rows affected (0.05 sec)

5、挂载快照卷,备份,删除快照卷

[root@localhost mydata]# mount -r /dev/myvg/back_test /mnt/
[root@localhost mnt]# cp -rfia ./*  /tmp/ [root@localhost /]# lvremove /dev/myvg/back_test Do you really want to remove active logical volume back_test? [y/n]: y  Logical volume "back_test" successfully removed[root@localhost /]# 

6、增量备份二进制日志,如果有多个事务可以根据472对应的时间点来备份

[root@localhost mydata]# mysqlbinlog --start-position=472 mysql-bin.000030 mysql-bin.000031 >/root/lv_back.sql
  //根据时间点备份多个事务,注意时间格式[root@localhost mydata]# mysqlbinlog --start-time='2015-08-06 17:32:08' mysql-bin.000030 mysql-bin.000031 >/root/lv_back.sql  

7.模拟mysql损坏

[root@localhost /]# rm /mydata/* -rf[root@localhost /]# service mysqld stopMySQL server PID file could not be found!                  [FAILED]

8.恢复

  可以不复制二进制日志,可以把二进制日志删除

[root@localhost mydata]# cp -riaf /tmp/*  /mydata/      //将文件复制到mysql的数据文件位置
chown -R mysql:mysql   /mydata/*                //如果/mydata下的属主不是 mysql权限,需要修改为mysql权限mysql>set sql_log_bin=0                                   //根据情况看是否关闭mysql> \. /root/lv_back.sql                  //还原二进制日志事务

查看热备后执行的事务是否恢复

mysql> select * from student;+----+--------+-----+------+| id | name   | age | Cid  |+----+--------+-----+------+|  1 | sean   |  22 |    6 ||  5 | alice  |   0 | NULL ||  6 | tom    |   0 | NULL ||  7 | david2 |   0 | NULL ||  8 | david3 |   0 | NULL |+----+--------+-----+------+

转载于:https://www.cnblogs.com/kankanhua/p/4709301.html

lvm快照备份mysql相关推荐

  1. ubuntu lvm mysql vg_使用LVM快照做mysql完全备份和lvm的扩容

    在规划mysql数据库时最好将数据和日志分开放到lvm分区中.使用LVM快照备份,需要将数据放在lvm分区. 试验中因mysql数据不是放在lvm分区,所以先将数据移到lvm分区.1.把原来存放在普通 ...

  2. mysql 高效备份_Mysql高性能备份方案解决数据不间断访问(LVM快照方式备份)

    Mysql高性能备份方案解决数据不间断访问(LVM快照方式备份) mysql LVM快照备份特点: 1.在大多数情况下,这种方式几乎算得上是热备.它无需关闭服务,只需要设置只读或者类似这样的限制. 2 ...

  3. MySQL(InnoDB剖析):51---备份与恢复之(快照备份(lvcreate、lvdisplay))

    一.快照备份概述 MySQL数据库本身并不支持快照功能,因此快照备份是指通过文件系统支持的快照功能对数据库进行备份.备份的前提是将所有数据库文件放在同一文件分区中,然后对该分区进行快照操作 支持快照功 ...

  4. mysql5.7数据库快照_lvm快照备份数据库(Mysql5.7)

    备份的目的 能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方. 备份的分类 以操作过程中服务的可用性分: 冷备份:cold backup mysql服务关闭,mysq ...

  5. Linux九阴真经之九阴白骨爪残卷13(LVM的备份还原,恢复最新状态)

    一.备份策略 1.备份的类型 类型1: 热备份:读写不受影响(MyISAM不支持热备,InnoDB支持热备) 温备份:仅可以执行读操作 冷备份:离线备份,读写操作均中止 类型2: 物理备份:复制数据文 ...

  6. 逻辑卷备份mysql脚本_对MySQL进行逻辑卷备份与恢复

    ZRM 我之前我介绍过,这里就不多少了. 以下是关于用mysql-zrm 来测试 基于LVM 逻辑卷管理的数据库全库备份. 我这里用的是SUN 的VBOX 虚拟机来做的测试,基于Red Hat AS ...

  7. lvm-snapshot:基于LVM快照的备份

    续 lvm-snapshot:基于LVM快照的备份之准备工作 Attention,Please! 重头戏开始啦 3.基于LVM快照的备份 lvm-snapshot:基于LVM快照的备份 (1)事务日志 ...

  8. mysql 数据库快照迁移_快照方式备份mysql 数据库

    关闭mysql服务 # service mysqld stop 一.创建逻辑卷 依照如下连接的文档创建一个逻辑卷 要求:物理卷20G;卷组名为vg0;逻辑卷2G,逻辑卷名为mydata 创建逻辑卷挂载 ...

  9. 快照方式备份mysql 数据库

    关闭mysql服务 # service mysqld stop 一.创建逻辑卷 依照如下连接的文档创建一个逻辑卷 http://www.178-go.com/archives/43 要求:物理卷20G ...

最新文章

  1. 「AI大牛」陶大程出任京东探索研究院院长!曾连续6年入选全球高被引科学家...
  2. 在 64 位版本的 Windows 上,如何在 32 位版本的 ASP.NET 1.1 和 64 位版本的 ASP.NET 2.0 之间切换...
  3. 的it生活_在日本生活了10年的IT女,聊聊回国工作的亲身经历
  4. 转软件开发过程中的各种文档
  5. centos7 zookeeper3.5.6单点部署
  6. 【CentOS 7笔记5】,主机互相登陆#
  7. 力扣1037.有效的回旋镖
  8. Vue学习之从入门到神经(两万字收藏篇)
  9. 【代码优化】使用enum代替int常量
  10. 【java】io流之字符输出流:java.io.Writer类及子类的子类java.io.FileWriter
  11. 6轴并联机器人示教器
  12. 基于Vue的仿小米商城
  13. 【邮件处理】邮件eml文件解析
  14. 巅峰对决!2020人工智能创新创业大赛总决赛评委阵容、项目亮点震撼揭晓
  15. python修改快捷键_Pycharm快捷键设置 更换或者增添快捷键 设置字体放大缩小快捷键...
  16. java工单管理系统_企业工单管理系统--使用mybatis
  17. easyExcel下载或导出
  18. 阿里云服务器ECS适用于哪些场景?
  19. xshell设置简体中文界面
  20. python find() 和 index() 方法

热门文章

  1. 解决Ionic的ion-slide-box 2条数据渲染问题
  2. 主从复制1062错误解决方法
  3. DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法
  4. 解决虚拟机在能ping通网关情况下出现From 192.168.1.10: icmp_seq=1 Redirect Network(New nexthop: 192.168.1.1)问题
  5. 遇到local variable ‘e‘ referenced before assignment这样的问题应该如何解决
  6. 关于博客园开放API的授权问题解决
  7. Visual Studio 2010 - 推荐的扩展[关闭]
  8. ros之旋转加平移公式
  9. android dao设计模式,DAO设计模式
  10. 金字塔c_C/C++编程笔记:C语言入门题之正倒金字塔,正反三角形代码详解