mysqlhotcopy只是简单的缓存写入和文件复制的过程,占用资源和备份速度比mysqldump快很多很多。特别适合大的数据库,但需要注意的是:mysqlhotcopy只支持MyISAM 引擎
1.安装perl
代码如下 | 复制代码 |
#yum -y install perl perl-DBI |
使用mysqlhotcopy需要安装perl支持,因为mysqlhotcopy是perl写的
2.安装DBD-mysql
代码如下 | 复制代码 |
#wget http://www.fcbu.com/upimages/soft/DBD-mysql-4.020.tar.gz |
代码如下 | 复制代码 |
#tar xzvf DBD-mysql-4.020.tar.gz |
代码如下 | 复制代码 |
#cd DBD-mysql-4.020 |
代码如下 | 复制代码 |
#perl Makefile.PL --mysql_config=mysql_config |
代码如下 | 复制代码 |
#make |
代码如下 | 复制代码 |
#make install |
3.备份示例
代码如下 | 复制代码 |
#mysqlhotcopy -u root -p 密码 --addtodest 数据库名1 数据库名2 备份目录 |
4.恢复
停止mysql服务,复制备份的数据库目录到相应的mysql数据目录下,用chown更改目录所有者为mysql服务器运行的用户,启动mysql服务
5.执行perl Makefile.PL --mysql_config=mysql_config编译的时候如果出现如下错误:
Can't locate ExtUtils/MakeMaker.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 Makefile.PL line 20.
BEGIN failed--compilation aborted at Makefile.PL line 20.
解决方法:
代码如下 | 复制代码 |
#yum -y install perl-ExtUtils-MakeMaker 如果还是不行就用下面两条: #yum -y install perl-ExtUtils-MakeMaker* #yum -y install perl-Time-HiRes* |
6.mysqldump和mysqlhotcopy备份shell脚本示例,mysqlbackup.sh
代码如下 | 复制代码 |
#!/bin/bash # Enviroment # Configure The Directory of Backup # define # Create Directory if [ ! -d $HOTCOPYDIR ]; then rm -rf $TMPDIR # ----- Backup MySQL ----- # Backup with Database for dbname in $HOTCOPYLIST # move hotcopy dir # create MySQL tar |