MariaDB(mysql)之主主复制 mysql
1、主主复制说明 sql
MySQL主主复制结构区别于主从复制结构。在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另外一台服务器上,这样两台服务器互为主从,而且都能向外提供服务。 这就比使用主从复制具备更好的性能。 数据库
2、关于主主复制过程当中server-id的说明 服务器
由于主主复制架构中是两台服务器互为主从,因此两台服务器必须都有填制日志和中继日志,并且他们的server-id必须不能同样。若是server-id同样了,那么: 架构
一、数据写入到A服务器的数据文件和二进制文件中,而后发送给B的中继日志;B根据中继日志写入到磁盘数据文件中 性能
二、一样的,此时B服务器发生数据修改,因此它会把记录写入到二进制日志文件中,而后再发送给A服务器的中继日志;A根据中继日志写入到数据文件中 spa
三、A、B都有中继日志,因此从中继日志中读过来的数据修改操做会写入到二进制文件中;这样,双方的二进制日志一变化,就会发送给对方的中继日志(而数据实际上是相同的),这样不停地来来回回,就形成了死循环 线程
四、为了不这种状况,就应该为A、B服务器指定不一样的sercer-id,每一个服务器在复制数据时,会保留对方信息的server-id;所以,A服务器经过B服务器复制过来的信息到中继日志,发现server-id就是本身的,就没有必要在写在本地了,这样就避免了循环复制 日志
3、主主复制的实现 server
一、修改A服务器的配置
二、修改B服务器的配置文件
三、A服务器受权一个有复制权限的帐号给B服务器
四、B服务器受权一个有复制权限的帐号给A服务器
五、显示A服务器的状态信息,且去链接B服务器
六、显示B服务器的状态信息,且去链接A服务器
七、在A服务器上启动复制线程,并查看是否链接B服务器成功
八、在A服务器上启动复制线程,并查看是否链接B服务器成功
九、在A服务器上建立一个表
十、在A服务器上插入两条数据
十一、在B服务器上同步成功。一样的,在B服务器上插入2条数据,就会一样的同步到A服务器中去了
4、遗留问题
实验过程当中,只保证了在A服务器上插入的是奇数id,在B服务器上插入的是偶数id,但没能实验让它们按顺序插入!