美文网首页
MySQL Lvm快照实现物理备份 + binlog(物理备份)

MySQL Lvm快照实现物理备份 + binlog(物理备份)

作者: 如约而至_8286 | 来源:发表于2019-01-21 17:10 被阅读0次

    1.环境准备

    需要准备一块空的硬盘将其做成Lvm即可


    962a169d6b4232b9039bd4dce41d99b.png

    2.开始备份MySQL数据库所有数据

    systemctl stopo mysqld
    停止数据库
    mount /dev/xupeng/xp /mnt 将前面做好的lvm挂载到/mnt
    cp -a /var/lib/mysql/* /mnt
    将数据库所有数复制到/mnt

    注:这里表面上是将数据库的所有数据复制到/mnt下面,但实际上数据库的所有数据是复制到了/dev/xupeng/xp这个lvm里面,/mnt只是这个lvm的一个出口,在取消挂载后里面是没有内容的(拿笔管和笔芯举例,“/mnt”是笔管,lvm则是笔芯,当笔芯被拿掉时,笔管里则什么都没有)

    umount /mnt/
    卸载零时挂载

    注:上面的一系列操作目的是将mycql所有的数据复制到lym上面

    vim /etc/fstab
    打开/etc/fstab 文件将/dev/xupeng/xp 这个lvm挂载到这来,实现开机自启
    /dev/datavg/lv-mysql /var/lib/mysql xfs defaults 0 0
    mount -a
    chown -R mysql.mysql /var/lib/mysql
    给予/var/lib/mysql/ 数据库的最高权限
    systemctl start mysqld
    开启数据库

    注:如果在安装数据库时直接将其数据储存在lvm上则可以省略上面全部的步骤,直接将lvm上的数据进行备份即可,然后开始试验

    注:为了试验的效果,我们现在进入数据库进行一些操作
    lvm快照备份流程(相当于经MySQL数据库备份到lvm上后在将lvm上的数据再次备份,然后将其删除后恢复lvm上的数据)
    mysql -uroot -p"Xp.@123456haha" 登陆数据库
    create database mmm;
    创建库“mmm”
    use mmm;
    进入库“mmm”
    create table nnn;
    创建名称为“nnn”的表
    insert into nnn values (6);
    向表中插入数据“6”
    insert into nnn values (66);
    向表中插入数据“66”
    mysql> flush tables with read lock;
    数据库加全局读锁
    \q
    退出数据库
    lsblk
    查询所有硬盘
    lvmcreate -L 1G -s -n nnn /dev/xp/peng
    在“/dev/xp/peng”创建peng这个lvm逻辑卷
    mysql -p"Xp.@123456haha" -e "show master status" > /2/date +%F_position.txt
    查询二进制日志位置,下次使用binlog作为还原依据(最近一次备份点到奔溃点之间的数据)的依据
    mysql -uroot -p"Xp.@123456haha"
    进入数据库
    unlock tables;
    释放枷锁
    \q
    退出数据库
    mount -o nouuid /dev/xp/peng /3
    将“peng”这个lvm 挂载到/3上面
    cd /3
    tar -cf /2/ date+%F-mysql-all.tar ./*

    umount /3/
    取消挂载
    lvremove -f /dev/xu/peng
    删除“peng”这个lvm
    systemctl stop mysqld
    停止数据库
    rm -rf /var/lib/mysql/*
    清除数据库里所有数据
    ls /2/
    查看里面的文件
    tar -xf /2/2019-01-21-mysql-all.tar -C /var/lib/mysql/
    解压之前备份好的数据库数据到指定的MySQL数据库文件里面
    chown -R mysql.mysql /var/lib/mysql/
    给/var/lib/mysql/ 数据库最高权限
    systemctl restast mysqld
    启动数据库
    进入数据库查询数据是否恢复即可!!!!!!

    相关文章

      网友评论

          本文标题:MySQL Lvm快照实现物理备份 + binlog(物理备份)

          本文链接:https://www.haomeiwen.com/subject/wmyzdqtx.html