mysql17---增量备份
Posted 672530440
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql17---增量备份相关的知识,希望对你有一定的参考价值。
mysql增量备份: 全备份是: (增量备份一定要看日志的时间和位置节点) mysql数据库会以二进制的形式,把用户对mysql数据库的操作记录到文件中,不用使用定时器了。当用户希望恢复的时候,可以使用备份文件进行恢复。 会记录dml语句,创建表的语句。不会记录select语句(对数据库本身没有影响)。 会记录1.操作语句本身。2.操作的时间。3.操作的位置。 如何使用增量备份文件进行恢复。 步骤: 1.配置my.ini或者my.conf文件,开启增量备份。(同一个机器可以安装2个mysql,只要版本号不一样就可以) #指定增量备份文件路径 server-id=1 log-bin=D:\\MYSQL\\mysql-5.7.20-winx64\\binlog\\mylog 2.重启mysql,得到文件:(我的是在mysql的根木生成的,并没有在mylog目录生成) mylog.index是索引文件,记录的是有哪些备份文件。 mylog.000001是备份文件,真正存放对数据库操作的文件。 可以使用mysqlbinlog查看备份文件的内容 :mysqlbinlog 文件路径 $ mysqlbinlog /d/MYSQL/mysql-5.7。(mysql把每一个操作的时间和位置记录下来,可以根据时间的位置来恢复)(每次增加一条记录文件的修改时间就会改变) /* # at 794 #180109 16:13:17 server id 1 end_log_pos 825 CRC32 0x4c8f791e Xid = 21 COMMIT/*!*/; SET @@SESSION.GTID_NEXT= \'AUTOMATIC\' /* added by mysqlbinlog */ /*!*/; DELIMITER ;*/ 3.现在把表aaa删掉。根据日志把文件aaa恢复。如果能恢复到drop之前就可以了。 # at 3176 //位置 #180109 16:22:08 server id 1 end_log_pos 3292 CRC32 0x6f838f66 Query thread_id=5 exec_time=0 error_code=0 SET TIMESTAMP=1515486128/*!*/; //时间点 DROP TABLE `aaa` /* generated by server */ /*!*/; SET @@SESSION.GTID_NEXT= \'AUTOMATIC\' /* added by mysqlbinlog */ /*!*/; DELIMITER ; mysqlbinlog --stop-datetime="2018-01-09 16:49:56" D:\\MYSQL\\mysql-5.7 | mysql -uroot -p //截止到这个时间 mysqlbinlog --start-datetime="" d:/binlog/mylog.00001 | mysql -uroot -p //从这个时间开始 mysqlbinlog --stop-position="3176" d:/binlog/mylog.00001 | mysql -uroot -p //截止到这个位置,就可以恢复了。 mysqlbinlog --stop-position="6500" D:\\MYSQL\\mysql-5.7 | mysql -uroot -p 备份文件也要备份。一周一个全备份(mysqldump)。那么这个增量备份的过期时间大于等于7天。
以上是关于mysql17---增量备份的主要内容,如果未能解决你的问题,请参考以下文章
mysql大网站数据库的备份,怎么进行增量备份和完全备份快速一点,用啥工具吗,还是代码!