Berkeley DB三大产品收费模式
2009年11月5日
众所周知,Berkeley DB是开源的,个人用户可以下载做学习、试用。但实际上,Berkeley DB是Oracle的一个产品,也是要收费的。
英文好的同学,可以读一下我们的授权申明:http://www.oracle.com/technology/software/products/berkeley-db/htdocs/licensing.html。
英文不好的同学,我在此可以稍作解释(强调:我的观点仅作参考,Oracle公司拥有最终解释权):
1. Berkeley DB产品家族三大产品(BDB,BDB-JE和BDB-XML)都是采取双license的授权模式,即开源(免费使用)和商用(付费使用)两种模式。
2. 衡量两种授权模式的一个主要区别是 – “redistribute”,意即你是否将自己的应用程序(在你的应用中使用了BDB)发布给第三方,如客户,机构,附属机构,母公司,合作者,中间商,第三方的非营利组织等。
3. 举例子来说:
- 如果是个人用户做学习研究之用,可以选择开源授权,免费;
- 如果是个人用户在BDB上做一些应用,如果你的应用是开源发布的,可以选择开源授权(但要符合BSD、GPL等开源条款);如果是闭源,需要选择商业授权;
- 如果是在公司的商用项目使用,需要选择商业授权,即付费;
如果大家再有问题,或者不确定,欢迎留言。版权保护,也是保护到每个IT从业人员。
—
附件: Oracle官方网站给出TimesTen和Berkeley DB 产品家族在美国市场参考价格(见下图)。
关于Oracle产品的价格清单,请浏览官方网址: http://www.oracle.com/corporate/pricing/pricelists.html.
注意: 价格仅作参考,Oracle公司拥有最终解释权。

