创建快照
>UNLOCK TABLES; //解锁
#mount /dev/myvg/mysnap /mnt //挂载快照卷
#cd /mnt/data
#tar -jcf /root/mysql.tar.bz2 luowei/ ibdata1 ib_logfile* mysql-
bin.* //备份数据并压缩
#umount /mnt //卸载快照
#lvremove --force /dev/myvg/mysnap //移除快照
LV恢复
cd /usr/local/mysql
#chown -R mysql:mysql . //修改权限
#scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ //
重新生成
#chown -R root .
#killall mysqld //杀掉所有关于mysql的进程
#cd /mydata/data
#tar xf /root/mysql.tar.bz2 -C ./ //把备份恢复到mysql的数据文件中
然后我们在登录到Mysql,就会发现原来的数据仍然存在了
4.使用binary日志文件实现时间点的恢复
显示当前正在使用的事务文件
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 | 330 | | |
+------------------+----------+--------------+------------------+
mysql> FLUSH LOGS; //滚动日志文件
再查看正在使用的事务文件,然后记录下这个Position就行了
由于二进制日志文件只记录数据修改的信息,所以每次的修改对应的
Position都会改变
现在我向表中插入一行数据
mysql> INSERT INTO st (Name) VALUE ('d');
mysql> INSERT INTO st (Name) VALUE ('E');
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000007 | 553 | | |
+------------------+----------+--------------+------------------+
由于我们前面已经做了一个完全备份,所有我们现在可以备份从330开始的
数据了
# mysqlbinlog --start-position 330 mysql-bin.000007
>/root/mysql.incr.sql //备份增加的二进制文件
然后我们这个时候登录到mysql
mysql>DROP DATABASE luowei;
然后恢复该数据库
# service mysqld stop
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
# cd /mydata/data/
# tar xf /root/mysql.incr.sql -C .
# mysql < /root/mysql.incr.sql
# service mysqld start
登录到数据库,
就会发现有数据恢复正常