码迷,mamicode.com
首页 > 数据库 > 详细

mysqldump 备份时排除某些表的脚本

时间:2014-08-27 12:25:27      阅读:396      评论:0      收藏:0      [点我收藏+]

标签:style   color   for   文件   数据   cti   amp   sp   on   

我们有个数据库用 mysqldump备份 后来备份的速度越来越慢,备份文件也越来越大。检查的时候发现有两个表非常大而且没有必要备份,所以决定备份这个库的时候排除他们两个。可是mysqldump可没有排除某个表这个选项,那么就用shell脚本来实现吧!
   我这里就用cactidb来举例吧,我这里不备份 snmp_query_graph_rrd_sv表和 rra表,先把需要备份的表列出来,这样写
mysql -u root cactidb -e "show tables;" | awk ‘!/rra/&&!/snmp_query_graph_rrd_sv/‘

[root@nodec 02]# mysql -u root cactidb -e "show tables;" | awk ‘!/rra/&&!/snmp_query_graph_rrd_sv/‘
Tables_in_cactidb
cdef
cdef_items
colors
.....
那两个表没了,可是Tables_in_cactidb还在,没关系,加上就好了
mysql -u root cactidb -e "show tables;" | awk ‘!/Tables_in_cactidb/&&!/rra/&&!/snmp_query_graph_rrd_sv/‘
好了,现在变量有了,下面就是具体的备份了
写个脚本 sql.sh 内容如下
#!/bin/bash
i=`mysql -u root cactidb -e "show tables;" | awk ‘!/Tables_in_cactidb/&&!/rra/&&!/snmp_query_graph_rrd_sv/‘`
mysqldump -u root cactidb $i >> ufo.sql
还有一种方法 就是用for循环 如下
i=`mysql -u root cactidb -e "show tables;" | awk ‘!/Tables_in_cactidb/&&!/rra/&&!/snmp_query_graph_rrd_sv/‘`
for k in $i
    do mysqldump -u root cactidb $k >> ufo.sql
done

好了,给个X 权限执行以下吧,别忘了最好加上绝对路径~~
是不是很简单 O(∩_∩)O~

mysqldump 备份时排除某些表的脚本

标签:style   color   for   文件   数据   cti   amp   sp   on   

原文地址:http://www.cnblogs.com/riont/p/3938916.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!