你第三点的第三个例子有漏洞吧。即使是商用项目,只要你把项目代码开源了,也可以使用开源授权。
@stvchu
这是一个好问题。我们的英文授权申明中是这样写的:The our open source license permits you to use Berkeley DB, Berkeley DB Java Edition or Berkeley DB XML at no charge under the condition that if you use the software in an application you redistribute, the complete source code for your application must be available and freely redistributable under reasonable conditions. – 我的理解是,如果你是免费发布(“freely redistribute”)你的开源项目,并且符合特定的条件(under reasonable conditions),是可以选择Berkeley DB的开源授权; 否则,你需要选择商用授权。但既然你是商用项目(不管你是否开源),你会免费发布吗?
我注意到很多人对Berkeley DB的商用收费不理解,甚至还有抵触。我想我还是解释一下,希望和大家探讨探讨,也希望得到大家的理解。
1. 在国外的一些商业应用中,即便是可以使用Berkeley DB免费的开源条款,但由于涉及到技术支持等问题,很多都十分愿意购买我们的授权。举个例子,如果用户在生产系统中使用并发现了Berkeley DB的bug(如数据丢失,事物恢复出错等问题;也有可能是自己开发的程序出错、使用不当等)。这时候如果是开源客户,我们出于手头项目关系,有可能要较长时间才能来看这些问题并提供解决办法;如果是购买了授权,则我们要放下手头工作,在最短的时间去fix这个bug。相对于你的商业应用的损失(时间、费用等),Berkeley DB的商用授权其实是不高的。我们很多的用户(收费的和不收费的),对于我们的支持都给予了很高的评价。比如说,在这个bdbchina的博客上,我们也是尽快的、免费回答大家的问题的吧?有些情况我们也知道是需要购买BDB license,我们没有因为你没有买license而拒绝回答,相反还是当作开源用户来尽快回复的。但实际上,Oracle OTN 论坛才是支持开源客户的;Oracle Metalink 是支持付费客户的。
2. 也许有人会说,和Berkeley DB差不多的产品,我有大把选择啊。现实情况是,很多初期不是使用Berkeley DB的项目,最终都转到Berkeley DB来了。为什么?那些目前看来和Berkeley DB差不多的产品,它们像Berkeley DB这样经历了将近20年的时间和实践检验了吗?有Oracle这么多的售后支持、专业的开发团队来支持吗?当你的项目达到一定规模以后(如运行了5年以上,用户过百万,数据量上到TB、甚至PB级别),那些产品还好用吗?当然,我们也了解中国的国情,很多项目的预算有限。Berkeley DB由于其提供的是API访问,基本上使用它的都是编程人员(不管是免费的,或者收费的客户),然后再推荐给项目决策者。但是我想好的项目决策者,在做决策时,是需要综合来考虑的。
3. 举几个例子:在今年10月份Oracle的全球开发者大会(2009/10,Oracle Open World at San Francisco),Berkeley DB的一个电信方面的用户叫verizon,用Berkeley DB产品来管理几百万的用户。据他们的反馈,在过去3年多来,他们的用户数一直在增加,但是部署的Berkeley DB集群一直在很好的工作,也没有宕机和使用专门的DBA去维护。另外,我们也有一些客户原先使用SQLite(替代Berkeley DB),刚开始一阵确实不错,但是当用到一段时间以后,发现数据丢失、错误无法恢复等问题,联系SQLite支持也没有多大进展;同时,随着业务不断发展,发现SQLite在并发修改(Update, Delete, Insert)、多事物并发处理的时候,性能达不到业务要求,于是迁移到Berkeley DB并主动购买授权。
4. 最后,我想强调:我们没有抨击对手的意思 – 说SQLite等对手不好。项目中用什么产品和工具,每一个决策者/用户应该享有自己的选择权。我们来自产品方的建议仅供你参考。当然,对于 Berkeley DB商用收费的问题,也希望大家给予支持和理解。
@chaohuang
首先,不管是以我个人身份还是公司身份,本身我们是不抵触商业授权的。
有一点我不是很理解,”open source”和”“freely redistribute””潜在的关系,可能这是个比较头痛的法律问题。我们可以邮件讨论。
@stvchu
抱歉 – 不是针对你的,别误会。是啊,很高兴和你邮件交流。
事实上用户们选择商用授权的原因是:在出问题的时候,由Oracle公司的专业程序员来解决问题所造成的成本以及效率要远远好于自己内部看代码解决所付出的。
不过嘛,国内大多数人的想法是:最好能免费先用,等出了问题需要支持了再付费。这正好跟授权模式产生矛盾了,结果就是只有那些非常关心自己数据安全的用户选择了BDB。Mysql倒是能满足那些人的想法,可是Mysql功能实在有点弱……
顺便问一下,BDB真的能很好支持PB级别的数据和相应程度的并发吗?即使是oracle支持这样大的数据量都需要有DBA一直跟着调优维护呢。
@hallenzzz
BDB产品家族是一个API的数据库,所有的操作(包括增删改、调优、维护)都是在自己程序来实现的。我们有看到很多客户在使用BDB构建下一代云计算/云存储系统,而通常这些系统都是分布式,大数据量的。
您好,因为感觉公司项目也许会用到实时数据库,所以想请问一下Berkeley DB的商业授权究竟是多少钱? 分为几个版本?每个版本的区别和价格,谢谢.
@yan
这个是Oracle销售能回答的问题了。据我所知,BDB根据你的业务需求相应的有很灵活的授权模式,各种价格也不一样的。你方便的话把你的联系方式发给我:chao.huang@o***le.com,从而我可以帮你转给Oracle的销售部门。
请问个人可以申请商业授权吧?
价格是怎样的?
可以邮件回复我吗? wfeii1980[at]gmail.com 谢谢!
@吃了没
个人可以购买BDB产品的商业授权以及服务。你可以参考Oracle官方网站给出的美国市场参考价格 – 见上文图片部分。
举例来说,以北美价格为例,假设你选择Berkeley DB Transactional Data Store:
- 如果在无线手持设备上(Wireless Handset,如手机)的价格为6美元/部,升级及支持费用为1.32美元/部;
- 如果在个人电脑或服务器上,每处理器(Processor)价格为5,800美元/Processor,升级及支持费用为1,276美元/Processor。
当然,中国市场具体的定价及策略应该会有差异。比如说单个CPU(有多个核心,即多核CPU)的情况会不一样,比如说大批量的手机部署上会打折,等等。具体的价格您需要向Oracle销售咨询; 或者您也可以给我发邮件,我来代您联系Berkeley DB的销售人员。我的邮件地址是 chao.huang@o***le.com。
I create a memory pool with flag(DB_CREATE) after ope a Db_Env with flag(DB_CREATE | DB_INIT_MPOOL |DB_SYSTEM_MEM), when I run their program at first time, it’s ok and create some db files such _db.001,_db.002,mpool, but after I close the program and run it again,their make a error said the system cannot find the specified file(“Mpool: PANIC:No such file or directory”), if I delete all files in the memory pool folder and run it again it will be ok? How can I fix this problem?
@kevin
Could you please check DB_SYSTEM_MEM usage and confirm if you need this flag? It might be problematic to be used on Windows. Please refer the details to http://www.oracle.com/technology/documentation/berkeley-db/db/programmer_reference/env_region.html.
如果是商用但不发布给其它人,也就是说我只在服务器上用,采用哪种授权?需要付费购买吗?
@iceer
如果你是自己公司内部的系统(即:该系统只有自己公司的员工使用,非盈利的),可以不用购买授权。
如果你是商用(即该系统提供服务给第三方的客户、或者合作伙伴等),我觉得你应该购买授权。
想问一下有什么好一点的berkeleydb中文支持论坛吗?
如果是商用但不发布给其它人,也就是说我只在服务器上用,采用哪种授权?需要付费购买吗?
感觉没有回复请求,如网易、腾讯等互联网公司使用BDB,只在服务器上使用,但服务提供给互联网用户使用,是否需要购买授权,谢谢
@newkey
如果是基于BDB的互联网应用,貌似是可以的不付费 (当然我不是律师,不代表最终答案)。 但是如果寻求技术支持等服务则需要付费了。这个和上文回复中提到的verizon的情形类似 – 好多“严肃”的公司是主动购买授权的,尽管条款没有限制一定要付费。比起Oracle Server, BDB的授权也要便宜很多了。
“freely redistribute”指的是“自由”还是“免费”?这是一个很关键的问题。
如果使用Oracle收购之前的版本,是不是不需要商业授权?
如果是在公司的商用项目使用,需要选择商业授权,即付费;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
错了,如果在公司使用商用项目,但是不需要DBD的support,自己搞定的,还是免费。
只是在发布产品的时候对应的DBD的license一起发布就好了。
@persmule
这个问题请仔细读一下授权协议。如果有不明白,请咨询Oracle销售部门。
@heqing
这个问题请仔细读一下授权协议。如果有不明白,请咨询Oracle销售部门。
@不明真相
你发布产品是以开源发布吗?如果是闭源的,据我的理解,也要收费。
开源也有很多方式,不一定是免费地。可以收钱。
@不明真相
一般来说,这种问题都是由使用方的律师来回答。打个比方,如果Oracle公司要在某产品中使用XXX公司的代码(或者二进制库),这时Oracle的律师要评估XXX公司的产品发布授权,达成一致结果后才可以使用。
所以,如果你公司要用BDB,请先去仔细咨询你公司的律师可不可以用,是不是免费用等。