双重确认主要分为两个步骤:首先从库将接收到的binlog写入自己的中转日志(relay log),这样就能够保证在从库停机重启之后能够从上一次同步的点继续同步;第二,当从库将中转日志交给sql_thread进行执行时,执行之前将会再次验证该中转日志是否与主库日志一致,从而确保在写入数据之前确保该数据已经被主数据库正常执行过,从而保证数据的一致性。
/* 双一配置示例 */ # 主数据库my.cnf配置 [mysqld] log-bin=mysql-bin # 启用二进制日志 server-id=1 # 设置服务ID # 从数据库my.cnf配置 [mysqld] log-bin=mysql-bin # 启用二进制日志 server-id=2 # 设置服务ID relay-log=mysql-relay-bin # 设置中转日志 read-only=1 # 设置只读 replicate-do-db=testdb # 设置复制数据库名
通过上面的示例,可以看出MySQL双一设置的简单配置流程,同时也能体现出MySQL数据库为什么在众多数据库中具有广泛的应用和用户群体。