公司一直是全备+ binlog,但是如果单个库出现问题怎么办,在进行完整恢复的话,第一会耽误时间,第二会影响其它数据库,第三如果数据量大,对于库的恢复也是问题,所以我提出了,除了全备,还要做分库备份,只要更灵活,出现问题,直接恢复单库(方便、快捷)
,,下面直接上脚本
1,将MySQL自带库外的其他库进行备份
# !/bin/bash # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #,美元的名字:,,,,,,,,Store_backup.sh #,美元版本:,,,,,v1.0 作者:美元#,,,,,,,,邱月涛 #,组织:美元,www.yi * * * * * * . cn #,Create 美元;日期:2017-06-03 #,描述:美元,,MySQL store Backup #用于MySQL 分库备份,并保留30天数据 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # source /etc/摆在/功能 一天=' date + % F ' BACK_DIR="/home/备份/mysqlbackup” dbus="根" DBPASSWD="你自己的密码” BIN_PATH="/usr/bin " 日志="/home/备份/mysqlbackup/mysqlback.log” # #,Close all  tables 以及refresh log # # # # " $ BIN_PATH "/mysql -u “dbus美元”,- p“DBPASSWD美元”,-e “flush 日志” # " $ BIN_PATH "/mysql -u “dbus美元”,- p“DBPASSWD美元”,-e “flush tables  with read 锁” echo “mysqldump start  date + % F \, H \ %: % M \: % S’”,在祝辞,“美元日志” # #,Each backup  database 用,target 位置;# # # # for 小姐:“拷贝”BIN_PATH“美元/mysql -u “dbus美元”,- p“DBPASSWD美元”,-e “show 数据库”,| grep -vE “数据库| information_schema”” ,做的 ,,,,,,,if [!大敌;-d “BACK_DIR美元”/拔摇泵涝?];然后 ,,,,,,,,,,,,,,,mkdir -p ,“$ BACK_DIR "/" $我” ,,,,,,,,,fi " $ BIN_PATH "/mysqldump -u “dbus美元”,- p“DBPASSWD美元”,——default-character-set=utf8 ——opt ——lock-tables -f ——日志错误=" $日志",“我美元”,祝辞,“BACK_DIR美元”/拔摇泵涝?天美元. sql ,才能完成 echo “mysqldump stop  date + % F \, H \ %: % M \: % S’”,在祝辞,“美元日志” echo ”“,在在“美元日志” # #,Delete 30, days ago backup files # # # # for RM 拷贝”BIN_PATH“美元/mysql -u “dbus美元”,- p“DBPASSWD美元”,-e “show 数据库”,| grep -vE “数据库| information_schema”” ,才能做 rm -rf “BACK_DIR美元”/癛M”美元/$ (date + % F ——日期=30,days 前). sql 做,,,
效果如下:
[root@files mysqlbackup] #, tree -L 1,/home/备份/mysqlbackup/home/backup/mysqlbackup ├──,luence ├──,主诉 ├──,h ├──我的 ├──mysql ├──mysqlback.log ├──ypp └──,,t
将脚本加入crontab定时任务即可。
[root@files mysqlbackup] #, crontab - l 0,,4,*,*,*,/根/壳/mysqlbackup。sh