mysqlhotcopy 是MySQL的熱備工具,詳細請看手冊 ,為了安全起見我們給熱備分配個用戶:
grant select, reload, lock tables on *.* to 'hotcopy'@'localhost' identified by '123456';
如果我們只想熱備其中的一部分數據就有可能用到正則了,使用 mysqlhotcopy --help可以看到它支持的選項,其中有:--regexp 這個正則是和數據庫名匹配的,比如:備份以abc開頭的庫,可以使用:
mysqlhotcopy --flushlog -u='hotcopy' -p='123456' --regexp= ^abc /home/bak
備份以[a-d]開頭的庫,可以使用:
mysqlhotcopy --flushlog -u='hotcopy' -p='123456' --regexp=^[a-d] /home/bak
如果想備份某個數據庫中的某些表的話,有可能要用到以下方法:
備份test庫以abc開頭的表:
mysqlhotcopy --flushlog -u='hotcopy' -p='123456' test./^abc/ /home/bak
備份test庫除abc開頭的表:
mysqlhotcopy --flushlog -u='hotcopy' -p='123456' test./~^abc/ /home/bak
備份test庫以abc_a,abc_b,abc_c,abc_d,abc_e,......,abc_w開頭的表:
mysqlhotcopy --flushlog -u='hotcopy' -p='123456' test./^\(abc_[a-w]\)/ /home/bak