• 快照方式备份MySQL数据库及举例


    快照方式备份MySQL数据库及举例

     

    一、创建逻辑卷

    依照如下连接的文档创建一个逻辑卷
    要求:物理卷20G;卷组名为vg0;逻辑卷2G,逻辑卷名为mydata
    创建逻辑卷挂载点,并挂载之
    # mkdir /mydata
    # mount /dev/vgo/mydata /mydata

    二、安装MySQL数据库

    如果机器已装有mysql,则此步可省略
    只需修改mysql的配置文件中的datadir的值改为/mysata
    然后将原数据库的数据文件全部copy至/mydata文件下,即转移数据库所在位置
    修改/mydata目录及其内容的属主属组
    然后重启mydql服务
    如果需要重新安装,可依如下文档进行安装:
    同样安装完成后,只需将mysql配置文件中的datadir的值改为/mydata
    操作如下:
    # sed -i ‘s/ ^datadir.*$/datadir=/mydata/g’ /etc/my.cnf
    # service mysqld restart
     
    修改/mydata目录及其内容的属主属组
    # chown -R :mysql /mydata/*
    # chown mydql:mysql /mydql
     
    启动mysql服务
    # service mysqld start

    三、创建快照

    锁定所有表先
    # mydql
    >FLUSH TABLES WITH READ LOCK;
    >q
     
    创建快照
    # pvvreat -L 20M -s -n mysnap /dev/vgo/mydata
    注:此命令详细解释可参照如下文档:
    解锁表
    # mysql
    >UNLOCK TABLES;
    >q
    创建快照挂载点,并挂载之
    # mkdir /mysnap
    # mount /dev/vgo/mysnap
    # ls
    发现此时/mysnap目录下的文件和/mydata下的文件一模一样
    此时,在原卷上做任何修改都不会影响/mysnap中的文件

    四、测试

    对数据库进行一些修改
    # mysql
    >CREATE DATABASE mydb;
    >USE mydb;
    >CREATE TABLE sanptest (
    >name char(30),
    >id   int);
    >q
    现在从快照目录下复制mydb文件到其它目录下,进行物理备份
    注:生产应用中应该备份整个数据库
     
    # cd /mysanp
    # cp -rp mydb  /tmp/
     
    卸载快照卷
    # umount /mysnap
    # lvremove /dev/vgo/mysnap
     
    下面对数据库进行一些删除操作
    # mydql
    >FLUSH LOGS;
    >DROP DATABASE mydb;
    >q
    此时,/mydata目录下已没有mydb文件
     
     
    现在将刚才物理备份的的mydb文件复制回来
    # copy -rp /tmp/mydb /mydata
    # service mysqld restart
     
     
    查看数据库
    # mysql
    >SHOW DATABASES;
    发现和做修改之前的的数据库一模一样,没有刚创建的mydb库
    也就是说快照备份只保存做快照那一时刻的数据信息
     
     
     
    此时,若想找回快照之后失去的数据,刚需要用的二进制日志
    查看二进制日志
    # mysql
    >SHOW BINLOG EVENTS IN’mysql-bin.0000X’;
    这里X表示数据,数字不同,日志内容也不一样,数字越大越接近现在
    这些日志全放在/mydata文件下
    显示大致如下:

    如我们想从二进制日志文件mysql-bin.0000013中恢复一个insert操作,就可以用如下命令:
    # mysqlbinlog –start-position 106 –end-position 220 mysql-bin.0000013 > /tmp/a.mysql
    # mysql -uroot -p < /tmp/a.sql
    显示结果如下:

  • 相关阅读:
    dhl: ASP.NET MVC1.0 的图片(文件)上传功能
    一些不错的sql语句
    ASP.NET使用Memcached高缓存实例
    教你加快Win7 的启动速度
    写个VS2008使用单元测试NUnit的方法,希望对大家有帮助
    C#中ToString格式大全
    JQuery UI accordion学习笔记
    dhl:Sql表子查询
    windows 7 怎么在文件夹内开启图片预览功能
    教你如何将 优酷网等视频网站的视频外链时自动播放
  • 原文地址:https://www.cnblogs.com/L-H-R-X-hehe/p/3830714.html
Copyright © 2020-2023  润新知