在上一篇文章中我们提到热备(),,热备也就是在mysql或者其他数据库服务在运行的情况下进行备份。本文分享另外一种备份的方法,也就是热拷贝。热拷贝跟热备很类似,只不过热备使用mysqldump命令,热拷贝使用mysqlhotcopy命令。热拷贝的优势在于支持服务运行中进行备份,速度快,性能好;劣势在于只能备份myisam的表,无法备份innodb的表。所以在生产环境中应该酌情使用。
二 示意图
三 热备模拟
第一步,热拷贝
[root@serv01 databackup]# mysqlhotcopy -uroot -p123456 --database larrydb > larrydb_hostcopy.sqlcan't locate dbi.pm in @inc (@inc contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/mysql/bin/mysqlhotcopy line 25.begin failed--compilation aborted at /usr/local/mysql/bin/mysqlhotcopy line 25.
[root@serv01 databackup]# yum install perl* -y
[root@serv01 databackup]# mysqlhotcopy --help#第一种写法[root@serv01 databackup]# mysqlhotcopy --user=root --password=123456 larrydb /databackup/#第二种写法[root@serv01 databackup]# mysqlhotcopy -u root -p 123456 larrydb /databackup/flushed 2 tables with read lock (`larrydb`.`class`, `larrydb`.`stu`) in 0 seconds.locked 0 views () in 0 seconds.copying 5 files...copying indices for 0 files...unlocked tables.mysqlhotcopy copied 2 tables (5 files) in 0 seconds (0 seconds overall).
第四步,模拟数据丢失
[root@serv01 databackup]# ll larrydbtotal 36-rw-rw----. 1 mysql mysql 8590 sep 10 19:07 class.frm-rw-rw----. 1 mysql mysql 65 sep 10 19:07 db.opt-rw-rw----. 1 mysql mysql 8618 sep 10 19:07 stu.frm-rw-rw----. 1 mysql mysql 48 sep 10 19:07 stu.myd-rw-rw----. 1 mysql mysql 1024 sep 10 19:07 stu.myimysql> use larrydb;database changedmysql> show tables;+-------------------+| tables_in_larrydb |+-------------------+| class|| stu|+-------------------+2 rows in set (0.00 sec)mysql> show create table class \g;*************************** 1. row ***************************table: classcreate table: create table `class` ( `cid` int(11) default null, `cname` varchar(30) default null) engine=innodb default charset=latin11 row in set (0.00 sec)error: no query specifiedmysql> show create table stu \g;*************************** 1. row ***************************table: stucreate table: create table `stu` ( `sid` int(11) default null, `sname` varchar(30) default null, `cid` int(11) default null) engine=myisam default charset=latin11 row in set (0.00 sec)error:mysql> drop table class,stu;query ok, 0 rows affected (0.01 sec)mysql> show tables;empty set (0.00 sec)#这样删除会出错,不要这样删除[root@serv01 databackup]# rm -rf /usr/local/mysql/data/larrydb/*[root@serv01 databackup]# rm -rf /usr/local/mysql/data/larrydb/更多详情见请继续阅读下一页的精彩内容:
相关阅读:
mysql备份和恢复具体实施
mysql备份:mylvmbackup介绍与使用
linux下通过mysqldump备份mysql数据库成sql文件
linux中使用mysqldump对mysql数据库进行定时备份
磁盘管理——lvm
