zoukankan      html  css  js  c++  java
  • 快照方式备份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
    显示结果如下:

  • 相关阅读:
    SQL Server分页查询的万能存储过程
    前端相关及一些关键单词
    java shiro面试题
    java集合面试题
    芬芬购物系统基础配置2
    芬芬购物系统基础配置
    多线程安全
    多线程入门
    JAVA多线程
    java多线程
  • 原文地址:https://www.cnblogs.com/L-H-R-X-hehe/p/3830714.html
Copyright © 2011-2022 走看看