初接触Linux,LVM的备份

今天给大家来的得失LVM相关的备份


一、LVM快照写时复制的特性(copy-on-write,COW)

写时复制快照在快照时间点之后,没有物理数据复制发生,仅仅复制了原始数据物理位置的元数据。因此,快照创建非常快,可以瞬间完成。然后,快照副本跟踪原始卷的数据变化(即原始卷写操作),一旦原始卷数据块发生写操作,则先将原始卷数据块读出并写入快照卷,然后用新数据块覆盖原始卷。这样我们访问快照卷上的数据仍旧是写操作前的,可以保证我们备份数据的一致性。它是一个接近于热备的工具

1、逻辑卷快照事实上是一个逻辑卷,仅仅是做为原卷的另外一个访问路径

2、刚刚创建快照卷时,快照卷中是没有任何数据的,所有的数据都指向了原卷中的那个数据块;所以,访问的数据都来自于原卷

3、一旦原卷中的数据需要修改了,某一数据在修改之前,要先把文件复制到快照卷中。所以,以后再通过快照卷访问数据时,都是一部份来自快照卷,一部分来自原卷;修改的数据来自于快照卷,未修改的数据来自于原卷

二、LVM快照的前提

1、事务日志跟数据文件必须在同一个卷上(否则做快照将无法保证时间点的一致)

2、创建快照之前,要请求MySQL的全局锁,在快照创建完之后释放锁

3、请示全局锁之后,做一次日志滚动,方便以后做即时点恢复;做二进制日志文件及位置标记(需手动进行)

三、LVM备份说明

基于LVM做备份,只需要备份数据目录就可以了

说明:

1、数据库的数据目录在/mydata/data下

2、二进制日志文件在/mydata/binlogs下

3、/mydata目录是逻辑卷,/dev/myvg/mydata挂载到了/mydata下

小前提:

1、考虑到数据是动态增长的,所以安装mysql时,将其安装到了逻辑卷中

2、保证物理卷中还有足够的空间来创建一个快照卷

四、LVM备份实现

1、保证有足够的卷组空间来创建快照卷

2、创建一个备份保存目录


1

mkdir /backups

3、请求全局锁,防止创建快照过程中有数据写入;并滚动日志


1

2

MariaDB [(none)]> flush tables with readlock;

MariaDB [(none)]> flush logs;

4、做二进制日志文件及位置标记


1

2

3

4

5

mysql -e ‘show master status‘ > /backups/binlog.pos

cat /backups/binlog.pos

File    Position    Binlog_Do_DB    Binlog_Ignore_DB

mysql-bin.000002    351

5、对原卷创建快照卷(仅仅复制了元数据,因此创建过程非常快)


1

2

3

lvcreate -L 100M -s -n mydata-snap -p r /dev/myvg/mydata

Rounding up size to full physical extent 112.00 MiB

Logical volume "mydata-snap"created

6、释放全局锁


1

MariaDB [(none)]> unlock tables;

7、挂载快照并备份


1

2

3

4

5

mount /dev/myvg/mydata-snap /mnt/ -o ro   //挂载为只读

cd /mnt/                                  //进入挂载目录

ls                                      //可以查看到备份前的数据,这也证明了快照卷本身并不是一个备份,只是访问原卷数据的另一个通道

binlogs  data  lost+found

cp /mnt/data/ /backups/data-20140416 -a  //归档备份

8、备份完成,卸载并删除快照


1

2

3

4

umount /mnt/

lvremove /dev/myvg/mydata-snap      //删除快照,节省空间

Do you really want to remove active logical volume mydata-snap? [y/n]: y

Logical volume "mydata-snap"successfully removed

到这里基于快照的数据库备份就已经完成了

五、LVM的即时点恢复

1、说明

1)要做即时点恢复就必须得有二进制日志

2)模拟:操作失误把数据目录删了

3)这也是为什么要把二进制日志和数据目录分开放的原因,多一份小心,多一份安全

4)保证二进制日志没有被删除

5)恢复数据及做快照后以后的数据

2、步骤

1)新创建一个数据库(在做完快照备份后,又执行了数据操作)

2)删除数据目录

这里模拟时没有删除二进制日志,如果你删的比较彻底,把二进制日志也删了,那可就麻烦大了,就无法做即时点还原了,也只能去找数据恢复公司了。所以,当初装数据库的时候,为了安全考虑,并没有把二进制日志放到数据目录中,而是放到了同一个卷组中的另一个位置:/mydata/binlogs,多一份考虑,多一份安全保证


1

