mysql 增量备份

来源:互联网 发布:淘宝怎么好友代付 编辑:程序博客网 时间:2024/05/21 18:38

在使用增量备份的时候,首先了解下全备份,或者说要先做全备份,再配合增量备份,这样才是一个完整的备份解决方案。

全备份:点击打开链接

增量备份配置:

1、首先找到MySQL安装目录下my.ini或者my.conf文件。

如果不清楚安装目录的话,可以进入 mysql> select @@basedir as basePath from dual;

dual是亚元表,数据库中默认的一张空表。



2、在mysqld下面添加二进制备份路径。

    log-bin=E:/backup/mysql_backup



3、重启mysql服务,在E盘的backup目录下多了2个文件



4、打开index文件,内容是日志文件的路径。日志文件可以有多个,命名规则是log-bin中设置目录的后缀名,也就是mysql_backup后面加上6位数(从000001一直递增),

我们需要关注的是000001后缀的文件。我们可以通过mysql安装目录下bin文件中的mysqlbinlog.exe打开。


在cmd中,切换到mysqlbinlog.exe所在目录,输入需要打开的文件,如下:


注意,新增数据库和删除数据库都会记录在此类文件中。(还有,任何查询sql都不会记录的)。


因为每次操作的时间和“位置”都会被记录下来。所以要想还原数据有两种途径通过“时间”或“位置”。

通过时间还原:

--start-datetime="还原数据的起始时间"

--stop-datetime="还原数据的结束时间"

mysqlbinlog --start-datetime=“时间” 日志文件路径 | mysql -u用户 -p 从规定的起始时间还原到现在

mysqlbinlog --stop-datetime=“时间” 日志文件路径 | mysql -u用户 -p 从最开始还原到规定的结束时间

mysqlbinlog --start-datetime=“时间” --stop-datetime=“时间” 日志文件路径 | mysql -u用户 -p 从规定的起始时间还原到规定的结束时间

通过位置还原:

--start-position="还原数据的起始位置"

--stop-position="还原数据的结束位置"

mysqlbinlog --start-position=“位置” 日志文件路径 | mysql -u用户 -p 从规定的起始位置还原到现在

mysqlbinlog --stop-position=“位置” 日志文件路径 | mysql -u用户 -p 从最开始还原到规定的结束位置

mysqlbinlog --start-position=“位置” --stop-position=“位置” 日志文件路径 | mysql -u用户 -p 从规定的起始位置还原到规定的结束位置


再进行dml操作时,都记录下来,运用上面语句就可以还原到指定位置。

注意,在做增量备份时候,需要先做一个全备份,这样就可以保证安全性。再此,数据量庞大的情况,就需要开启定时删除增量备份文件,而且MySQL默认expire_logs_days=0,是不会自动删除日志文件的。如果日志文件过大,且业务需要,只能手动归档压缩备份。


对于不重要的日志,可以设置expire_logs_days 的值,且需要注意只支持99天。

比如,每周做一个全备份,那么我们就可以一周做一次增量备份删除了。


0 0