MySQL数据库基于表级别备份

数据库 MySQL
有一张表数据经常过一段时间会发生变动,通过binlog2sql拿这几天的sql观察发现某个时间段总会发生批量更新,怀疑是代码中某个功能导致,但开发一直找不到问题,所以只能先做一下单表的备份,频率为1小时1次。

 概述

场景:有一张表数据经常过一段时间会发生变动,通过binlog2sql拿这几天的sql观察发现某个时间段总会发生批量更新,怀疑是代码中某个功能导致,但开发一直找不到问题,所以只能先做一下单表的备份,频率为1小时1次。

[[285485]]

实现过程如下:

备份脚本

核心脚本如下:

 

  1. #!/bin/bash 
  2. #this is mysqldump auto table backup script 
  3. #Copyright by hwb 
  4. backup_path="/pasdata/backup" 
  5. user="root" 
  6. passwd="xx.xx.x.x 
  7. dbname="pas_prod" 
  8. host="localhost" 
  9. tablename="t_att_overtime_application" 
  10. today=`date +"%Y%m%d-%H%M%S"
  11. sqlname=$tablename$today.sql 
  12.  
  13. if [ -e /home/scripts/log_function.sh ] 
  14. then 
  15. source /home/scripts/log_function.sh 
  16. else 
  17. echo -e “\033[41;37m /home/scripts/log_function.sh is not exist. \033[0m” 
  18. exit 1 
  19. fi 
  20.  
  21. backup(){ 
  22. log_correct "开始执行备份脚本,删除14天过期备份" 
  23. #backup 
  24. mysqldump -h$host -u$user -p$passwd $dbname --tables $tablename >$backup_path/$sqlname 
  25.  
  26. delete(){ 
  27. #delete expired 14 days 
  28. find $backup_path -mtime +14 -type f -name '*.sql' -exec rm -f {} \; 
  29.  
  30. size(){ 
  31. cd $backup_path 
  32. dd=`du -sh $sqlname` 
  33. if [ -s ./$sqlname ] ; then  
  34.  log_correct '调休表备份正常' 
  35.  log_correct $dd 
  36. else 
  37.  log_error '调休表备份失败' 
  38. fi 
  39. backup 
  40. delete 
  41. size 

 

mysql数据库基于表级别备份

 

 

核心命令如下:mysqldump -h$host -u$user -p$passwd $dbname --tables $tablename >$backup_path/$sqlname

定时任务

设置定时任务如下:每隔1h的30分执行

 

  1. 30 0-23 * * * sh /home/scripts/table_backup.sh 

附录:关于mysqldump导出表的命令

1、导出指定表的数据

 

  1. mysqldump -t database -u username -ppassword --tables table_name1 table_name2 table_name3 >table.sql 

2、导出指定表的结构

 

  1. mysqldump -d database -u username -ppassword --tables table_name1 table_name2 table_name3>table.sql 

3、导出表的数据及结构

 

  1. mysqldump database -u username -ppassword --tables table_name1 table_name2 table_name3>table.sql 

4、某些表除外,其余表都需导出

 

  1. mysqldump -h IP -u username -ppassword --default-character-set=utf8 --database database_name --ignore-table=database_name.table_name1 --ignore-table=database_name.table_name2 --ignore-table=database_name.table_name3 >table.sql 

 

责任编辑:华轩 来源: 今日头条
相关推荐

2019-03-01 13:40:01

MySQL数据库备份案例

2011-03-31 14:34:46

cactimysql备份

2011-03-30 13:57:41

MySQL数据库自动备份

2011-05-16 09:32:33

mysql数据库备份

2018-08-24 13:58:13

数据库MySQL备份

2010-06-09 11:32:51

MySQL数据库备份

2010-06-04 09:58:03

MySQL数据库备份

2011-03-04 14:39:03

MySQL数据库mysqldump

2015-03-18 13:39:35

MySQLBackup数据库备份种类

2011-05-18 13:16:21

MySQL数据库锁定

2009-02-02 13:16:23

修复数据表MySQL

2018-01-03 08:52:27

MySQL数据库级别

2010-10-13 11:54:00

MySQL数据库表

2011-04-06 09:09:17

MySQL数据库备份

2010-05-28 11:41:46

MySQL数据库备份

2021-05-17 06:57:34

SQLServer数据库

2011-08-01 12:44:25

Oracle基于用户管理备份与恢复

2010-05-20 15:22:37

2010-05-24 16:58:00

MySQL数据库备份

2010-05-31 09:44:38

点赞
收藏

51CTO技术栈公众号