mysqlhotcopy是一个Perl脚本,最初由Tim Bunce编写并提供。它使用LOCK TABLES、FLUSH TABLES和cp或scp来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库目录所在的机器上。mysqlhotcopy只用于备份MyISAM。它运行在Unix和NetWare中。
与
mysqldump比较:
一、前者是一个快速文件意义上的COPY,后者是一个数据库端的SQL语句集合。
二、前者只能运行在数据库目录所在的机器上,后者能够用在远程客户端,不过备份的文件仍是保存在服务器上。
三、相同的地方都是在线执行 LOCK TABLES 以及 UNLOCK TABLES
四、前者恢复只须要COPY备份文件到源目录覆盖便可,后者须要导入SQL文件到原库中。(source 或 mysql < bakfile.sql)
五、前者只适用于 MyISAM 引擎,然后则则可同时使用于MyISAM引擎和InodDB引擎.
六、前者在使用前必须安装perl-DBD-mysql包,然后者则不须要.
使用 mysqlhotcopy 以前须要安装 perl-DBI 和 DBD-mysql
1、安装 perl-DBI
直接运行yum安装便可
yum install perl-DBI
2、安装 DBD-mysql
访问
http://www.cpan.org/modules/by-module/DBD/
找到最新的版本(20130706 查阅最新版本是 DBD-mysql-4.023.tar.gz)
开始下载安装:
注意:
请确保 mysql_config 的路径正确。
wdcp
lanmp
一键安装包中的 mysql_config 为
/www/wdlinux/mysql/bin/mysql_config
wget http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.023.tar.gz
tar xzvf DBD-mysql-4.023.tar.gz
cd DBD-mysql-4.023
perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config
make
make install
一个经常使用的 mysqlhotcopy 备份例子:
/usr/local/mysql/bin/mysqlhotcopy -u root -p Zmh537817 --addtodest 数据库名1 数据库名2 备份目录
例如:备份数据库 pw87 和 pw90 到
/backup/mysql目录
/usr/local/mysql/bin/mysqlhotcopy -u root -p Zmh537817 --addtodest pw87 pw90 /backup/mysql
--addtodest 的意思是当备份存在时,不中断备份,只添加新的文件进去。
-u 数据库用户名
-p 数据库密码
更多的选项能够执行/usr/local/mysql/bin/mysqlhotcopy --help查看。 mysql
如何还原?
一、中止mysql服务器。
二、复制备份的数据库目录到mysql数据目录下。
三、更改目录全部者为mysql服务器运行的用户(如mysql)。
四、启动mysql服务器 linux
本文来自:http://www.centos.bz/2011/11/backup-mysql-database-with-mysqlhotcopy/
并在“安装 DBD-mysql”时,修改为了最新的安装源 sql