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

相關文章
相關標籤/搜索