MySQL双主架构作为一种高可用架构,用于数据同步保障数据存储及访问,其实现原理由两部分组成:MySQL数据库服务器与中间件。
MySQL数据库服务器,是指MySQL实例,主从架构中的两个主服务器。服务器之间的数据同步是由其中的一台主服务器负责的,它负责收集数据库变化,将变化记录到中间件上,然后将其发送到第二主服务器。显然,MySQL的双主架构需要双主服务器的的双向访问,以保证数据的完整性和一致性。
中间件是提供给MySQL的一个外部系统,用于存放变化日志,并且能够实时将服务器上发生的变化记录到中间件上。比如,主服务器在收集数据变化后,会首先将变化记录到缓存,然后利用中间件发送到第二主服务器,然后再将变化的数据记录到第二主服务器上。
要实现MySQL双主架构,我们需要先准备两台服务器,分别为主服务器A和主服务器B,安装好MySQL环境,并且两台服务器可以双向访问。然后,安装好中间件,让两台主服务器实现连接,将变化的数据发送到中间件中。接下来,在主服务器A上添加配置,用于开启记录binlog功能。在MySQL中,可以用下面的SQL语句来实现:
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' IDENTIFIED BY 'replication_password';
SET GLOBAL binlog_format='ROW';
SET GLOBAL binlog_row_image='FULL'
最后,通过MySQL的CHANGE MASTER TO命令,在主服务器上指定另一台主服务器B,来实现主服务器A与主服务器B的双向同步。
以上是实现MySQL的双主架构的步骤,它的安装与配置要比单机MySQL更复杂,但能为系统提供更高的高可用性和容灾性能。