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

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

[[email protected] 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~

时间: 2024-08-01 10:34:34

mysqldump 备份时排除某些表的脚本的相关文章

mysqldump备份时忽略某些表

例如:数据库名称test,我现在需要将test备份,但是不需要备份test中的A,B,C表 mysqldump -u username -ppassword --opt -R test --ignore-table=test.A --ignore-table=test.B --ignore-table=test.C > test.sql

mysqldump备份中恢复单张表

⒈mysqldump备份中导出单张表很多时候我们需要从mysqldump备份文件中恢复出一张表,通常的做法可能是先把sql 文件恢复到一个测试数据库,然后再使用mysqldump导出一张表,再恢复到生产环境,这样,如果数据量不大这方法是可行的,但是你依然需要有一个测试机器或者临时创建一个库,不是很方便,可以利用awk/sed解决相关问题:①在原数据库中使用show tables;②利用sed或者awk,将数据导入文件中(注意表之间的排序)# awk '/^-- Table structure f

MySql备份时如何保持数据的一致性

对mysql数据进行备份,常见的方式如以下三种,可能有很多人对备份时数据一致性并不清楚 1.直接拷贝整个数据目录下的所有文件到新的机器.优点是简单.快速,只需要拷贝:缺点也很明显,在整个备份过程中新机器处于完全不可用的状态,且目的无法释放源数据文件中因为碎片导致的空间浪费和无法回收已发生扩展的innodb表空间. 2.用xtrabackup进行热备.优点是备份过程中可继续提供服务:缺点和第一种方法差不多,目的分区无法释放源数据文件中因为碎片导致的空间浪费和无法回收已发生扩展的innodb表空间.

执行mysqldump备份数据时报错

环境;MySQL 版本 5.6.28 问题:执行mysqldump出现以下报错,小白当时执行mysqldump备份时,是执行一次报一个错1.mysqldump: Got error: 1146: Table 'mysql.innodb_index_stats' doesn't exist when using LOCK TABLES2.mysqldump: Got error: 1146: Table 'mysql.innodb_table_stats' doesn't exist when u

mysqldump备份结合binlog日志恢复

http://hongge.blog.51cto.com/ MySQL备份一般采取全库备份加日志备份的方式,例如每天执行一次全备份,每小时执行一次二进制日志备份.这样在MySQL故障后可以使用全备份和日志备份将数据恢复到最后一个二进制日志备份前的任意位置或时间. 1.binlog介绍 mysql的二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上开启binlog),还包括了这些操作的执行时间.为了显示这些二进制内容,我们可以使用mysqlbinlog命令来查看. Binlo

mysql数据库种类介绍及 mysqldump备份数据

一  Nosql 指的是非关系型数据库,作为传统关系型数据库的一个有效补充,针对特定场景.以高性能和使用便利为目一 的功能特异化的数据库产品 Nosql特点: Noosql数据库存储不需要固定的表结构 1 他不是否定关系数据库,而是作为关系数据库的一个重要补充 2 Nosql为了高性能高并发而产生的 3 Nosql典型产品memcache(纯内存) 一重启就丢数据 redis(持久化缓存)  持久化缓存 mongodb 二  非关系型数据库种类: 1 键值存储数据库 2 列存储数据库 3 面向文

mysql之 mysqldump 备份恢复详解

mysqldump 程序的实现原理是通过我们给的参数信息加上数据库中的系统表信息来一个表一个表获取数据然后生成 INSERT 语句再写入备份文件中的.这样就出现了一个问题,在系统正常运行过程中,很可能会不断有数据变更的请求正在执行,这样就可能造成在 mysqldump 备份出来的数据不一致.也就是说备份数据很可能不是同一个时间点的数据,而且甚至可能都没办法满足完整性约束.这样的备份集对于有些系统来说可能并没有太大问题,但是对于有些对数据的一致性和完整性要求比较严格系统来说问题就大了,就是一个完全

怎么恢复用mysqldump备份数据和恢复数据

1.备份: 写一个脚本: !/bin/bash` echo 'dump begin' Now=$(date +%d-%m-%Y--%H:%M:%S) //获取当前时间 File=backup-$Now.sql.gz //组成文件名 mysqldump -u zc_test -pzc_test2016 -h test.rtdream.com --port 3307 --all-databases --single-transaction --routines --add-drop-table --

mysqldump备份

备份工具1.mysqldump(数据量很大时不推荐使用)   myisam 锁表   innodb 行锁 mysqldump --help | less   #查看mysql所有的语法 mysqldump -uroot -p wang > /usr/back_upsql/wang.sql 2.mysqlhotcopy是mysql软件包自带的一种备份工具,是一个Perl脚本(操作系统级的备份) 在企业版和社区版都有包含 本质上是使用锁表语句后在使用cp或者scp命令拷贝数据库 有限支持flush