MySQL数据库开源软件版本 生产环境GA版本如何选择

标签: News MySQL 数据库 | 发表时间:2012-03-31 16:54 | 作者:admin
出处:http://www.mysqlops.com

导读
很多技术朋友向我咨询过关于选择MySQL数据库软件产品的版本事宜,他们对于开源软件产品的版本选择没有头绪,不知道从何下手。不过,我们本文主要是介绍开源数据库产品的版本如何选择,如何选择生产环境的MySQL数据库版本?MySQL数据库版本的选择需要经过那些工序?需要注意那些事项?顺道分享下我们DBA团队是如何为生产环境,选择合适的MySQL数据库版本。

 

商业软件研发和发行公司,都会提供经过完整测试,甚至多种用户环境模拟测试及试用之后,才会推出稳定的生产环境版本软件,导致技术人员对于商业数据库软件的选择,一般不需要太多的顾虑与考虑。在大公司,像曾经带过的阿里巴巴DBA团队,对于Oracle数据库软件版本的选择,也是会对其新功能或改进点知识详细阅读,并且会做很多相关测试和研究工作。关于Oracle数据库产品的版本选择,大家可以通过新浪微博咨询Oracle数据库行业非常优秀的DBA Jametong

 

(一)   行业乱象

不管是大公司,还是中小型公司,有专职DBA的公司,还是无DBA的公司;都存在使用Alpha版本MySQL数据库产品的现状,甚至有些公司还是用开发版本MySQL数据库产品的情况。2009年以前的阿里软件、淘宝、阿里巴巴都大量存在使用Alpha版本的MySQL数据库,不过后来这样的事情没再发生,而是逐渐寻找机会升级完成版本的更换。像北京的去哪儿公司,依然采用MySQL5.5Alpha版本数据库产品,上海也很多大公司采用Alpha版本的数据库产品,就不一一点名,避免被口水淹没。对于那些没有专职DBA的公司,存在使用Alpha版本MySQL数据库,就更多更普遍。对于职业技能属于中下水平的DBA而言,选择MySQL数据库的版本可能存在一些困难,主要是没有意识到其存在的危害,以及没有人告诉他们该如何选择这些软件版本。

 

(二)   MySQL 数据库版本

对于MySQL开源数据库分为多个重要分支发展,目前拥有的分支分别为:MySQL Cluster、MySQL 5.1、MySQL5.5、MySQL6.2,每个分支版本都会遵循一个相同的流程,也即不同开发测试阶段的MySQL数据库版本,分别为:Development版本、Alpha版本、Beta版本、RC版本、GA版本,每个版本的含义与区别大家可以参考文章 MySQL数据库入门常识中的文字描述。

MySQL AB官方网站会把五种数据库版本都提供下载,主要是MySQL数据库属于开放源代码的数据库产品,鼓励全球的技术爱好者参与研发、测试、文档编写和经验分享,甚至包过产品发展规划,对于Development版本、Alpha版本和Beta版本是绝对不允许使用在任何生产环境的,肯定存在重大的问题或功能未完全实现。绝大多数情况下RC版本也是不允许使用在生产环境,毕竟这是一个GA版本之前,也即生产版本发布之前的一个小版本。另外,对MySQL 数据库GA版本,也是需要慎重选择,开源社区产品毕竟不是经过严格的测试工序完成的产品,是全球开源技术人员的自愿完成的,会存在比商业产品稳定性弱的缺陷。

(三)   MySQL 数据库GA 版本选择的流程

自甲骨文(注:Oracle)公司收购SUN及全资子公司MySQL AB之后,MySQL AB官方不再对开源社区贡献源码,以及众多创始人与技术人员的出走,大家对于MySQL AB 公司推出的新版本一定要更加仔细挑选,切莫盲目相信MySQL AB官方给出的测试报告。推荐大家参考的MySQL数据库GA版本选择的流程,如下所述:

1)         分析本企业业务,需要使用到MySQL那些基本功能和特性,特性重点方向研究为:MySQL复制、分区表、Plugin-innodb等;

2)         MySQL数据库产品线第一个GA版本推出时间,至少超过10个月,再考虑使用到生产环境;

3)         MySQL数据库产品线的最新GA版本,一般向后退3-4个版本的GA版本数据库,作为可选的目标;

4)         仔细阅读选择的目标数据库GA版本,若是为之前的版本修改了大量的BUG信息,则此GA版本慎重选择;

5)         仔细阅读目标GA版本数据库之后的第一版本,若是修改的BUG信息量非常大,直接放弃目标版本,向前推进一个版本号作为目标版本;

6)         按照第四、第五步骤所描述的办法,直到选定的版本之后的一个版本,BUG修改量不大,严重BUG极少,且不能为最新的GA版本数据库产品;

7)         详细阅读选定的数据库GA版本之后2-3个版本的BUG修复信息,主要是跟目标GA版本相关的,并且想办法重现,以及寻找规避的办法;

8)         对经过上述七个步骤挑选的GA版本,结合企业业务可能需要用的功能,都必须进行功能测试,以及业务模拟的性能测试;

9)         挑选的数据库GA版本,作为内部开发测试数据库环境,跑大概3-6个月的时间;

10)     优先企业非核心业务采用新版本的数据库GA版本软件;

11)     经过上述10个工序之后,若是没有重要的功能BUG或性能瓶颈,则可以开始考虑作为任何业务数据服务的后端数据库软件;

 

【编者加注】

