「这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战」
MySQL中的日志
我们讲过了,MySQL怎么导出数据,通过自带的mysqldump就可以将数据以sql的形式导出到文件当中,之后我们就可以将该文件复制到我们的目标主机上执行。这种方式可以在小数据量下进行。但是如果数据库比较大,那么不管是导出还是恢复都不是很好的选择。MySQL为我们提供了binlog,从名字上可以看出,binlog实际上是一种日志,它记录了MySQL中发生的事件,包括各种修改记录。相比于mysqldump直接导出数据,binlog的用处不仅仅是用来恢复数据,它可以在主从架构中传播事件,让从库重播主库上的事件,从而达到数据一致的效果。它还可以根据日志的时间对数据进行恢复,可以对数据恢复进行更加细粒度的控制。要使用MySQL的binlog功能,我们需要在MySQL的配置文件中配置日志的路径:
--log-bin=日志文件路径
server_id=1
我们需要配置日志文件的路径,这个路径用来保存我们的日志,还有一个而外的参数是server_id是主从架构需要的参数,没有这个参数配置了日志的话MySQL是启动不起来的。配置了这些参数之后MySQL就能记录binlog日志了,在我们写入数据之后就可以在我们配置的文件路径看到写入的数据。
随着数据写入,日志文件会变得越来越大,为了便于管理,MySQL为我们提供了--log-bin-index[=file_name]和 max_binlog_size来配置日志的索引文件,当日志超过该配置项时,MySQL会以新的文件记录日志,防止单个文件过大。我们要定期清除过期的数据以防日志占用大量的磁盘,同时,小文件恢复起来也比较快。