一.思路:
1.mysql备份采用全量备份+增量备份的方式进行数据实时备份,
2.恢复的时候采用先执行全量备份文件,然后再进行抽取增量sql进行执行
二.全量备份:
1.新建一个back_up.bat,内容如下:
@echo off
set “Ymd=%date:,4%%date:5,2%%date:~8,2%”
G:/mysql/database/setup/bin/mysqldump –opt -u root –password=* -R -E -F
-host=localhost -B databasename -X >
G:/mysql/database/backup/test_%Ymd%.sql
@echo on
G:/mysql/database/setup/bin/ 是数据库安装路径 G:/mysql/database/backup/
是数据库备份文件路径 -E:导出事件 -B:导出几个数据库。参数后面所有名字参量都被看作数据库名。 例如:mysqldump
-uroot -p –databases test mysql –host, -h:需要导出的主机信息 例如:mysqldump -uroot -p –host=localhost –all-databases –lock-all-tables, -x:提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭–single-transaction 和–lock-tables 选项。 例如:mysqldump -uroot -p –host=localhost
–all-databases –lock-all-tables
–password, -p:连接数据库密码
–port, -P:连接数据库端口号
–routines, -R:导出存储过程以及自定义函数。 例如:mysqldump -uroot -p –host=localhost –all-databases –routines
1 创建好之后通过windows的定时任务执行。
三.增量备份
增量备份首先要打开mysql的binlog
找到mysql安装路径下的my.ini文件并打开
找到[mysqlid]在下面添加
log-bin=“G:/mysql/database/binLog/binlog”(这个路径意思是将产生的binlog日志放到该路径下)
binlog_format=“MIXED”
保存并重启mysql服务,便可以在G:/mysql/database/binLog/路径下看到后缀为binlog.000001和binlog.index两个文件。
此处还有一个问题就是通过增量恢复怎么知道时间节点在哪里呢?
1.我在这里的解决思路是通过mysql的免密码登陆执行flush logs产生新的binlog文件,也是通过windows的定时任务去做。具体做法是在[mysqlid]下面添加skip-grant-tables,然后新建flushLog.bat,内容是mysql -uroot -p -e “flush logs”;然后通过定时任务去启动就可以在指定时间点生成新的binlog文件了。
2.通过在mysqldump命令中添加-F 指令刷新让其产生新的binlog日志。
四.数据恢复
1.首先执行最新的全量备份sql文件,全量备份时间应该和新建binlog时间节点一样
2.抽取最新的binlog日志的sql文件并执行(show master status)。
查看指定的binlog文件:show binlog events in ‘binlog.000001’;(这里的文件名以自己的为准);结果如下(网上找的,反正都差不多):
通过mysqlbinlog –start-position=29231 –stop-position=29346 binlog.000002 > G:\mysql\database\binLog\dept.sql这个命令将增量抽取为sql文件,然后进入mysql命令控制台,通过
“source **.sql” 命令执行(最好不要用navicate类似软件,试过,好像有问题)
五.定时清除binlog日志文件
为了避免太多的日志占据磁盘空间,最后再将日志定时清除做一下,通过修改my.ini文件中的设置就可以了
//修改expire_logs_days,x是自动删除的天数,一般将x设置为短点,如10;
expire_logs_days = x
//二进制日志自动删除的天数。默认值为0,表示“没有自动删除”
————————————————
版权声明:本文为CSDN博主「Y_FQY」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Y_FQY/article/details/82970728