很多企业的专职DBA可能没有这么多时间、精力或资源等,也可能根本不愿意花费这较长时间,或者企业急需选择一个数据库GA版本,还有一些企业根本没有专职DBA,而是运维或开发工程师代替的模式,可能不具备挑选数据库软件版本的能力。那么我们是否有MySQL数据库GA版本选择的捷径呢? 答案是有的,那么请多关注互联网行业大公司的DBA们或行业内优秀且严谨的DBA,从各种渠道去了解(注释:互联网企业DBA团队BLOG、ITPUB论坛、优秀DBA的BLOG),或者直接咨询内部人士,获知他们的核心业务数据库版本是多少?

后续我们再发布一篇文章,关于开源数据库mysql5.5.19版本选型过程,测试重现mysql5.5.19及相关版本存在的BUG信息,再补充一点信息,我们现在生产环境的数据库版本依然是:mysql-5.1.40,即将考虑采用mysql-5.5.19。

 

原创文章,转载请注明: 文章地址 MySQL数据库开源软件版本 生产环境GA版本如何选择

相关 [mysql 数据库 开源软件] 推荐:

MySQL数据库开源软件版本 生产环境GA版本如何选择

- - MySQLOPS 数据库与运维自动化技术分享
很多技术朋友向我咨询过关于选择MySQL数据库软件产品的版本事宜,他们对于开源软件产品的版本选择没有头绪,不知道从何下手. 不过,我们本文主要是介绍开源数据库产品的版本如何选择,如何选择生产环境的MySQL数据库版本. MySQL数据库版本的选择需要经过那些工序. 顺道分享下我们DBA团队是如何为生产环境,选择合适的MySQL数据库版本.

MySQL数据库的修复

- Xin - 博客园-首页原创精华区
找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:. 然后myisamchk 工具会帮助你恢复数据表的索引. 好象也不用重新启动mysql,问题就解决了. 当你试图修复一个被破坏的表的问题时,有三种修复类型. 如果你得到一个错误信息指出一个临时文件不能建立,删除信息所指出的文件并再试一次--这通常是上一次修复操作遗留下来的.

年度技术回顾之数据库、NoSQL、开源软件

- kezhuw - DBA Notes
本文已经首发于InfoQ中文站,版权所有,原文为年度技术回顾之数据库、NoSQL、开源软件,如需转载,请务必附带本声明,谢谢. InfoQ中文站是一个面向中高端技术人员的在线独立社区,为Java、.NET、 Ruby、SOA、敏捷、架构等领域提供及时而有深度的资讯、高端技术大会如QCon、免费迷你书下载如《架构师》等.

MySQL数据库的IO操作

- - haohtml's blog
         淘宝丁奇分享的PPT:MySQL数据库的IO操作,详细分享了四块的内容,并且告诉大家如何调整MySQL数据库IO操作相关的参数,给出了详细的选择策略,现替其整理成文章分享与此. 4.影响io行为的一些参数和选择策略. 一个简单的查询 select * from t where id>=(  select id from t where k1=100 limit 100000,1) limit 2;.

MySQL数据库优化总结

- - CSDN博客推荐文章
        对于一个以数据为中心的应用,数据库的好坏直接影响到程序的性能,因此数据库性能至关重要. 一般来说,要保证数据库的效率,要做好以下四个方面的工作:数据库设计、sql语句优化、数据库参数配置、恰当的硬件资源和操作系统,这个顺序也表现了这四个工作对性能影响的大小.        一、数据库设计   适度的反范式,注意是适度的.

Google数据库产品LevelDB对决MySQL

- - HTML5研究小组
去年一月份,Google发布了LevelDB. LevelDB是Key-Value嵌入式数据库管理系统编程库,目前的版本能够支持Billion级别的数据量. LevelDB是一个C++库,可按照字符串键值顺序映射. 源于其本身的良好设计,特别是LSM算法,LevelDB性能非常之高. 在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w.

excel数据导入mysql数据库

- - 互联网 - ITeye博客
1、excel另存为txt.       选中将要导出的数据列,然后另存为选择其它格式=>文本文件(制表符分割). E:\项目\fblike\game_code_san.txt. 2、txt导入到mysql数据库. load data infile 'E:\\项目\\fblike\\game_code_san.txt' into table game_code_san(code).

c/c++连接mysql数据库

- - CSDN博客数据库推荐文章
        由于项目需要,要用c/c++链接mysql数据库. 网上很多类似的解说,但是大部分都需要在本机器上安装完整版的msyql. 其实,有时候我们并不想在改变自己电脑上原有的环境,但是我们却希望通过我们的程序链接数据库. 比如:我在本机上已经安装了一个mysql,但并不是完整版的(比如appserv集成mysql或者wamp集成mysql),或者我的工作在局域网中,我只需要链接另外一台机器上的mysql.

理解MySQL数据库覆盖索引

- - haohtml's blog
看AUTO_INCREMENT就知道数据并不多,75万条. 很简单对不对?怪异的地方在于:. 如果换成MyISAM做存储引擎的时候,查询耗时只需要0.01s,用InnoDB却会是0.15s左右. 如果只是就这么点差距其实不是什么大不了的事,但是真实的业务需求比这个复杂,造成的差距也很大:MyISAM只需要0.12s,InnoDB则需要2.2s.,最终定位到问题症结是在这条SQL.

MySQL数据库设置主从同步

- - CSDN博客架构设计推荐文章
MYSQL主从同步是目前使用比较广泛的数据库架构,技术比较成熟,配置也不复杂,特别是对于负载比较大的网站,主从同步能够有效缓解数据库读写的压力. 1、可以作为一种备份机制,相当于热备份. 2、可以用来做读写分离,均衡数据库负载. 1、主从数据库版本一致,建议版本5.5以上. # 日志文件名 log-bin = mysql-bin # 日志格式,建议mixed binlog_format = mixed # 主数据库端ID号 server-id = 1.