概述
场景:有一张表数据经常过一段时间会发生变动,通过binlog2sql拿这几天的sql观察发现某个时间段总会发生批量更新,怀疑是代码中某个功能导致,但开发一直找不到问题,所以只能先做一下单表的备份,频率为1小时1次。
实现过程如下:
备份脚本
核心脚本如下:
- #!/bin/bash
- #this is mysqldump auto table backup script
- #Copyright by hwb
- backup_path="/pasdata/backup"
- user="root"
- passwd="xx.xx.x.x
- dbname="pas_prod"
- host="localhost"
- tablename="t_att_overtime_application"
- today=`date +"%Y%m%d-%H%M%S"`
- sqlname=$tablename$today.sql
- if [ -e /home/scripts/log_function.sh ]
- then
- source /home/scripts/log_function.sh
- else
- echo -e “\033[41;37m /home/scripts/log_function.sh is not exist. \033[0m”
- exit 1
- fi
- backup(){
- log_correct "开始执行备份脚本,删除14天过期备份"
- #backup
- mysqldump -h$host -u$user -p$passwd $dbname --tables $tablename >$backup_path/$sqlname
- }
- delete(){
- #delete expired 14 days
- find $backup_path -mtime +14 -type f -name '*.sql' -exec rm -f {} \;
- }
- size(){
- cd $backup_path
- dd=`du -sh $sqlname`
- if [ -s ./$sqlname ] ; then
- log_correct '调休表备份正常'
- log_correct $dd
- else
- log_error '调休表备份失败'
- fi
- }
- backup
- delete
- size
核心命令如下:mysqldump -h$host -u$user -p$passwd $dbname --tables $tablename >$backup_path/$sqlname
定时任务
设置定时任务如下:每隔1h的30分执行
- 30 0-23 * * * sh /home/scripts/table_backup.sh
附录:关于mysqldump导出表的命令
1、导出指定表的数据
- mysqldump -t database -u username -ppassword --tables table_name1 table_name2 table_name3 >table.sql
2、导出指定表的结构
- mysqldump -d database -u username -ppassword --tables table_name1 table_name2 table_name3>table.sql
3、导出表的数据及结构
- mysqldump database -u username -ppassword --tables table_name1 table_name2 table_name3>table.sql
4、某些表除外,其余表都需导出
- 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
一个很常见的 ASP 问题 : “如何定时工作流程执行网页”, 之所以会问这个问题大...
微服务架构的那些事儿 一.dubbo浅谈 dubbo架构图如下所示 二.dubbo-admin管理平...
前言 有位朋友去阿里面试,他说面试官给了几条查询SQL,问:需要执行几次树搜索操...
blockquote定义和用法 blockquote 标签定义块引用。 blockquote 与 /blockquote ...
正则表达式惰性匹配模式: 在贪婪匹配模式一章节已经说过人性是贪婪的,希望获得...
前言 正如大家所知,在 .NET Core 中配置文件改成了 appsettings.json,表面上和...
本文转载自微信公众号「Linux开发那些事儿」,作者 LinuxThings 。转载本文请联...
//js正则实现用户输入银行卡号的控制及格式化 script language="javascript" typ...
IT之家2月4日消息根据 MacRumors 论坛、苹果支持社区、推特和 Reddit 上的多份报...
正则表达式链接替换函数的技巧如下所示: 1) 字符串 前面的字符a href=" http://...