與mysqldump比較:
1、前者是一個快速文件意義上的COPY,後者是一個數據庫端的SQL語句集合。
2、前者只能運行在數據庫目錄所在的機器上,後者可以用在遠程客戶端,不過備份的文件還是保存在服務器上。
3、相同的地方都是在線執行 LOCK TABLES 以及 UNLOCK TABLES
4、前者恢復只需要COPY備份文件到源目錄覆蓋即可,後者需要導入SQL文件到原庫中。(source 或 mysql < bakfile.sql)
5、前者只適用於 MyISAM 引擎,而後則則可同時使用於MyISAM引擎和InodDB引擎.
6、前者在使用前必須安裝perl-DBD-mysql包,而後者則不需要。
使用mysqlhotcopy之前需要安裝perl-DBI和DBD-mysql:
1、執行yum install perl-DBI安裝perl-DBI。
2、安裝DBD-mysql請參考 http://www.centos.bz/2011/11/linux-install-perl-dbd-mysql/
舉一個常用的備份例子:
/usr/local/mysql/bin/mysqlhotcopy -u root -p 123456 –addtodest 數據庫名1 數據庫名2 備份目錄
–addtodest的意思是當備份存在時,不中斷備份,只添加新的文件進去。
更多的選項可以執行/usr/local/mysql/bin/mysqlhotcopy –help查看。
如何還原MySQL?
1、停止mysql服務器。
2、復制備份的數據庫目錄到mysql數據目錄下。
3、更改目錄所有者為mysql服務器運行的用戶(如mysql)。
4、啟動mysql服務器