前言:
如今姐妹们对“mysql 表备份”大致比较关切,看官们都想要分析一些“mysql 表备份”的相关内容。那么小编在网摘上收集了一些有关“mysql 表备份””的相关内容,希望小伙伴们能喜欢,看官们一起来学习一下吧!概述
场景:有一张表数据经常过一段时间会发生变动,通过binlog2sql拿这几天的sql观察发现某个时间段总会发生批量更新,怀疑是代码中某个功能导致,但开发一直找不到问题,所以只能先做一下单表的备份,频率为1小时1次。
实现过程如下:
备份脚本
核心脚本如下:
#!/bin/bash#this is mysqldump auto table backup script#Copyright by hwbbackup_path="/pasdata/backup"user="root"passwd="xx.xx.x.xdbname="pas_prod"host="localhost"tablename="t_att_overtime_application"today=`date +"%Y%m%d-%H%M%S"`sqlname=$tablename$today.sqlif [ -e /home/scripts/log_function.sh ]thensource /home/scripts/log_function.shelseecho -e “\033[41;37m /home/scripts/log_function.sh is not exist. \033[0m”exit 1fibackup(){log_correct "开始执行备份脚本,删除14天过期备份"#backupmysqldump -h$host -u$user -p$passwd $dbname --tables $tablename >$backup_path/$sqlname}delete(){#delete expired 14 daysfind $backup_path -mtime +14 -type f -name '*.sql' -exec rm -f {} \;}size(){cd $backup_pathdd=`du -sh $sqlname`if [ -s ./$sqlname ] ; then log_correct '调休表备份正常' log_correct $ddelse log_error '调休表备份失败'fi}backupdeletesize
核心命令如下: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
后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #mysql 表备份