Sun收购MySQL?
在Planet MySQL上看到大量的文章在讨论Sun收购MySQL的事情,还真是有点吃惊。
Sun这几年市场萎缩得厉害,Solaris操作系统虽然不错,可是主机实在是拖了后腿。Java占据企业开发大半壁江山,可是估计Sun从中赚得不多,至少不如IBM多。记得去年ITPUB香山年会上,Sun全球副总裁王星耀先生的演进《开源与创新》,说Sun在开源社区贡献了最多的代码,却没有得到应有的地位,颇有点怨妇的味道。而从我们买的Sun代理的一个存储设备的情况来看,Sun的服务也确实让人寒心,这样一家公司,自身诸多问题就够让人头痛的了,今天居然花10亿刀收购MySQL,看来确实想在开源和数据库领域重新崛起,只是效果如何,还有待观望。
MySQL这两年的发展势头相当不错,对于Oracle等商业数据库的市场有一定的冲击,所以Oracle为了压制连续收购了其存储引擎InnoDB和Berkeley DB,逼得MySQl不得不从6.0开始开发自己的存储引擎Falcon,应该说打了MySQL一个措手不及。但是MySQL在web2.0公司中是相当受欢迎的,前景看好。这次被Sun收入囊中,还真不知是祸是福呢。淘宝网今年也打算将部分系统迁移到MySQL中,希望MySQL一路走好^_^
顺便提一句,Oracle最终还是宣布收购BEA了,85亿刀,好像比上次传闻的67亿美元贵了不少,NND,看来学BEA耍耍脾气还是必要的。
Sun公司简介
- 成立于1982年,创始人Andreas von Bechtolsheim、Vinod Khosla、Bill Joy和Scott McNealy
- 全球雇员34200人,2007财年营收139亿刀,市值也是139亿刀
- 崛起于web时代,也受创于web泡沫,直到去年才开始再次盈利(换了老大的结果?)
- 2006年之前老大是创始人Scott McNealy,现在则是Jonathan Schwartz(也是一个著名的Blogger,其博客居然还有中文版本的,牛)
- 开源的最大贡献者(王先生在2007年初就这么宣传了),目前开源产品有Open Office、Java (已经基于GPL)、GlassFish和NetBeans
- 企业文化轻松友好,很多雇员可以在家工作
- 公司总部位于加州的Santa Clara,在MySQL北美总部Cupertino的南方
- 公司曾经和现在的雇员为世界奉献了许多天才般的创新
说说MySQL的在线备份
从接触MySQL的那天起,就对MySQL的备份相当头大,不同的引擎有不同的备份方式(InnoDB hot backup, mysqlhotcopy),要么需要加读锁(mysqldump),要么需要额外的硬件成本(mysql replication),不像商业数据库都有统一而成熟的在线备份方案。这可能是开源的一个弱点,想法太多,选择太多,结果就是用户不知所措。当然,对于开源狂热者来说,这也许是开源的魅力和优点所在。
或许是MySQL也越来越商业化的结果,MySQL终于有计划引入新的联机备份机制了。在MySQL6.0中,将实现存储引擎独立的,无需阻塞DML(但还是会阻塞DDL)的online backup API,并且将实现简洁明了的备份恢复语法:
恢复:RESTORE FROM "filename.backup";
再结合二进制日志,还能实现联机备份基于时间点的恢复,对于要求高可用的企业级应用来说,这是个好消息。新的存储引擎,新的联机备份方式,MySQL6.0看来值得期待。
配置MySQL Replication
MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器(Master),而一个或多个其它服务器充当从服务器(Slave),利用该特性实现读写分离,是很多大型网站常用的数据库架构。MySQL的replication的配置相对于Oracle来说,要简单的多。本文演示了在同一台windows机器中配置单向异步复制的过程。这里的Replication是异步复制。MySQL的同步复制是MySQL Cluster中的一个特性。
要启用复制特性,MySQL必须使用二进制日志。关于二进制日志的特性,请参考官方手册(5.0,5.1,6.0)。
本例中MySQL的版本:
+-------------------------+
| version() |
+-------------------------+
| 5.0.37-community-nt-log |
+-------------------------+
1 row in set (0.00 sec)
MySQL的存储引擎
MySQL服务器采用了模块化风格,各部分之间保持相对独立,尤其体现在存储架构上。存储引擎负责管理数据存储,以及MySQL的索引管理。通过定义的API,MySQL服务器能够与存储引擎进行通信。目前使用最多的是MyISAM和InnoDB。InnoDB被Oracle收购后,MySQL自行开发的新存储引擎Falcon将在MySQL6.0版本引进。
MyISAM引擎是一种非事务性的引擎,提供高速存储和检索,以及全文搜索能力,适合数据仓库等查询频繁的应用。MyISAM中,一个table实际保存为三个文件,.frm存储表定义,.MYD存储数据,.MYI存储索引。
InnoDB 则是一种支持事务的引擎。所以的数据存储在一个或者多个数据文件中,支持类似于Oracle的锁机制。一般在OLTP应用中使用较广泛。如果没有指定InnoDB配置选项,MySQL将在MySQL数据目录下创建一个名为ibdata1的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的日志文件。
创建table时可以通过engine关键字指定使用的存储引擎,如果省略则使用系统默认的存储引擎: