了解这些服务之间的区别
|
默认配置 log_bin代表是否开启了binlog,其默认值为OFF。
你可以在MySQL中通过命令show binary logs查看所有的binlog文件 图片 查看binlog 知道了有哪些文件之后我们可以来看看binlog文件中的内容,可以在MySQL通过show binlog events命令来查看。
show binglog events 查看第一个binlog文件,我们也可以通过in参数来指定,假设我们想看的文件名是mysql-bin.000001,那么可以使用命令show binlog events in 'mysql-bin.000001'来查看指定的binlog文件 读写分离的架构应用的其实非常广泛,就比如MySQL,还有Redis,以及我们熟悉的Zookeeper,Zookeeper的Follower收到读请求不会自己处理,而是会将读请求转发给Leader,感兴趣的可以自己下来了解一下,这里就不偏题了。 1. 复制原理 MySQL的主从复制支持两种方式:
基于语句的复制在MySQL3.23中就已经有了,而基于语句的方式则在5.1中才实现。其本质都是基于主库的binlog来实现的,主库记录binlog,然后从库将binlog在自己的服务器上重放,从而保证了主、从的数据一致性。 1.1 binlog MySQL中日志分为两个维度,一个是MySQL服务器的,一个是底层存储引擎的。而上文提到的binlog就是属于MySQL服务器的日志,binlog也叫二进制日志,记录了所有对MySQL所做的更改。 基于行、语句的复制方式跟binlog的存储方式有关系。binlog有三种存储格式,分别是Statement、Row和Mixed。
为什么会有这么多方式呢?因为Statement只会记录SQL语句,但是并不能保证所有情况下这些语句在从库上能够正确的被重放出来。因为可能顺序不对。 MySQL什么时候会记录binlog呢?是在事务提交的时候,并不是按照语句的执行顺序来记录,当记录完binlog之后,就会通知底层的存储引擎提交事务,所以有可能因为语句顺序错误导致语句出错。 1.2 查看binlog
这里拿MySQL 5.6举例子,binlog默认是处于关闭状态的。我们可以通过命令show variables like '%log_bin%' 来查看关于binlog的配置。 (编辑:南昌站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
