centos7 完成数据库单表备份

公司的数据库越来越大,因为开始是整个数据库备份的,但是这个会出现一个问题,如果我只是需要恢复一张表,我就必须恢复整个数据库备份。这样的话是不是很麻烦呢。

开始在网上找各种方法,几乎全是都是备份整库的,看的我都绝望了,就当我要放弃的时候,突然看到了这样的一篇文章  https://blog.csdn.net/qq229596421/article/details/51791620 ,感觉有希望了。我们先来看看

这个脚本也是备份这个数据库的,但是我看他的写法,感觉备份单表跟这个原理一样,下面是我琢磨出来的
databases=(001test 001test0 001test1) 
databasesson=(one two three)
basepath='/data/backup/mysql/'

if [ ! -d "$basepath" ]; then
  mkdir -p "$basepath"
fi


for db in ${databases[*]}
  do
    # 
    /bin/nice -n 19 /usr/bin/mysqldump -uroot -ppassword $db > $basepath$db-$(date +%Y%m%d).sql
    
    # 
    /bin/nice -n 19 tar zPcf $basepath$db-$(date +%Y%m%d).sql.tar.gz $basepath$db-$(date +%Y%m%d).sql
    
    # 
    find $basepath -mtime +15 -name "*.sql.tar.gz" -exec rm -rf {} \;
  done


  # 
  rm -rf $basepath/*.sql


for dbs in ${databasesson[*]}
  do
    # 
    /bin/nice -n 19 /usr/bin/mysqldump -uroot -ppossword BDAS $dbs > $basepath$dbs-$(date +%Y%m%d).sql
    
    # 
    /bin/nice -n 19 tar zPcf $basepath$dbs-$(date +%Y%m%d).sql.tar.gz $basepath$dbs-$(date +%Y%m%d).sql
    
    # 
    find $basepath -mtime +15 -name "*.sql.tar.gz" -exec rm -rf {} \;
  done
  # 
  rm -rf $basepath/*.sql

其中 BDAS是数据库名字,$dbs是表名字,这样的话就备份成功了

 

然后是数据恢复了。先解压你备份的数据包。比如我放在这里面的, data/backup/mysql/

tar zxvf test.tar.gz  //解压压缩包  tar zxvf

然后  mysql -uroot -p你的密码  test < /data/backup/mysql/data/backup/mysql/State_Acc-20180909.sql

test是数据库名字,你需要恢复的数据库。/data/backup/mysql/data/backup/mysql/State_Acc-20180909.sql 这个是你解压的备份

运行后,备份恢复了

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值