在使用增量备份的时候,首先了解下全备份,或者说要先做全备份,再配合增量备份,这样才是一个完整的备份解决方案。
全备份:点击打开链接
增量备份配置:
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打开。
注意,新增数据库和删除数据库都会记录在此类文件中。(还有,任何查询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,是不会自动删除日志文件的。如果日志文件过大,且业务需要,只能手动归档压缩备份。
比如,每周做一个全备份,那么我们就可以一周做一次增量备份删除了。