mysql lvm快照_LVM快照备份流程

LVM备份MYSQL的前提(2选1):将已运行mysql迁移到LVM卷

#! bin/bash

echo "数据库信息将被备份在/backup目录下,并确定添加磁盘/dev/sdb"

read -p "请输入你的数据库密码:" mysql_password

back_dir=/backup

if [ ! -d $back_dir ];then

mkdir -p /backup

fi

file=`date +%F`-msyql.tar

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

##将mysql迁移到lvm上

##若是生产环境,不会有此步骤,mysql 会装在lvm上

lvm_remove_mysql(){

systemctl stop mysqld

umount /var/lib/mysql

lvremove /dev/mysqlvg/lv-mysql -y

mkfs.xfs -f /dev/sdb

pvcreate /dev/sdb -y

vgcreate mysqlvg /dev/sdb

lvcreate -n lv-mysql -L 2G mysqlvg -y

mkfs.xfs -f /dev/mysqlvg/lv-mysql

##. 将数据迁移到LVM 先将新建的逻辑卷lv-mysql 挂在在mnt上,

##然后将数据库原始的信息拷贝到mnt中即拷贝到逻辑卷(lv-mysql)中,这样

##逻辑卷就有了数据库的原始信息,然后将逻辑卷从mnt取消挂载,挂载在/var/lib/mysql下,启动数据库,以后所有的信息都会存入逻辑卷中;(若/var/lib/mysql没人挂载,默认是系统盘,如果手动挂载,则读写存储会是你>挂载的盘)。至此,MySQL将迁移到lvm卷上。

systemctl stop mysqld

mount /dev/mysqlvg/lv-mysql /mnt/

cp -arf /var/lib/mysql/* /mnt

umount /mnt/ # 数据库原始的文件已经到逻辑卷中,目的达成,卸载临时>挂载

echo "/dev/mysqlvg/lv-mysql /var/lib/mysql xfs defaults 0 0" >>/etc/fstab ## //加入fstab开机挂载 将已经含有数据库原始信息的逻辑卷

##挂载在数据库的默认路径下(/var/lib/mysql),这样所有的数据信息会存>到逻辑卷(sdb)中,而不是系统盘(sda)中

mount -a

if [ $? -ne 0 ];then

echo '开机自动挂载'

fi

chown -R mysql.mysql /var/lib/mysql

systemctl restart mysqld

}

##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

###LVM快照备份

lvm_back(){

echo "flush tables with read lock;

system lvcreate -L 500M -s -n lv-mysql-snap /dev/mysqlvg/lv-mysql;

unlock tables;" | mysql -p"$mysql_password"

mysql -p"$mysql_password" -e 'show master status' > /backup/`date +%F_postion.txt`

mount -o nouuid /dev/mysqlvg/lv-mysql-snap /mnt/

cd /mnt/

tar -cf /backup/$file ./*

cd

umount /mnt/

lvremove -f /dev/mysqlvg/lv-mysql-snap

}

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

##LVM快照恢复

lvm_recover(){

systemctl stop mysqld

rm -rf /var/lib/mysql/*

ls /var/lib/mysql/*

echo "已经模拟数据库损坏,清空/var/lib/mysql~~~~~~~~~~~~~~~~~~~~~~"

sleep 2

echo "导入数据~~~~~~~~~~~~~~"

tar -xf /backup/$file -C /var/lib/mysql/

chown -R mysql.mysql /var/lib/mysql/

systemctl restart mysqld

}

lvm_remove_mysql

lvm_back

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值