1、创建lvm分区(sda5 ada6 大小都为20G 类型8e)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

       partprobe /dev/sda

       pvcreate /dec/sda{5,6}

       vgcreate vg0 /dev/sda{5,6}

       vgdisplay

       lvcreate -L 4G  -n mydata vg0

       mk2efs -j /dev/vg0/mydata

       mkdir /mydata

       chown -R mysql:mysql /mydata

       mount /dev/vg0/mydata /mydata

       开机自动启动 编辑/etc/fstab

       mysql数据指定/mydata

2、创建快照:

       进入mysql命令模式:

       flush tables with read lock 数据会同步到磁盘

       flush logs

       回到系统命令行模式:

       lvcreate -L 40M -s -n mysnap /dev/vg0/mydata

       mysql> unlock tables;

3、备份:

       mkdir /mysnap

       mount /dev/vg0/mysnap /mysnap

       源数据的改变快照目录不会显示更新数据 可以测试:

       mydb.t1表里插入数据

       开始备份:

              cd /mysnap

              cp -rp mydb数据名 /tmp/mydb

              ls /tmp/mydb

       移除快照umount /mysnap

              lvremove /dev/vg0/mysnap

4、恢复:

       模拟数据库损坏:

              mysql:

                     flush logs;

                     drop database mydb;

       恢复: service mysqld stop

              cp -rp /tmp/mydb /mydata/mydb

              service mysqld start

              连接mysql

                 show databases;

                  select * from mydb.t1  会发现没有新插入的数据,可以做时间点恢复

              ls /mydata 查看最近一次更新的二进制文件

                 show binlog events in 'mysql-bin.000013'; 查看最近的日志文件找到插入的数据的文件,

                                   假如为mysql-bin.000013,记下其开始和结尾的日志pos

              回到系统命令模式:

                     cd /mydata

                     mysqlbinlog --start-posirion 106 ---stop-position 220 mysql-bin.000013 >/tmp/mydb.sql

                     mysql -uroot -p < /tmp/mydb.sql

                     连接mysql

                     use mydb;

                     select * from t1 会显示新插入的数据

      

注意:备份时也要备份binlog日志文件,防止意外的数据库崩溃不能恢复