lvm快照备份mysql
快照备份原理(从其他博客看的):
原理:通过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相关推荐
- ubuntu lvm mysql vg_使用LVM快照做mysql完全备份和lvm的扩容
在规划mysql数据库时最好将数据和日志分开放到lvm分区中.使用LVM快照备份,需要将数据放在lvm分区. 试验中因mysql数据不是放在lvm分区,所以先将数据移到lvm分区.1.把原来存放在普通 ...
- mysql 高效备份_Mysql高性能备份方案解决数据不间断访问(LVM快照方式备份)
Mysql高性能备份方案解决数据不间断访问(LVM快照方式备份) mysql LVM快照备份特点: 1.在大多数情况下,这种方式几乎算得上是热备.它无需关闭服务,只需要设置只读或者类似这样的限制. 2 ...
- MySQL(InnoDB剖析):51---备份与恢复之(快照备份(lvcreate、lvdisplay))
一.快照备份概述 MySQL数据库本身并不支持快照功能,因此快照备份是指通过文件系统支持的快照功能对数据库进行备份.备份的前提是将所有数据库文件放在同一文件分区中,然后对该分区进行快照操作 支持快照功 ...
- mysql5.7数据库快照_lvm快照备份数据库(Mysql5.7)
备份的目的 能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方. 备份的分类 以操作过程中服务的可用性分: 冷备份:cold backup mysql服务关闭,mysq ...
- Linux九阴真经之九阴白骨爪残卷13(LVM的备份还原,恢复最新状态)
一.备份策略 1.备份的类型 类型1: 热备份:读写不受影响(MyISAM不支持热备,InnoDB支持热备) 温备份:仅可以执行读操作 冷备份:离线备份,读写操作均中止 类型2: 物理备份:复制数据文 ...
- 逻辑卷备份mysql脚本_对MySQL进行逻辑卷备份与恢复
ZRM 我之前我介绍过,这里就不多少了. 以下是关于用mysql-zrm 来测试 基于LVM 逻辑卷管理的数据库全库备份. 我这里用的是SUN 的VBOX 虚拟机来做的测试,基于Red Hat AS ...
- lvm-snapshot:基于LVM快照的备份
续 lvm-snapshot:基于LVM快照的备份之准备工作 Attention,Please! 重头戏开始啦 3.基于LVM快照的备份 lvm-snapshot:基于LVM快照的备份 (1)事务日志 ...
- mysql 数据库快照迁移_快照方式备份mysql 数据库
关闭mysql服务 # service mysqld stop 一.创建逻辑卷 依照如下连接的文档创建一个逻辑卷 要求:物理卷20G;卷组名为vg0;逻辑卷2G,逻辑卷名为mydata 创建逻辑卷挂载 ...
- 快照方式备份mysql 数据库
关闭mysql服务 # service mysqld stop 一.创建逻辑卷 依照如下连接的文档创建一个逻辑卷 http://www.178-go.com/archives/43 要求:物理卷20G ...
最新文章
- 「AI大牛」陶大程出任京东探索研究院院长!曾连续6年入选全球高被引科学家...
- 在 64 位版本的 Windows 上,如何在 32 位版本的 ASP.NET 1.1 和 64 位版本的 ASP.NET 2.0 之间切换...
- 的it生活_在日本生活了10年的IT女,聊聊回国工作的亲身经历
- 转软件开发过程中的各种文档
- centos7 zookeeper3.5.6单点部署
- 【CentOS 7笔记5】,主机互相登陆#
- 力扣1037.有效的回旋镖
- Vue学习之从入门到神经(两万字收藏篇)
- 【代码优化】使用enum代替int常量
- 【java】io流之字符输出流:java.io.Writer类及子类的子类java.io.FileWriter
- 6轴并联机器人示教器
- 基于Vue的仿小米商城
- 【邮件处理】邮件eml文件解析
- 巅峰对决!2020人工智能创新创业大赛总决赛评委阵容、项目亮点震撼揭晓
- python修改快捷键_Pycharm快捷键设置 更换或者增添快捷键 设置字体放大缩小快捷键...
- java工单管理系统_企业工单管理系统--使用mybatis
- easyExcel下载或导出
- 阿里云服务器ECS适用于哪些场景?
- xshell设置简体中文界面
- python find() 和 index() 方法
热门文章
- 解决Ionic的ion-slide-box 2条数据渲染问题
- 主从复制1062错误解决方法
- DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法
- 解决虚拟机在能ping通网关情况下出现From 192.168.1.10: icmp_seq=1 Redirect Network(New nexthop: 192.168.1.1)问题
- 遇到local variable ‘e‘ referenced before assignment这样的问题应该如何解决
- 关于博客园开放API的授权问题解决
- Visual Studio 2010 - 推荐的扩展[关闭]
- ros之旋转加平移公式
- android dao设计模式,DAO设计模式
- 金字塔c_C/C++编程笔记:C语言入门题之正倒金字塔,正反三角形代码详解