`
talentluke
  • 浏览: 604429 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用复制来提升MySQL的高可用性和处理能力

 
阅读更多

摘自http://www.linuxdiyf.com/bbs/thread-64961-1-1.html

 

昨晚看了一晚上的MySQL文档,主要是关于MySQL的复制方面的文档,用的工具是MySQL的帮助文档+金山词霸。

终于比较大概的了解了如何通过复制来提升MySQL数据库的高可用性和处理能力,不过还没有经过实际的试验,但整体的思想是清楚了,下面把思路大概的描述一下,有机会再进行实验。

首先在服务器端采用1+N的模型来安装和配置MySQL数据库。1就是一个master数据库,N就是一至多个slave数据库。master数据 库必须启用binlog模式,关于这两种数据库的配置参见MySQL的文档。配置完成后就形成了一个1+N的复制集群,当对master进行修改时会自动 把修改的数据更新到N个slave数据库上。但是有一个注意的是,所有的修改操作包括添加、删除、修改等语句必须作用在master数据库上,这样才能使 数据可靠的复制到其他slave服务器上。另外,由于slave服务器只用作查询,因此选用MyISAM的存储引擎可以提高查询的速度。

而在客户端呢?如何使客户端程序能均衡的使用这些可用的服务器呢?而且更新操作只能对master进行处理。这个岂不是应用程序对数据库的操作逻辑非常的复杂?

其实没有那么复杂,MySQL为我们提供了接口可以将这些复杂的操作透明化。下面主要介绍采用JDBC的客户端如何工作在基于复制的集群环境中,其他编程语言请参照mysql的文档。

MySQL最新的JDBC驱动程序包中提供了一个驱动类就是 com.mysql.jdbc.ReplicationDriver 。这个驱动类允许在url中设置多个mysql主机地址。

在上面的url中,有三个主机地址分别是master1,slave1,slave2,其中ReplicationDriver 规定第一个主机是master主机地址,剩下的全部是slave主机。另外有两个参数必须指定为true,就是autoReconnect和roundRobinLoadBalance。

使用这个驱动和配置后还不能马上解决所有的问题,我们还需要对程序做一些小改动。

我们必须告诉驱动程序,哪些语句的执行是作用在master数据库,而哪些语句的执行作用在slave数据库上。

ReplicationDriver 是通过Connection对象的readOnly属性来判断该操作是否为更新操作。因此我们在执行一个sql语句的时候必须调用一下 setReadOnly告诉驱动程序当前执行的操作是否是只读。如果你是使用hibernate操作数据库的,那可以调用 Query.setReadOnly方法。

以上就是整个思路的大概描述,猜想肯定还有存在一些问题,例如因为数据的复制过程是异步的,也是说有可能执行了某个更新操作,但是查询的时候查不到的情况出现。当然这些问题只能在实际的过程中进行解决。

另外关于最新版本的MySQL 5.1有一个集群的功能,不过经过研究发现这个东西简直就是儿戏,实在搞不懂MySQL怎么会做这么不负责任的设计,因为这个特性要求数据库是整个 load到内存中的,也就是说你的数据有多大,内存就得有多大,怎么说呢? 如果你真的内存足够大,你去试试吧,反正这种方案已经被我否决了,希望MySQL能改进一下。

 

参考 http://www.knowsky.com/397775.html

分享到:
评论

相关推荐

    MySQL高可用解决方案_社区 .pdf

    本文将重点介绍MySQL高可用性的演变历程、常用解决方案,以及InnoDB Cluster和群组复制(MySQL Group Replication)的详解。 ### MySQL高可用性的演变 MySQL的高可用性经历了多次技术演进。从早期的版本3.23开始,...

    kubernetes部署mysql高可用

    本文将深入探讨如何利用Kubernetes实现MySQL的高可用性和读写分离。 一、Kubernetes基本概念 1. **Pod**: Kubernetes的基本执行单元,包含一个或多个容器,Pod中的容器共享存储和网络资源。 2. **StatefulSet**: ...

    Mysql数据库高可用性方案实践

    Mysql数据库是目前广泛使用的关系型数据库管理系统,其高可用性对于维持企业的业务连续性至关重要。高可用性方案指的是在一台或多台数据库服务器出现故障时,能够迅速切换到备用服务器上,从而保证数据库服务的连续...

    MySQL高可用方案搭建手册

    - 多主复制允许多个节点同时作为读写节点,提高了系统的并行处理能力,并提供了更高的可用性,但需要更复杂的冲突解决策略。 3. **群集(Cluster)** - MySQL Cluster提供了一种分布式、无单点故障的解决方案,...

    图书:MySQL高可用性Cookbook

    《MySQL高可用性Cookbook》是一本专注于MySQL...通过学习《MySQL高可用性Cookbook》,读者不仅可以掌握构建高可用MySQL环境的技术,还能了解到最佳实践和常见陷阱,从而在实际工作中提升MySQL系统的稳定性和可靠性。

    数据架构设计与实践MySQL在高可用演进之路V2.pdf

    【数据架构设计与实践:MySQL在高可用演进之路】主要探讨了如何通过不同技术手段提升MySQL数据库的高可用性,确保系统持续稳定地提供服务。高可用性(High Availability,HA)是衡量系统无中断运行能力的标准,通常...

    MySQL高可用架构演进

    MySQL作为广泛使用的开源关系型数据库管理系统,其高可用性设计是确保业务连续性和数据安全的核心部分。本文将深入探讨MySQL在不同阶段的高可用性演进,以及如何通过各种技术手段实现这一目标。 首先,我们要理解...

    mysql-MMM实现mysql高可用

    MySQL-MM(Master-Master Replication Manager)是一种用于MySQL数据库的高可用性和负载均衡解决方案,它构建在MySQL主主复制的基础上,提供了更为高级的管理和监控功能。在这个系统中,两个MySQL服务器互相作为彼此的...

    MySQL性能优化和高可用架构实践.pptx

    本书《MySQL性能优化和高可用架构实践》是一本详细介绍MySQL性能优化和高可用架构实践的书籍,旨在帮助读者提升MySQL数据库的性能和可靠性。本书的内容涵盖了查询优化的基本原则和最佳实践,例如索引的设计和使用,...

    MySQL高可用建议方案-20200402-V1.3.docx

    MGR提供了高可用性和容错能力,但配置和管理相对复杂。 **四、高可用建议方案** 选择适合的高可用方案应基于以下因素: - 业务需求:如数据更新频率、读写比例、数据敏感性等。 - 网络环境:网络延迟、稳定性对...

    高可用MySQL:构建健壮的数据中心

    《高可用MySQL:构建健壮的数据中心》一书是“MySQL High Availability”的中文翻译版,主要探讨了在真实环境下使用MySQL数据库时如何利用其复制、集群和监控特性来实现高可用性和横向扩展。本书由MySQL开发团队亲自...

    MySQL 高可用性

    通过增加MTBF和减少MTTR的方法来提升系统的稳定性,同时结合具体的业务需求和技术栈选择合适的高可用性方案。例如,对于对数据一致性有极高要求的应用场景,可以选择Percona XtraDB Cluster等同步复制技术;而对于...

    图书:MySQL 高可用性

    总的来说,《MySQL高可用性》是一本全面的指南,不仅适合那些正在寻找提高MySQL服务稳定性的DBA,也对开发者和系统管理员有极大的参考价值,它将帮助读者构建出更加健壮、高可用的MySQL环境。通过阅读这本书,你将...

    Percona XtraDB Cluster MySQL高可用性 运维实践

    总的来说,《Percona XtraDB Cluster MySQL高可用性运维实践》不仅涵盖了Percona XtraDB Cluster的基础知识,还深入讨论了在实际运维中的各种策略和技巧,对于希望构建高可用MySQL集群的IT专业人士来说,是一份宝贵...

    【27】基于MyCat的MySQL高可用读写分离集群实战课程下载【No215】基于MyCat的MySQL高可用读写分离集群实战课程下载 .txt

    此时,可以考虑采用分布式部署方案,通过增加MyCat实例数量来提高并发处理能力。 3. **故障恢复**:在主库故障时,需要快速定位问题并恢复服务。这通常涉及到自动化脚本和监控系统的集成,以实现实时监控与自动故障...

    mysql-MHA高可用

    MySQL高可用性解决方案MHA(Master High Availability)是一种在MySQL环境中实现主从复制故障自动切换的工具。MHA由两部分组成:MHA Manager和MHA Node。在给定的文件列表中,我们看到`mha4mysql-manager-0.56-0.el6...

    MySQL高可用架构MHA 搭建测试文档_v1.docx

    总的来说,MHA结合Keepalived构建的MySQL高可用架构提供了强大的数据库冗余和故障恢复能力,对于业务连续性和数据安全性至关重要。在企业环境中,这种架构能有效降低因数据库故障导致的业务损失,提升系统的整体稳定...

    MySQL主从复制实现高可用性和负载均衡.pdf

    MySQL主从复制是一种常见的数据库...综上所述,MySQL主从复制不仅提高了数据库系统的可用性和可靠性,还通过负载均衡和数据分离策略,增强了系统的并发处理能力和数据分析效率,是构建高可用数据库环境的关键技术之一。

Global site tag (gtag.js) - Google Analytics