马哥linux培训视频讲的基于lvm快照实现备份,头一次听说,大家有使用过吗

小小295813080 发布于 2014/08/13 22:34
阅读 342
收藏 4
 

基于lvm快照实现备份

使用lvm快照提供几乎热备的物理备份+二进制日志

1、施加锁

mysql> flush tables with read lock;  ##此时一定不能退出用户,可以另开一个终端

mysql> flush logs;   ##滚动日志

mysql> show master status;   ##记录二进制日志文件名字和位置,用于做时间点恢复

2、创建分区

# fdisk /dev/sda

# partprobe /dev/sda

3、创建一个逻辑卷用于存放数据,

# pvcreate /dev/sda5

# vgcreatemyvg /dev/sda5

# lvcreate -L 1G -n data myvg

# mke2fs -j /dev/myvg/data

# vim /etc/fstab    ##挂载至/mydata/data

/dev/myvg/data /mydata/data

##这些可以事先创建好

4、创建快照卷

# lvcreate -L 200M -n data-snap -s -p r /dev/myvg/data

##快照卷和原卷在一个卷组上

-L:大小

-n:名字

-s:快照

-p:权限,这里为只读

mysql> unlock tables;

# mkdir /snap     ##为快照卷建立挂载点

# mount  -r /dev/myvg/data-snap /snap   ##挂载快照卷

# cd /snap/

# tar   cf /tmp/all_data_`date -I`.tar.bz2 ./*   ##对数据打包

# umount /snap   ##卸载

# rm -rf /snap      ##删除挂载点

# lvremove  --force  /dev/myvg/data-snap    ##删除快照卷,数据打包后快照卷已不需要了

5、模拟故障:

mysql> drop jiaowu;

停掉mysql

service   mysqld stop

6、数据恢复

基于物理备份恢复数据时一定是冷备份,需要停止mysql服务

# service  mysqld stop

# cp /mydata/data/mysql-bin*  /tmp  ##主要备份和误操作时间点相近二进制日志文件

                                                       ##mysql-bin.00007

# cd /mydata/data

# rm -rf ./*

恢复数据:

tar xf /tmp/all_data_`date -I`.tar.bz2 -C  ./

##把备份压缩的数据解压到当前目录下,需注意目录的属主和属组

重启mysqls服务,

7、接着用二进制日志做即时点恢复

# mysqlbinlog  --stop-position=#  /tmp/mysql-bin.00007  >/tmp/jiaowu.sql

进入mysql

mysql> set sql_log_bin=0;  ##关闭二进制日志

mysql> source  /tmp/jiaowu.sql

mysql> set sql_log_bin=1;

返回顶部
顶部