由于数据库里面有几个日志表非常大,而日志信息重要性不大,所以需要在备份时排除这几个表,加快备份的时间,我对数据库也不太熟悉,暂时只知道两种办法:

一、把数据表单独备份

写脚本先获取所有的表,然后排除不需备份的表,再用for循环进行单表备份:

 
  
  1. #!/bin/bash  
  2. i=`mysql -u root cactidb -e "show tables;" | awk '!/Tables_in_cactidb/&&!/rra/&&!/snmp_query_graph_rrd_sv/'`  
  3. for k in $i  
  4.     do mysqldump -u root cactidb $k >> ufo.sql  
  5. done 

二、直接利用mysqldump 参数--ignore-table=tablename,把不需要的表排除,使用如下:

mysqldump --ignore-table=cactidb.snmp_query_graph_rrd_sv -uroot -p123456 cactidb > cacti.sql

不知道有没有更好的办法,能把不需要备份的表的结构导出来,而不需要数据呢。

参考:http://storysky.blog.51cto.com/628458/278093