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