rm -rf /mydata/data/*

3)恢复

上面显示的太吓人了,所以数据都没有了,幸好我们做了备份,下面就恢复数据吧

4)查看数据是否恢复

5)即时点恢复

基于LVM-snapshort的完全备份,现在数据是恢复到了我们做快照那一刻的数据,可是我们之后的操作呢?还是没有,那就只能使用二进制日志做即时点还原了

当初在做快照时,我们保存下来了二进制日志文件及二进制标记,现在就可以派上用场了

进入二进制目录看下我们的二进制日志文件

mysql-bin.000002:是我们创建快照时那一刻的二进制日志文件

mysql-bin.000003:在创建快照前,我们滚动了一下日志,所以快照后的所有操作应该都是记录在这个二进制日志文件中的

mysql-bin.000004:这是我们在第4)步恢复数据时,重启服务生成的新滚动日志

根据上面条件判断,我们在创建完快照后,新建了一个hlbrc数据库,那么这个操作应该是保存在mysql-bin.000003中的


1

mysqlbinlog /mydata/binlogs/mysql-bin.000003

既然知道之后的操作在什么位置了,那就可以使用二进制日志做即时点还原了


1

mysqlbinlog /mydata/binlogs/mysql-bin.000003 | mysql        //直接导出给mysql

再来查看一下,我们的即时点还原是否成功

初接触Linux,LVM的备份,布布扣,bubuko.com

时间: 2024-12-27 14:59:40

初接触Linux,LVM的备份的相关文章

初接触Linux,mysql备份

一.简介 mysqldump是mysql用于转存储数据库的实用程序.它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等 它可以把整个数据库装载到一个单独的文本文件中.这个文件包含有所有重建你的数据库所需要的SQL命令.这个命令取得所有的模式并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建INSERT语句.这个工具将你的数据库中所有的设计倒转.因为所有的东西都被包含到了一个文本文件中.这个文本

初接触Linux,使用Xtrabackuo给Mysql(MariaDB)备份

今天给大家带来的是Xtrabackup给mysql(mariaDB)备份 一.Xtrabackup 1.Xtrabackup介绍 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具 2.Xtrabackup的特点 (1)在线热备整个库的InnoDB.XtraDB表 (2)备份过程不会打断正在执行的事务: (3)在xtra

初接触Linux,LAMP的构架

今天给大家带来的是LAMP的构架 一.LAMP简介 LAMP(Linux- Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构.LAMP具有通用.跨平台.高性能.低价格的 优势,因此LAMP无论是性能.质量还是价格都是企业搭建网站的首选平台. 二.相关说明 1.本篇(LAMP系列

初接触Linux,防火墙的规则和语法

今天给大家带来的是防火墙 一.防火墙 防火墙分为网络防火墙和应用层防火墙 1.网络防火墙 网络防火墙就是一个位于计算机和它所连接的网络之间的防火墙.该计算机流入流出的所有网络通信均要经过此防火墙.防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行.防火墙还可以关闭不使用的端口.而且它还能禁止特定端口的流出通信,封锁特洛伊木马.最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信. 2.应用层防火墙 应用层防火墙是在 TCP/IP 堆栈的"应用层&

linux的初接触

最初衷:当自己的才能不能支配起内心的梦想时,便需要静下心来读读书.知道linux算一个巧合,但既然选择,那便努力一把.这是我的第一篇博文,也是我正式接触linux的所学.愿与大家共勉. ---Aolens 一,Linux比较常见的几个版本以及他们包含的常见的分支: 1,  Debian:ubuntu 2,  Slackware:s.u.S.E 3,  Redhat:CentOS,Fedora,HREL(centos的社区版,由centos调试一些软件是否成功来添加到HREL中         )

我的C语言学习之路——初装Linux(双系统模式)

我的C语言学习之路--初装Linux(双系统模式) 第一次听说Linux是在微软公布不再维护WindowXP系统,当时打开头条网,Linux几乎占据了头条,好奇之下,百度了Linux(Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)). 第二次听说Linux是在程序员联盟(微信公众号:programmerLeague)   讨论,这也是我真正接触Linux的时候.作为一个编程初学者,对一切有利于编译的软

Linux LVM的相关操作

LVM的主要特点就是可以将已经格式化的分区进行动态的缩减.LVM的实现方式是将几个实体的partitions或者disk通过软件组成一个大磁盘(VG),然后可以将大磁盘进行切割,切割后可得到lv(相当于分区),在lv上进行格式化挂载.vg和lv的容量都可以动态地进行缩减.下面来说一下具体过程: 1)pv阶段. pv阶段涉及到的命令: 1.pvcreate:将分区partition建立成为pv 2.pvscan:检索目前系统中具有pv的磁盘,显示pv 3.pvdisplay:显示系统中pv的状态

Linux LVM逻辑卷配置过程详解

Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需要. LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.RHEL5默认安装的分区格式就是LVM逻辑卷的格式,需要注意的是/boot分区不能基于LVM创建,必须独立出

Linux 磁带机备份完全攻略

一.确定数据备份策略 首先必须确定在备份过程中操作哪些文件.在商业环境中,这是非常困难的一个决定,而且会产生严重的影响.如果备份了太多数据,会导致备份系统的成本过于庞大,会削减其他方面的开支.如果没有备份足够的数据,那么重要的数据就可能会丢失. 备份整个系统非常简单(请确保不要备份NFS挂载的一些目录和诸如/proc/之类的特殊文件系统),但是通常这样备份的内容都太多了.如果整个系统盘上的数据都丢失了,那么在恢复任何数据之前,很可能不得不重新安装基本的操作系统.将这些系统文件保存在备份磁带上不是