軟件測(cè)試 | mysqlhotcopy(MyISAM表熱備份工具)
mysqlhotcopy是一個(gè)Perl腳本,它使用LOCK TABLES、FLUSH TABLES、cp或scp來快速備份數(shù)據(jù)庫。它是備份數(shù)據(jù)庫或單個(gè)表的最快途徑,其缺點(diǎn)是mysqlhotcopy只用于備份MyISAM,而且它需要運(yùn)行在Liunx/UNIX環(huán)境中。
需要注意的是,mysqlhotcopy是Perl腳本,因此需要安裝Perl的MySQL數(shù)據(jù)庫接口包,我們可以從Linux的官方FTP(http://ftp.redhat.com)上下載它,以筆者的測(cè)試環(huán)境(Linux AS4,INTEL32位處理器)為例,從目錄/pub/redhat/linux/enterprise/4/en/os/i386/SRPMS中下載包perl-DBD-MySQL-2.9004-3.1.src.rpm。而此包的安裝又依賴于MySQL的開發(fā)包,因此還需要下載MySQL相應(yīng)版本的開發(fā)包,筆者測(cè)試環(huán)境中下載的包名為:MySQL-devel-community-5.0.41-0.rhel4.i386.rpm。后者的安裝過程和普通rpm一樣,這里不在贅述,而前者從FTP站點(diǎn)下載的是源碼包,需要重新編譯后才可以安裝。編譯的過程簡(jiǎn)單描述如下。
(1)在操作系統(tǒng)上su到root用戶。
(2)執(zhí)行如下命令,生成.spec文件。
(3)此時(shí)進(jìn)入 cd /usr/src/redhat/SPECS,可以看到 perl-DBD-MySQL.spec
(4)執(zhí)行如下命令,將 spec 文件編譯為 RPM 安裝文件。
(5)進(jìn)入 RPM 最后放置目錄,一般為/usr/src/redhat/RPMS/i386。
(6)安裝生成的 rpm 包
至此,源碼包安裝完畢。
mysqlhotcopy 的用法如下:
下面的例子中將 mysql 數(shù)據(jù)庫備份到到當(dāng)前目錄下的 backup 下:
mysqlhotcopy 的常用選項(xiàng)如下。
--allowold:如果備份路徑下中含有同名備份,則將舊的備份目錄 rename 為目錄名 _old。
--addtodest:如果備份路徑下存在同名目錄,則僅僅將新的文件加入目錄。
--noindices:不備份所有的索引文件。
--flushlog:表被鎖定后刷新日志。
這些選項(xiàng)的含義都很簡(jiǎn)單,讀者可以下去自己測(cè)試,這里就不再舉例。更多的選項(xiàng),可以用mysqlhotcopy –help 命令或者 perldoc /usr/bin/mysqlhotcopy 命令進(jìn)行查詢。