在mysql当中,bing log主要功能是以事件的形式用来记录所有对数据库操作的ddl和dml语句,它记录的是操作而不是数据的值,属于逻辑日志,所以它在mysql的应用场景主要有下面两种。
①:数据恢复
当遇到删库跑路的操作后,需要进行数据恢复的操作时,我们需要拿到数据库的全量备份文件配合bing log来就行数据恢复(记得把删库语句去掉,对于删库后面记录的数据,需要前面的数据恢复后再就行校验,因为可能前面数据丢了,后面的数据可能存在误差和错误)。
②:主从复制
对于mysql的主从复制,主节点用来进行写操作,从节点就行读操作,形成读写分离,因为逻辑上来讲从节点只能用来进行读操作,当主节点进行ddl,dml语句操作后,那么就存在一个主从数据一致性的问题,bing log就是用来解决一致性问题,主节点会将bing log文件发送到从节点,从节点拿到缓存当中解析,将bing log记录的所有ddl,dml语句再执行一遍,从而达到数据一致性的效果。
从上面的操作中看出,可以延伸出另外的问题:从节点只能读吗?还有就是主到从就行数据一致性操作是需要时间的,对于需要实时监控数据的强时效性场景怎么办(如证券实时交易)?
所以对于读写分离的场景,从节点是有可能就行写操作的,因为我在从节点读,就必须是在从节点写的,才能保证实时监控的操作,我们可以对特定的数据在从节点就行写操作,但是这种业务场景比较少,一般有这种场景的用的是mssql(收费的)来解决强一致性的问题。