mysqldump之跳过指定表


title: mysqldump之跳过指定表 tags:

  • mysql
  • mysqldump
  • ignore-table
  • 备份 categories: mysql date: 2017-07-25 18:18:53

背景

目前系统中对于业务数据做了备份以作为数据校验,比如期初数据期末数据进行对比监控,因此产生了大量的备份表。备份表单表数据随着业务的增长而持续增长。导致晚间备份数据超长。

原方法

    ./mysqldump -uroot -proot  --skip-lock-tables --databases f6dms_1116_prod_backup| gzip > /home/opt/database_`date '+%m-%d-%Y'`.sql.gz;
复制代码

这样会导致备份时间超长,文件太大(随着时间增长 表变大,表变多)

目前使用jenkins远程ssh调用脚本远程执行mysqldump进行备份。

我的思考

  1. mysqldump支持备份指定库,那么我们可以备份其他到db中?
  2. 备份忽略指定前缀的表

解决方法

  1. 比较简单,略过
  2. mysqldump支持  --ignore-table但是不支持通配符,那么我们可以通过生成mysqldump的指令来完成。对于指定名称我们可以通过show tables来实现。因此如下
        ./mysqldump -uroot -proot  --skip-lock-tables --databases f6dms_1116_prod_backup $(mysql -uroot -proot -Df6dms_1116_prod_backup -Bse "show tables like 'tm_monitor_avg_price_%'"|awk '{print "--ignore-table=f6dms_1116_prod_backup."$1}'|xargs)| gzip > /home/opt/database_`date '+%m-%d-%Y'`.sql.gz;
复制代码
通过查询db的指定名称的表名完成忽略
复制代码
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值