mysql增量备份二进制日志shell脚本

#!/bin/bash
#?Date:2017-10
#?Description:backup?mysql?binary?logs
#?Version:0.1

db_user="root"
myisam_db="mysql"
db_passwd="123456"
host="localhost"
export?PATH="/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
backup_dir="/opt/backup/mysql/bin"
log_file="/opt/backup/mysql/bin/bin_log_file.log"
bin_index="/mydata/data/mysql-bin.index"
data_dir="/mydata/data"
mysql="$(which?mysql)"
$mysql?-u$db_user?-h$host?-p$db_passwd?-e?"flush?logs"
num=$(awk?‘END{print?NR}‘?$bin_index)
counter=0

start_time=$(date?+"%F?%H:%M:%S")
[?!?-d?$backup_dir?]?&&?mkdir?-p?$backup_dir
[?!?-f?$log_file?]?&&?touch?$log_file
echo?"Starting?backup?mysql?binary?logs?at?$start_time"?>>$log_file
for?file?in?`cat?$bin_index`
do
??base=`basename?$file`
??counter=$(expr?$counter?+?1)
??if?[?$counter?-eq?$num?];then
????echo?"Skip?$base"?>>$log_file
??else
????if?[?!?-f?$backup_dir/$base?];then
??????cp?-a?$data_dir/$base?$backup_dir?2>>$log_file
??????if?[?$??-eq?0?];then
????????echo?"Backup?$base?successfully"?>>$log_file
??????else
????????echo?"Backup?$base?failed"?>>$log_file
????????echo?"Backup?$base?to?$backup_dir?failed"|mail?-s?"MySQL?binary?logs?backup?failed"[email protected]localhost
??????fi
????fi
??fi
done
stop_time=$(date?+"%F?%H:%M:%S")
echo?"End?backup?mysql?binary?logs?at?$stop_time"?>>$log_file
echo?"?"?>>$log_file
exit?0

时间: 2024-11-09 10:27:17

mysql增量备份二进制日志shell脚本的相关文章

MYSQL增量备份(日志备份)

MYSQL数据库在使用过程中,一般都需要对使用的数据库进行备份处理,对于数据量较小时可以通过mysqldump命令进行数据库全备份,但是当数据库数据量达到一定程度之后,显然增量备份更加适合. MYSQL增量备份主要通过二进制日志文件进行增量备份.mysql数据库会以二进制形式自动把用户对mysql数据库的操作记录到文件,当用户希望恢复的时候可以使用备份文件进行恢复. 本文主要介绍如何实现在本地服务器上对远程服务器的数据库文件进行在本地服务器的备份.(以下的cmd均需跳转到mysql的bin文件夹

MySQL自动备份可通用shell脚本

最近在整理服务器的脚本,发现以前写的MySQL每天自动备份脚本写的不太好,就重新写了一个: #!/bin/bash####目录环境的配置####export datetime=`date +"%Y%m%d"`export mysqlbin_dir="/usr/local/mysql/bin"export datadir="`$mysqlbin_dir/mysql -h localhost -uroot -A -Bse "show variable

mysql实时增量备份 binlog日志备份

启用binlog日志实现对数据的增量备份: 日志存储位置: /var/lib/mysql/ 日志名称:主机名-bin.000001 或mysqld-bin.000001 binlog日志概述:二进制日志,记录所有更改数据的操作:默认超过500M自动生成新的日志: 修改主配置文件启用binlog日志 vim /etc/my.cnf [mysqld] log-bin  (或指定日志名log-bin=x.000001或者指定目录和文件名log-bin=/logdir/X.000001) max-bin

MySQL备份与恢复常用方法总结(mysqldump/xtrabackup/lvm快照备份/二进制日志及时点恢复)

MySQL备份与恢复常用方法总结 (mysqldump/xtrabackup/lvm快照备份/逻辑备份与恢复/二进制日志及时点恢复) 自言:学习在于总结,把所了解的类似东西放到一起更能加深记忆 一.了解备份相关知识 1)按服务器备份时状态可分为:     热备份:读.写不受影响:     温备份:仅可以执行读操作:     冷备份:离线备份:读.写操作均中止:2)按服务器备份数据集可分为:     物理备份:复制数据文件:     逻辑备份:将数据导出至文本文件中:3)按服务器备份数据量可分为:

MYSQL数据库自动本地/异地双备份/MYSQL增量备份

构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是重中之重的首要工作.电 子商务网站更加注重考虑数据安全,数据备份方案,包括本地备份.异地备份架构.其中Linux服务器的备份方案非常多,本文介绍一个大众化适用的解决方 案,通过编写Shell脚本来完成自动备份.本架构包括备份网站文件.数据库,自动本地备份并FTP上传备份脚本,完成相应本地备份.异地备

Mysql DBA 高级运维学习笔记-Mysql增量备份及数据恢复实战

大家好本文讲了mysql数据库的增量恢复.老男孩老师讲的很好很细,我自己呢整理了老师讲的部分内容,请大家将就看:文章内容比较多.比较乱,请大家认真总结知识,发现问题请及时批评指点~ 1.1 MySQL数据库的备份与恢复 1.1.1备份单个数据库练习多种参数使用 Mysql数据库自带了一个很好用的备份命令,就是mysqldump, 它的基本使用如下: 语法:mysqldump –u用户名 –p密码 数据库名>备份的文件名 范烈1:备份名字为cuizhong的库 a.查看备份前的数据 [[email

MySQL增量备份与还原详解

增量备份与恢复的特点 增量备份的优点是没有重复数据,备份量不大,时间短.但缺点也很明显,需要建立在上次完全备份及完全备份之后所有的增量才能恢复. MySQL没有提供直接的增量备份方法,但是可以通过mysql二进制日志间接实现增量备份.二进制日志对备份的意义如下: (1)二进制日志保存了所有更新或者可能更新数据库的操作. (2)二进制日志在启动MySQL服务器后开始记录,并在文件达到所设大小或者收到flush logs 命令后重新创建新的日志文件. (3)只需定时执行flush logs方法重新创

MySQL如何传输二进制日志

MySQL Replication可以很方便的用来做应用的读扩展,也可以帮MySQL实现一定程度的HA方案.MySQL通过向备库传送二进制日志来实现Replication,本文将通过二进制日志相关源代码的主要接口来解释:“MySQL如何传输二进制日志,是主库推,还是备库拉?MySQL日志传输的实时性如何?”. 在MySQL Replication结构中,备库端初次通过CHANGE MASTER TO完成Replication配置,再使用start slave命令开始复制.更细致的,备库通过IO

mysql增量备份脚本

#!/bin/bash BakDir=/home/webdata/mysqlbackup/mysqlbackup_log/ BinDir=/home/mysql/var/ LogFile=/home/webdata/mysqlbackup/mysqlbackup_log/bak.log BinFile=/home/mysql/var/mysql-bin.index mysqldump -udearedu -p --lock-tables --flush-logs --master-data=1