高可用MySQL集群实战教程,详解主从复制搭建步骤
在实际的开发环境中,数据的重要性不言而喻,每一个数据都是有其价值的,提供安全可靠的数据保障是技术与运维部门的职责所在;为了保障数据的安全性,大多数的开发都采用了数据库的主从复
在实际的开发环境中,数据的重要性不言而喻,每一个数据都是有其价值的,提供安全可靠的数据保障是技术与运维部门的职责所在;为了保障数据的安全性,大多数的开发都采用了数据库的主从复制,其中MySQL集群主从复制也是保障MySQL数据库数据安全的一道坚不可摧的防线。 我们试想一下,如果我们的数据库只有一台服务器,那么很容易产生单点故障的问题,比如这台服务器访问压力过大而没有响应或者奔溃,那么服务就不可用了,再比如这台服务器的硬盘坏了,那么整个数据库的数据就全部丢失了,这是重大的安全事故; 为了避免服务的不可用以及保障数据的安全可靠性,我们至少需要部署两台或两台以上服务器来存储数据库数据,也就是我们需要将数据复制多份部署在多台不同的服务器上,即使有一台服务器出现故障了,其他服务器依然可以继续提供服务; 主从复制是指服务器分为主服务器和从服务器mysql集群,主服务器负责读和写,从服务器只负责读,主从复制也叫 master/slave,master是主,slave是从。 一般情况下,MySQL集群主从复制的具体架构还得看数据量大小来定,数据量规模较小的情况下,使用一主一从的架构的较多。一主一从的弊端就是容易出现单点故障,一旦主库故障便不能进行写入操作,所以,数据量较大时就需要使用处理高并发的思想来解决问题了,比如:一方面可以做分压处理(Nginx集群,MySQL集群等等),一方面可以做异步处理,用时间换空间(ActiveMQ消息队列)。MySql高并发的处理方案就是多主多从,可以极大地提高数据库的容灾能力,降低磁盘I/O访问的评率,提高单个机器的I/O性能。 下面我们来看看MySQL集群主从复制的具体步骤: 1. 当 master 主服务器上的数据发生改变时,则将其改变写入二进制日志文件中; 2. salve从服务器会在一定时间间隔内对 master 主服务器上的二进制日志进行探测,探测其是否发生过改变; 3. 如果探测到 master 主服务器的二进制日志发生了改变,则开始一个 I/O Thread 请求 master 二进制事件; 4. 同时 master 主服务器为每个 I/O Thread 启动一个dump Thread,用于向其发送二进制事件; 5. slave从服务器将接收到的二进制事件保存至自己本地的中继日志文件中; 6. salve 从服务器将启动 SQL Thread 从中继日志中读取二进制日志,在本地重放,使得其数据和主服务器保持一致; 7. 最后 I/O Thread 和 SQL Thread 将进入睡眠状态,等待下一次被唤醒; mysql要做到主从复制,就是A服务把自己所做的增删改的操作全都记录在日志中,B数据库就根据这份日志上面的操作在自己身上再操作一遍,这样就实现了主从复制; 如果在不使用中间件mycat的情况下,需要使用spring框架提供的AbstractRoutingDataSource类,通过重写它的方法,可以实现数据源的切换。 总而言之,MySQL集群主从复制的存在是符合客观规律的,既实现服务器负载均衡,又通过复制实现数据的异地备份,从而提高了数据库系统的可用性。 看完了本文对MySQL集群主从复制还有疑惑的小伙伴,可以结合动力节点的MySQL主从复制教程,更深入地理解其原理,教程主要从MySQL集群架构解析到架构部署再到集群架构测试,一步步带你部署企业级的MySQL数据库集群项目,熟悉各个环节技术点,提升数据库架构设计能力。 (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |