💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# MySql数据库的备份与恢复 >[success]项目上线后,难免会遇到一些灾难年性的数据丢失,所以如何做好数据库备份,把损失降到最低是重中之重。 ## 数据库的备份方式 >[success]数据库的备份方式有很多种,包括全量备份和增量备份等。在这里要介绍的是全量备份和二进制日志。 ### 1. 全量备份 即按照指定时间对数据库完全备份,但是这种备份方式占用磁盘空间,并且时效性差,对于突发时件,较难处理。 在linux服务器下,全量完全备份可以采用脚本加定时任务的方式: ~~~ //备份脚本 /usr/local/mysql/bin/mysqldump [数据库] >sql.sql ~~~ >[danger]完全备份可以加入定时任务,每天备份,并且服务器上保留近30天的备份数据 ### 2. 二进制日志 >[success]这种方式是咱们这里要介绍的注点,因为他可以帮助咱们进行数据库数据的实时回滚。如果再配合完全备份,可以这处理一些灾难性的数据丢失。 运用场景:如一项目数据更新频繁,如果数据库目前采用全量备份方式(每天凌晨3点备份),但是如果在某天下午,突然误删或者误修改了某些记录。那么这里,就很难处理了。如果操作记录少的话,可能还可以手工恢复,如果量大的话就麻烦了。 >[danger]像这种情况,就可以借助于`二进制日志`进行恢复,但是要配合全量备份。 #### MySQL中的日志 >[warning] MySQL中有六种日志文件,分别是: > 重做日志(redo log) > 回滚日志(undo log) > 二进制日志(binlog) > 错误日志(errorlog) > 慢查询日志(slow query log) > 一般查询日志(general log) > 中继日志(relay log)`。 >其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重要的意义。 #### 二进制日志(binlog)的特点 >[danger]它记录了某时间段内所有的`增删改`的操作。如果需要恢复某段时间的数据,只需要重新执行一遍对应的SQL即可。