http://blog.sina.com.cn/s/blog_7e89c3f501012vtr.html 什么是高可用性? 很多公司的服务都是24小时*365天不间断的。比如Call Center。这就要求高可用性。再比如购物网站,必须随时都可以交易。那么当购物网的server挂了一个的时候,不能对业务产生任何影响
http://blog.sina.com.cn/s/blog_7e89c3f501012vtr.html
什么是高可用性?
很多公司的服务都是24小时*365天不间断的。比如Call Center。这就要求高可用性。再比如购物网站,必须随时都可以交易。那么当购物网的server挂了一个的时候,不能对业务产生任何影响。这就是高可用性。
高可用性2个问题:
如何共享数据或同步数据?如何处理failover?
解释failover,意思就是当服务器down掉,或者出现错误的时候,可以自动的切换到其他待命的服务器,不影响服务器上App的运行。
对于分布式数据库系统。如何架构才能保证其高可用性呢?以MySQL为例。
1. MySQL replication with manual failover
同步数据是采用MySQL replication的方法,在MySQL分表分块到主从已经解释。简单的说就是从库根据主库的日志来做相应的处理,保证数据的一致。通常还配合MySQL Proxy或Amoeba等进行读写分离减少服务器压力。manual failover,显然当Master挂掉时,利用本方式是需要手动来处理failover,一般来说是将slave更改为server。
可用性达到: 98%-99.9+%
2. Master-Master with MMM manager(Multi-Master Replication Manager)
同步数据的方式是Multi-Master Replication Manager,在MySQL分表分块到主从解释,多主多从的设置,是一个loop环形,每个DB既是前一个DB的Slave又是后一个的Master。优势就在于,一个Master挂掉,也还可以继续DB操作。每个DB都可以进行读写,分散压力。可用性达到:99%
3. Heartbeat/SAN
处理failover的方式是Heartbeat,Heartbeat可以看成是一组程序,监控管理各个node间连接的网络。当node出现错误时,自动启动其他node开始服务。Heartbeat必须解决的一个问题就是split brain,在网络中的一个node down掉后,每个node都会认为其他node down掉并尝试开始服务,因为产生数据冲突。通过SAN来共享数据。
SAN:Storage Area Network,是一种LAN来处理大数据量的传输,提供了计算机和存储系统之间的数据传输。各个计算机组成的集群可以通过SAN共享存储。

当server1挂掉的时候,Heartbeat监控到启动Server2的服务。而因为采用了SAN来共享了存储,Server2可以直接利用SAN网络中的数据。通过这种方式来提供高可用的解决方案。
可用性达到: 99.5%-99.9%
4. Heartbeat/DRBD
处理failover的方式依旧是Heartbeat。同步数据使用DRBD:Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。和SAN网络不同,它并不共享存储,而是通过服务器之间的网络复制数据。

可用性达到: 99.9%
5. MySQL Cluster(NDB Cluster)
MySQL Cluster也是由各个DB node组成一个cluster,在这个cluster中由网络连接。可以自由的增减node的个数来对应数据库压力。用synchronous replication(同步复制,要不同时成功要么同时失败)的方式来同步各个node的数据。然后对各个table进行partition,基于各个table的primary key。
采用了Shared Nothing Architecture的结构。不共享任何数据,而是每个node都同步好各自的数据。这样即使是PC也可以轻松被加入到Shared Nothing的结构中。
很难懂,我猜想MySQL Cluster的结构应该和Hadoop中的HDFS(Hadoop Distributed File System)相似,按照key来做partition,然后将各个partition通过synchronous的方式同步的保存到各个DataNode上,Management Node来监听管理Cluster,通过SQL Node来访问DataNode上的数据。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

在mysql中,可利用“ALTER TABLE 表名 DROP INDEX unique key名”语句来删除unique key;ALTER TABLE语句用于对数据进行添加、删除或修改操作,DROP INDEX语句用于表示删除约束操作。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

記事本++7.3.1
好用且免費的程式碼編輯器

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中