mysql数据库可靠性分析

mysql数据库可靠性分析,第1张

mysql数据库有undo空间5种mysql做可靠性分析的方案:1.MySQL Clustering(ndb-cluster stogare)简介:MySQL公司以存储引擎方式提供的高可靠性方案,是事务安全的,实时复制数据,可用于需要高可靠性及负载均衡的场合。该方案至少需要三个节点服务器才能达到较好的效果。成本:节点服务器对RAM的需求很大,与数据库大小呈线性比例;最好使用千兆以太网络;还需要使用Dolphin公司提供的昂贵的SCI卡。优点:可用于负载均衡场合;可用于高可靠性场合;高伸缩性;真正的数据库冗余;容易维护。缺点:随着数据库的变大,对RAM的需求变得更大,因此成本很高;速度:几乎 比典型的单独服务器(无千兆以太网,无SCI卡,存储引擎相关的限制少)慢10倍。应用场合:冗余,高可靠性,负载均衡2. MySQL / GFS-GNBD/ HA (Active/Passive)简介:如果多个MySQL服务器使用共享硬盘作为数据存储,此方案如何?GFS/GNBD可以提供所需的共享硬盘。GFS是事务安全的文件系统。同一时刻你可以让一个MySQL使用共享数据。成本:最多n台高性能服务器的成本,其中一个激活的,其他作为备份服务器。优点:高可靠性某种程度的冗余按照高可靠性进行伸缩缺点:没有负载均衡没有保证的冗余无法对写 *** 作进行伸缩速度:单独服务器的2倍。对读 *** 作支持得较好。应用场合:需要高可靠性的、读 *** 作密集型的应用3. MySQL / DRBD / HA (Active/Passive)简介:如果多个MySQL服务器使用共享硬盘作为数据存储,此方案如何?DRBD可以提供这样的共享硬盘。DRBD可以被设置成事务安全的。同一时刻你可以让一个MySQL使用共享数据。成本:最多n台高性能服务器的成本,其中一个激活的,而其他则作为备份服务器。优点:高可靠性;一定程度的冗余;以高可靠性名义来看是可伸缩的。缺点:没有负载均衡没有保证的冗余在写负载方面没有伸缩性速度:在读写方面相当于单独服务器应用场合需要高可靠性、读 *** 作密集型的应用4. MySQL Write Master / Multiple MySQL Read Slaves (Active/Active)简介:考虑不同的读、写DB数据库连接的情况。可以使用一台主服务器用于写 *** 作,而采用n台从服务器用于读 *** 作。成本:最多1台高性能写服务器,n台读服务器的成本优点:读 *** 作的高可靠性;读 *** 作的负载均衡;在读 *** 作负载均衡方面是可伸缩的。缺点:无写 *** 作的高可靠性;无写 *** 作的负载均衡;在写 *** 作方面无伸缩性;速度:同单独服务器;在读 *** 作方面支持得较好应用场合读 *** 作密集型的、需要高可靠性和负载均衡的应用。5. Standalone MySQL Servers(Functionally separated) (Active)多台功能分离的单独服务器,没有高可靠性、负载均衡能力,明显缺点太多,不予考虑。

1、MySQL性能卓越、服务稳定,很少出现异常宕机。

2、MySQL开放源代码且无版权制约,自主性及使用成本低。

3、MySQL历史悠久,用户使用活跃,遇到问题可以寻求帮助。

4、MySQL体积小,安装方便,易于维护。

5、MySQL口碑效应好,是的企业无需考虑就用之,LAMP、LNMP流行架构。

6、MySQL支持多种 *** 作系统,提供多种API接口,支持多种开发语言,特别是PHP。

SQL Server的优点众多,但是Microsoft SQL Server和其他数据库产品相比也存在着以下劣势:

1、开放性。只能运行在微软的windows平台,没有丝毫的开放性可言。

2、可伸缩性,并行性。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。

3、性能稳定性。SQLServer当用户连接多时性能会变的很差,并且不够稳定。

4、使用风险。SQLServer完全重写的代码,经历了长期的测试,不断延迟,许多功能需时间来证明。并不十分兼容早期产品。使用需要冒一定风险。

5、客户端支持及应用模式。只支持C/S模式。

 有一些有用的工具可以测试MySQL 和基于MySQL 的系统的性能。这里将演示如何利用这些工具进行测试。

mysqlslap

mysqlslap可以模拟服务器的负载,并输出计时信息。它包含在MySQL 5.1 的发行包中,应该在MySQL 4.1或者更新的版本中都可以使用。测试时可以执行并发连接数,并指定SQL 语句(可以在命令行上执行,也可以把SQL 语句写入到参数文件中)。如果没有指定SQL 语句,mysqlslap 会自动生成查询schema 的SELECT 语句。

MySQL Benchmark Suite (sql-bench)

在MySQL 的发行包中也提供了一款自己的基准测试套件,可以用于在不同数据库服务器上进行比较测试。它是单线程的,主要用于测试服务器执行查询的速度。结果会显示哪种类型的 *** 作在服务器上执行得更快。

这个测试套件的主要好处是包含了大量预定义的测试,容易使用,所以可以很轻松地用于比较不同存储引擎或者不同配置的性能测试。其也可以用于高层次测试,比较两个服务器的总体性能。当然也可以只执行预定义测试的子集(例如只测试UPDATE 的性能)。这些测试大部分是CPU 密集型的,但也有些短时间的测试需要大量的磁盘I/O *** 作。

这个套件的最大缺点主要有:它是单用户模式的,测试的数据集很小且用户无法使用指定的数据,并且同一个测试多次运行的结果可能会相差很大。因为是单线程且串行执行的,所以无法测试多CPU 的能力,只能用于比较单CPU 服务器的性能差别。使用这个套件测试数据库服务器还需要Perl 和BDB 的支持,相关文档请参考.

Super Smack

Super Smack是一款用于MySQL 和PostgreSQL的基准测试工具,可以提供压力测试和负载生成。这是一个复杂而强大的工具,可以模拟多用户访问,可以加载测试数据到数据库,并支持使用随机数据填充测试表。测试定义在"smack"文件中,smack 文件使用一种简单的语法定义测试的客户端、表、查询等测试要素。

Database Test Suite

Database Test Suite 是由开源软件开发实验室(OSDL,Open Source DevelopmentLabs)设计的,发布在SourceForge 网站上,这是一款类似某些工业标准测试的测试工具集,例如由事务处理性能委员会(TPC,Transaction Processing Performance Council)制定的各种标准。特别值得一提的是,其中的dbt2 就是一款免费的TPC-C OLTP 测试工具(未认证)。之前本书作者经常使用该工具,不过现在已经使用自己研发的专用于MySQL 的测试工具替代了。

Percona's TPCC-MySQL Tool

我们开发了一个类似TPC-C 的基准测试工具集,其中有部分是专门为MySQL 测试开发的。在评估大压力下MySQL 的一些行为时,我们经常会利用这个工具进行测试(简单的测试,一般会采用sysbench 替代),在源码库中有一个简单的文档说明。

sysbench

sysbench是一款多线程系统压测工具。它可以根据影响数据库服务器性能的各种因素来评估系统的性能。例如,可以用来测试文件I/O、 *** 作系统调度器、内存分配和传输速度、POSIX 线程,以及数据库服务器等。sysbench 支持Lua 脚本语言,Lua 对于各种测试场景的设置可以非常灵活。sysbench 是我们非常喜欢的一种全能测试工具,支持MySQL、 *** 作系统和硬件的硬件测试。(节选自《高性能MySQL》)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7231492.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存