mysql LV快照备份

1.备份流程:

1.锁表——>LV快照——>解锁 python

特色:锁表时间少,保持数据一致性 mysql

 

 

若是是手动备份作快照能够不用后台锁表: sql

mysql>flush tables with read lock; 数据库

#lvcreate --size 100m --snapshot --name snap /dev/CS/mysql      建立一个100M的LV快照,snap 是快照LV的名称,/dev/CS/mysql是数据库的LV bash

mysql>unlock tables; rem

#mkdir /LVmysql /mysql_back it

#mount /dev/CS/snap  /LVmysql   挂载 table

#cp -rf /LVmysql/* /mysql_back/       copy出来      copy出来的数据就是数据库数据 import

#umount /LVmysql awk

#lvremove  /dev/CS/snap  删除    

 

 

脚本备份,由于锁表是后台不了,由于它是存在于某个会话的,咱们使用python让他的会话一直保持。

python脚本

vi mysql_lock.py

#!/usr/bin/python
import MySQLdb
conn=MySQLdb.connect(host='192.168.20.247',user='root',passwd='123456',db='BK',port=3306)
cur=conn.cursor()
sql="flush tables with read lock"
rs=cur.execute(sql)

i=1
while i < 100000000:
i=1

 

建立备份脚本:

vi mysql_lvm.sh

#!/bin/bash

/root/python_lock.py &

lvcreate --size 100m --snapshot --name snap /dev/CS/mysql
id=`ps aux | grep python_lock.py | grep -v grep | awk '{ print $2}'`
kill $id

mount /dev/CS/snap  /LVmysql  

cp -rf /LVmysql/* /mysql_back/   

umount /LVmysql

lvremove  /dev/CS/snap exit 0

相关文章
相关标签/搜索