« October 2006 | Digest首页 | December 2006 »

November 29, 2006

SQL Server 2005 的新特性及增强

出处:http://www.eygle.com/digest

(原文链接)

前言

SQL Server 2000从上市到现在已经整整五个年头。现在望眼欲穿的SQL Server 2005 终于发布了。五年磨一剑,SQLServer 2005 将是微软具有里程碑性质的企业级数据库产品。本文从用户关心的技术要点出发比较和讨论SQL Server 2005 相对它的前版本SQL Server 2000所做的重大改进或新增功能,介绍了SQL Server 2005 中最值得你为之升级的10 个理由。无论你是想了解或学习SQL Server 2005,还是正在评估或考虑升级到SQL Server 2005,本文都将对您有很好的参考作用。

升级理由一:数据分区

只有到了2005 版本SQL Server才拥有了真正的表和索引数据分区技术。这个技术一下子使SQL Server数据库从“青壮年”成长为成熟的企业级数据库产品,是一个里程碑性质的标志。数据分区技术极大加强了表的可伸缩性和可管理性,使得 SQLServer 处理海量数据的能力有了质的飞跃,是我认为最值得升级的一个理由。

数据库随着硬件和业务的发展变得越来越大。五年前大多数数据库还不过是十几个GB大小,很少超过TB级别的。现在几百个GB大小的数据库系统随处可见。如果没有数据分区技术而想对大数据库进行高效管理是很困难的。SQL Server 2005以前版本的一个问题是随着时间的推移数据库越来越大,备份需要的空间越来越多,如何处理数据库中的历史数据是很棘手的事情。有些客户可能会使用 DELETE语句定期定量删除大表中的历史记录,如在每个周末备份数据库后删除一个星期以前的所有数据。但是如果表有上千万行十几个GB 大小,那么使用DELETE语句删除数据库中上万行或高达20%数据的话,其性能很差。如果是在7 × 24小时运行的联机系统做这样的数据维护操作那么还会引起比较严重的阻塞问题。另外有些客户针对这个问题直接在方案设计上下功夫,比如按照年份月份星期设计表,然后定期把一些过时的历史数据表(注意是“表”)备份并DROP掉,使得数据库大小以及系统性能都能保持相对稳定。但是这种方法有一个弊端,即应用程序必须做相应的配合根据不同的时间访问对应的表,增加了数据库管理以及数据库访问逻辑的复杂性。

大表还容易带来性能问题。你也许会想到SQL Server 2000中的本地分区视图或分布式分区视图技术。是的,SQL Server2000 中的确已经有分区视图的概念,从SQL Server 7.0开始就有了。可惜分区视图的一个令人讨厌的地方是其管理、设计和开发比较困难,特别是分布式分区视图。如如何更新分布式视图就是个难题。所以尽管一个设计良好的分区视图系统会有很不错的性能改善,却因为繁琐的配置,管理和开发使得其没有在实际中得到充分应用。

现在,SQL Server 2005 引入了真正的数据水平分区技术,上面讨论的数据库增长问题和性能问题就迎刃而解。这个进步绝对不是一小步。数据库的大小不再是个问题。你可以根据字段值的范围将表和索引划分为多个分区从而可以轻松管理一个几个TB大小的数据库系统。无论数据如何增长,你都可以使用分区技术使得数据库大小保持相对稳定。其中特别值得称赞的地方是SQL Server 2005 中分区的管理和使用非常简单。分区的删除,添加,拆分、合并和移动,以及分区的数据装载等管理都非常容易。你可以对单独的分区进行维护而不是整个表。如果你需要大量装载数据,那么你可以先把数据并行的装入到一个新分区当中,建立索引,然后把该分区合并到当前分区中来。这个动作需要的时间极短。如果你需要删除历史数据,假设你已经设计好了历史数据分区,那么你仅仅需要把该分区移除即可,几乎可以一瞬间完成。分区也使得大型表的并发访问性能得到改善,特别是有多个CPU的数据库系统。那些需要交叉访问大量数据的查询将从分区技术中获益不少。

升级理由二:可编程性

CLR 集成

SQL Server 2005的可编程性是值得升级的第二个重要理由。从来没有哪一个版本能像SQL Server 2005 这样带来这么多编程方面的变革。说老实话,在我知道的瞬间我是惊呆了。有些变化是革命性的。如CLR(Common Language Runtime,公共语言运行时)集成。就先说说CLR集成。CLR集成是指你可以使用任何一种.NET 语言编写SQL Server 2005 的存储过程,触发器,函数,自定义类型,甚至是自定义的聚合函数。估计不少数据库软件开发商会为这个功能欢呼雀跃。想想以前的扩展存储过程,编程非常不容易。代码中一不小心就会引起内存泄漏。而且由于扩展存储过程运行在SQL Server 的进程空间中,不好的代码容易引起访问违规(Access Violation)导致SQLServer 异常。

现在有了CLR 集成,你可以轻松利用.NET语言的优势如其面向对象的封装、继承和多态特性,编写出那些需要对数据进行复杂数值计算或逻辑的代码,如字符串处理,数据加密算法,XML数据操作等等。由于CLR代码宿于SQL Server进程,你可以非常容易访问数据库中的数据。有了CLR,你不再局限于T-SQL,你现在立即拥有了.NET 框架类库提供的各种各样的类和例程,以及.NET语言提供的一致的编程模型,如错误处理。展现在你面前的是一个可以无限扩展的编程空间。你现在需要的仅仅是考虑什么时候使用T-SQL 语言,什么时候使用CLR。我猜测那些SQL Server软件开发商几乎会立即升级到SQLServer 2005 享受数据库编程的便捷。

T-SQL 语言增强

SQL Server 2005 中的T-SQL语言有了非常大的改进。其中笔者最为称道的是现在可以使用和C++或C#类似的TRYCATCH结构对T-SQL 进行错误处理了,大大简化了T-SQL错误处理编程。SQL Server 2005以前的版本通过设置@@error变量表示最后的T-SQL 语句执行成功与否。为避免@@error变量被新执行的语句重置,你必须为每一条可能出错的TSQL语句后面立即检查或保存@@error变量的值,并使用相应的G O T O 语句进行跳转,使得代码变得复杂难读。现在SQLServer 2005 有了TRY-CATCH结构你只需要把相关的一组语句放在TRY块里面即可。如果TRY块里面任何语句发生错误,就会执行相应的CATCH 块。你甚至可以使用嵌套的TRYCATCH来实现复杂错误处理流程。估计很多T-SQL语言使用者可能就为了这个TRY-CATCH 结构而迫不及待地升级到SQL Server 2005。

除了传统的DML(INSERT/UPDATE/DELETE)触发器,SQL Server 2005 现在也可以对DDL 语言(CREATE、ALTER或DROP 开头的语句)创建触发器了。这对于那些需要对DDL语言执行管理任务如审核以及规范数据库操作的用户特别有用。以前很多客户问我如何跟踪或避免表的删除操作,现在终于有了答案。你可以简单建立一个针对DROP 语句的触发器然后在触发器里面ROLLBACK 事务就可以回滚DROP 动作了。

SQL Server 2005 T-SQL 中还有一个很酷的OUTPUT 子句。现在你不费吹灰之力就可以获得INSERT 、UPDATE 或DELETE语句所影响的每行的信息。对于在INSERT或UPDATE操作之后需要检索标识列或计算列的值的场合OUTPUT子句非常有用。如获得数据INSERT 后该行的Identity的值,产生一些唯一流水号,验证刚刚插入的数据等等。一个有趣的例子是Identity值的取得。在SQL Server 2000 中你可以在INSERT 语句后立即调用IDENT_CURRENT()或SCOPE_IDENTITY()函数来得到INSERT 语句的Identity。现在你仅仅需要在INSERT 语句中指定output子句就直接得到刚刚插入的Identity值,实在太简单了,不是吗?

SQL Server 2005 中T-SQL 语言新增或加强的功能还有很多。如SQL Server 2005 新增加了一类排名函数RANK/DENSE_RANK/NTILE/ROW_NUMBER,轻松解决了开发者要求返回数据行中提供行号等排序功能。新增的 P I V O T 和UNPIVOT运算符使得对结果集进行行和列的旋转变换十分简单。公用表表达式(CTE)解决了T-SQL语言的递归查询问题,而使用 OPENROWSET 语句现在可以直接从文件里面执行大容量操作了。我觉得每一个改进都是那么有针对性,以至于使我相信这些T-SQL增强必定是SQL Server开发小组真正聆听数据库开发者心声的结果。

升级理由三:安全

SQL Server 2005 的安全功能是我认为值得升级的第三个理由。SQL Server 2005 的安全达到了前所未有的强大水平,有着比以前版本更清晰的安全模型即主体,安全对象和权限。在SQLServer 2000 中是用服务器级权限、数据库角色和数据用户权限的混合方式管理权限。而SQL Server 2005 统一使用GRANT语句管理主体对安全对象的权限,简化了安全管理。其中我认为最大的改进是用户和架构(schema)分离。在SQL Server 2000中如果用户不是DBO 且拥有对象,那么移除该用户将是很麻烦的事情。你需要首先使用sp_changeobjectowner改变该用户拥有的对象所有权,然后把所有引用该对象的代码做相应的修改。而在SQL Server 2005 中就不需要这样麻烦了,因为现在用户不再拥有对象。拥有对象的是schema 而不是用户。数据库中的所有对象都属于某个schema。对象的完整名字是server.database.schema.object,符合SQL- 99 标准,而不是以前的server.database.user.object 方式。删除用户仅需要改变schema的owner就可以了。不需要修改任何已存在的数据库访问代码,真的很方便。用户和架构分离还有一个好处就是对象的权限管理变得简单。你可以把某些对象集中于某个架构里面,然后对该架构设置权限,那么架构里面的所有对象就自动继承了同样的权限。

如果你需要保护数据库中的敏感数据,那么SQL Server2005 中的数据加密功能绝对值得考虑。以前不止一次有客户问我如何加密数据库中的某些数据,是否可以使用一些内部不公开的函数如PWDENCRYPT加密数据。我的回答是使用Windows的EFS(加密文件系统)功能加密数据库文件或在应用程序层对数据加密后再存储。现在用户期盼已久的数据加密功能终于在 SQL Server 2005 中得到实现,那些有机密数据需要保护的用户值得高兴了。SQL Server 2005不是简单的提供一些加密函数,而是把市场上已经成熟的数据安全技术引进到数据库中,有一个清晰的加密层次结构。SQL Server 2005 支持证书(certificate),非对称密钥和对称密钥算法,一是防止敏感数据被泄漏,二是防止数据被篡改。对称密钥支持RC4,RC2, TripleDES 和AES算法,而非对称密钥使用RSA 算法。证书其实就是非对称密钥中公钥的容器。密钥管理是安全中比较弱的部分。SQL Server 2005 每一层都使用证书、非对称密钥和对称密钥的组合对它下面的一层进行加密,提高了密钥安全性。出于性能考虑,一般不用加密强度大的非对称密钥或证书直接加密数据,而是使用对称密钥加密数据获得较快的性能,然后使用证书或非对称密钥加密对称密钥。

升级理由四:快照隔离

你还在为系统出现的阻塞(blocking)或死锁(deadlock)现象苦恼吗?快试试SQL Server 2005 中的快照隔离吧。通过行版本(row versioning)控制技术,SQL Server 2005 除了原来支持的四种事务隔离级别(脏读、提交读、可重复读、可串行读)外新增了一个快照(SNAPSHOT)隔离级别,有可能使阻塞或死锁成为历史。 SQL Server在TEMPDB中存放不同版本的数据行,select 语句读取这些不同版本的行,读操作不阻塞写数据,写操作也不阻塞读操作,这样那些由于读/ 写争用导致的大量死锁的系统将从中获得无穷益处。如果你的系统复杂难优化,那么升级到SQL Server 2005 试试快照隔离级别,也许会有意想不到的效果。

SQL Server 2005中的快照隔离可细分为两种即READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION。建议大家多使用前者,因为已提交读隔离可用于大多数现有应用程序,而不需要进行任何更改,其占用的TEMPDB空间也少。可以预见如果使用快照隔离级别,那么需要特别关注TEMPDB的大小和性能。你也许需要把TEMPDB放在有足够空间的单独磁盘上以提高性能。

考虑到快照隔离在避免阻塞和死锁方面的作用,我把它作为升级的第四个理由。

升级理由五:数据库镜像

对于那些要求高可用性的用户来说,数据库镜像也许是考虑升级的唯一理由。SQL Server 2005的前版本在高可用性方面提供了故障转移群集(Failover Cluster)和Log shipping方案。群集方案的一个好处是在一台机器发生问题时它可以提供极快的故障转移能力,在备份服务器上联机数据库,应用程序只需重新连接即可。群集方案的一个缺点是数据库放在共享盘上,有单点失效这个缺点,一旦共享盘失败将导致整个系统崩溃。所以群集方案一般都要结合严紧的备份方案一起使用。而 logshipping系统有一个时间上的延迟,且如果日志备份很大,传送速度也是个问题。SQL Server 2005引入的数据库镜像可作为故障转移群集或Log shipping 的替代或补充方案来提高数据库的高可用性。镜像的主要优点是它比前两者更容易管理,没有群集的单点失效缺点,也没有log shipping 的时间延迟。镜像服务器可以放在很远的地方,提高了作为备份服务器的高可用性。

数据库镜像需要两台或三台服务器。主服务器通过传送事务日志中的每个事务到镜像服务器来进行数据同步。每当数据库commit一个事务,该事务就会被同步到镜像服务器。如果事务安全设置为FULL,传送操作将为同步操作。同步操作可以确保将提交的事务提交给两个服务器,但可能会增加事务提交的时间。如果事务安全设置为OFF,操作将为异步操作。事务会在不等待镜像服务器的情况下提交,这将不影响主服务器事务的提交时间,但不能确保镜像也提交了该事务,所以在出现故障那一刻有可能有部分日志丢失。对于需要严格同步数据的镜像系统可以采取同步模式。而仅仅希望有个备份服务器又不影响性能的情况下可以使用异步模式(高性能模式)。无论那种模式,一旦主服务器出现问题,你可以手动实现故障转移或配置系统实现自动故障转移。

升级理由六:商务智能BI 增强

SQL Server 2005 对已经有或打算开发基于SQL Server 的商务智能方案的用户吸引力极大。SQL Server 2005中有关商务智能方面的增强很多,是升级的很好理由。首先是传统的DTS(Data Transformation Services)被新的IS(Integration Services)代替。SQL Server 2000 中的DTS用来在不同服务器之间转移数据,但对于复杂重复的工作流DTS倍感吃力。IS重新改写了DTS的数据流引擎,引入提取、转换和加载(ETL)数据的新编程体系,将数据流与控制流分开,开发能力大大加强,包部署、管理和性能方面也比DTS上了一个数量级。笔者看来,DTS终于从原来的小打小闹成长为成熟的IS 数据集成服务体系。

分析服务(Analysis Services)在SQL Server 2005 中也有很多改进。原来没有profiler想跟踪分析服务里面的语句非常痛苦。现在2005 终于支持profiler了。Profiler对性能调优和排查错误将非常有用。分析服务2005 真正具备了实时分析能力,新增加了四种数据挖掘算法,也支持.NET语言进行开发(如存储过程等)。至于报表服务,2005 版本中添加了报表生成器和模型设计器这两个新工具,支持报表拖拉设计。2005 的报表改进如新的打印功能、多值参数等。设计过报表的人员会深深知道多值参数的妙处。

另外,无论是IS、报表服务等都可以在类似Visual Studio的环境中开发,任务完成不过鼠标拖拉之间,非常容易上手。

升级理由七:全文搜索增强

相对前版本SQL Server 2005中性能提升最多的部分当数全文检索。SQL Server 2000 中的全文本检索和SQL Server 7.0中的差别不大,处于能用的水平。在SQL Server 2000中使用全文检索一个最大的痛苦是建立全文索引的性能不好,需要的时间太长,特别是在表很大的情况下。一个几千万行数据的表也许需要数个小时到数天时间才能完成全文索引的建立。SQL Server 2005全文检索在开发的时候就集中于三点:性能,集成,和可扩展性。据开发小组人员的简单测试,原来在SQL Server 2000中建立全文索引需要14天的表,现在只需要几个小时!几乎有上百倍的性能提升,只能用“惊异”来形容。其相关的全文检索语句也有30%~50%甚至更高的性能提高。性能方面的提高得益于全新设计的全文检索引擎。其中关键的一点设计是全文检索引擎现在使用共享内存和SQL Server 进行数据大规模并发交互,而不是原来基于逐行的方式,使得性能上了好几个数量级。

除了性能,SQL Server 2005 中的全文索引的集成性也大大加强。在SQL Server 2000 中很难对全文检索进行备份。一旦有数据库恢复或移动,你得重新重建索引。对于几百个GB的数据库,重建索引几乎是不能接受的恶梦。现在终于可以和数据库一起备份和恢复全文索引了。你不再需要在恢复数据库后重建全文索引了!恶梦终于成为历史。除了可以备份外,你也可以方便的改变全文索引的磁盘位置。你甚至可以在一个热备机器上把全文索引建立好,然后copy 这个索引到生产服务器上使用。

升级理由八:可用性功能增强

索引联机操作。除了数据库镜像,SQL Server 2005 中可用性还有很多其他提高。索引现在可以使用ONLINE关键字进行在线建立或重建或删除了。它的技术要点是在内存里面动态生成索引的另一个副本从而不影响原来查询的进行。一旦索引副本完成操作即替代原来索引成为当前索引。我认为索引联机操作的意义是很大的,因为很多数据库系统都有定期调整或维护索引方面的需求。有了2005 你无需担心业务的正常运行而大胆的对索引进行维护或修改。

页校验和。SQL Server 2005中的数据库页引入校验和增强了数据的可靠性。除了原来SQL Server 2000 中已有的TORN_PAGE_DETECTION 外,SQL Server 2005 新增实现了页的检验和(CHECKSUM)。你使用ALTER DATABASE语句的SET PAGE_VERIFY子句即可指定。它的原理是向磁盘中写入8K数据页面时,SQL Server计算整个8K页面内容的校验和并将该值存储在页头中。再次从磁盘中读取页时,SQL Server动态计算读取到的页面内容的校验和,并与存储在页头中的校验和值进行比较。如果不相等则意味着页面有物理损坏,需要检查IO硬件。另外设置检验和的另一个好处是还可以在备份和还原操作过程中使用RESTORE VERIFYONLY语句验证每一数据页的完整性从而确认备份文件没有物理损坏。

在线还原。在数据库的某一部分未恢复前,用户无法对该部分进行访问,但可以访问所有其他数据。SQL Server 2000中如果数据库在还原或recovery当中,用户不能访问数据库。这样如果数据库很大需要rollback或rollforward的事务很多的话,recovery的时间会出奇的长。SQL Server 2005 的在线还原功能使得数据库在很短的时间内变得可用。

升级理由九:复制增强

SQL Server 2000 中的复制功能已经很好。我这里把复制作为升级的一个理由因为SQL Server 2005在原来的基础上又增添了不少的功能。如peer-to-peer对等复制,可以在参与者之间相互进行复制,这样你可以采用对等复制在复制参与者之间建立某种程度的负载平衡。合并复制现在支持通过HTTPS进行数据同步,可以方便建立基于INTERNET 的复制。发布表现在可以使用标准的T-SQL语句如Alter Table等进行结构修改然后被复制而不是仅仅局限于使用sp_repladdcolumn和sp_repldropcolumn存储过程。在SQL Server 2000 中,仅支持向其他数据库(如DB2或Oracle)发布数据,而在SQL Server 2005 中,可将Oracle 数据库直接复制到SQL Server。可以从备份中初始化事务性订阅而不是仅仅局限于从快照对复制进行初始化,等等……

升级理由十:异步处理能力

SQL Server 2005 通过引入全新的Service Broker 提供了革命性的异步处理能力。Service Broker提供了一个功能强大的异步编程模型。它为数据库应用程序增加了可靠、可扩展、分布式异步功能异步编程,允许程序仅仅在资源可用时才去执行占用大量资源的任务,以此来缩短响应时间,提高吞吐量。在我看来,Broker的最大好处一是异步执行能力,提高了可伸缩性,二是可靠执行,三是集成于数据库中,备份数据库就备份了broker 的消息队列。SQL Server 2005 中的查询通知就是基于Service Broker的应用。你可以使用查询通知功能来发送一个命令到SQL Server请求在查询结果发生变化时接收SQL Server的通知。这样就可以只有在程序以前检索的结果发生变化时,才需要重新查询数据库。一个可以预见的应用是在使用缓存的Web 站点中。Web站点首先发送语句到数据库服务器,获得数据,缓存到本地,然后只有在收到查询通知的时候才清理缓存,重新查询数据。这个机制避免了重复轮询 SQL Server,大大减轻了服务器的负载,也提高了Web 站点的伸缩性。

因为SQL Server 2005 的Service Broker带来了数据库编程异步处理能力的革命,我把它作为升级的第十个理由。

总结语

上面列出的十大理由仅仅是基于笔者的考虑,并没有囊括SQL Server 2005 所有的功能。SQL Server 2005 还有其他很多非常优秀或重大的改进。比如支持通过HTTP SOAP协议直接访问数据库,增加XML数据类型,支持Xquery,使用新的SQL ServerManagement Studio 等等。有一点我必须提一下,就是现在可以调用sp_create_plan_guide来强制指定SQL Server总是使用某个执行计划运行语句,避免SQL Server动态生成不够优化的查询计划,实在太棒了。在笔者看来,SQL Server 2005 带来的好处远远大于升级导致的工作量,升级到SQL Server 2005 是迟早的事情。早升级早拥有,对SQL Server 2005,你准备好了吗?

Posted by eygle at 3:26 PM | Comments (0)

November 28, 2006

06年Q3中国数据库市场规模达4.63亿

出处:http://www.eygle.com/digest

来源:易观网  时间:2006-11-27 梁新刚

易观国际发布《2006年第3季度中国数据库软件市场数据监测》数据显示,2006年第3季度中国商业数据库市场2006年第3季度整体规模达到4.63亿人民币,季度环比增长7.53%。

从厂商竞争格局来看,国际软件巨头占据市场的绝大多数份额。Oracle、IBM、Microsoft和Sybase牢牢占据国内数据库软件市场前四位,拥有96%的市场份额。国产数据库的主要应用领域是具有国防和保密性质的部委、航空航天工业以及各地方政府。其中,Sybase的数据库产品份额下滑,其产品重点向着综合信息管理和移动解决方案转移。

开源软件的挑战,迫使主流厂商推出免费版应对。以MySQL、PostgreSQL为代表的开源数据库正在被越来越多的企业用户所采用。目前的开源数据库还不能在功能和处理能力方面追上商业级产品,但其价格的侵蚀力无法回避。开源数据库迅速增长的市场份额使得Oracle、IBM、微软相继推出了免费数据库版本(对服务收费)。

从技术趋势来看,以IBM推出DB2的最新版本Viper为标志,大型商业数据库开始同时支持关系型和层次型数据。预计其他主流厂商将迅速跟进,增加类似功能。

受SOA 潮流拉动,元数据库市场成长迅速。元数据库是部署SOA的重要组成部分,它提供了可共享的空间,用来管理服务元数据、支配服务资产生命周期及评估结果。随着SOA/Web Service市场的增长,企业更加需要通过元数据库来提供服务的可见性,进而了解资产组合、优化资产重用。

从用户需求来看,由于主要应用行业的需求趋于饱和,数据库市场增长缓慢。DBMS的传统的主要客户集中于电信、金融、能源等行业的大客户,目前其需求接近饱和,增长缓慢。电子政务由于信息整合平台建设的要求,还保持着平缓增长。一部分快速发展的中小企业,开始尝试使用大型商业数据库的简化版或免费版,并有对服务付费的意愿。

如果需要了解更多内容,请参见:《2006年第3季度中国数据库市场季度监测》

Posted by eygle at 3:52 PM | Comments (0)

有趣的病毒测试

出处:http://www.eygle.com/digest

把下面这段代码复制到记事本里,保存为文本文件,然后静观杀毒软件之变。若有反应,那您就可以初步放心了。。。 注意,本病毒代码绝对不会伤害到机器.请放心!!
!

----------我是分割线,不要复制我,复制我下面的代码------------------------------------


X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


--------我也是分割线,不要复制我,复制我上面的代码------------------------------------


这段代码是欧洲计算机防病毒协会开发的一种病毒代码,,其中的特征码已经包含在各种杀毒软件的病毒代码库里,所以可以用做测试病毒扫描引擎。


下面是等级:

特等:复制完代码后便提示内存有病毒

优等:刚保存完就提示病毒(或者直接删除)

中等:保存后几秒提示病毒(或者直接删除)

下等:需自己启动病毒扫描查杀才提示病毒(或者直接删除)

Posted by eygle at 10:52 AM | Comments (4)

November 27, 2006

季度定期补丁 Oracle修补101个安全漏洞

出处:http://www.eygle.com/digest

作为每个季度定期补丁的一部分,Oracle最近发布了101个安全漏洞的补丁,涵盖了Oracle全部的产品线。

这些重要补丁中有63个是关于数据库产品的,有14个是关于应用服务器的,另外13个是关于电子商务套件的,还有8个是有关PeopleSoft产品的,Oracle的Pharmaceuticals和JD Edwards也分别有一个补丁。

“高危补丁主要是关于应用服务器产品的,” Darius Wiles说,他是Oracle的高级安全经理,“有一些漏洞可以在没有通过认证的情况下被远程调用,还有一些漏洞是客户非常关心,需要尽早解决的。”

Oracle在这次安全升级的公告牌中首次使用了安全评级,而且在公告中明确说明了那些漏洞会被远程匿名利用,这种漏洞也是最危险的漏洞。

还有很多问题都很严重,有30个与数据库相关的漏洞会将系统暴露给未经认证的远程攻击者,对于应用服务器而言,有13个漏洞存在这类风险,在电子商务套件和PeopleSoft产品中也各有一个这样的漏洞。

与数据库相关的漏洞中,有35个是与Oracle Application Express相关的,其中的25个漏洞是危害级别最高的漏洞,Application Express是一个可选的组件,不过大部分Oracle的用户都没有使用它,Wiles说。不过现在应用服务器的使用越来越广泛,因此也就有更多的系统存在这些风险,他表示。

“这次的补丁很多­­­­­­­­­­­­­­­,……,他们正在努力修复产品中的问题。” 安全专家Pete Finnigan在他的博客中这样写到,“这种新的安全公告方式给我的印象很深,尽管还不完美,但是已经比以前好多了。”

Oracle的下一次安全升级定于明年一月16日.(原文链接)

Posted by eygle at 9:16 PM | Comments (0)

IBM顶级数据库专家技术论坛实况

出处:http://www.eygle.com/digest

2006.04.15 来自:赛迪 (转引链接)

摘要:
王珊:数据库实际上就是数据管理技术,或者说是信息管理技术。从数据库产生到现在40多年,....数据的形式是越来越丰富,原来我们最初的数据是结构化的数据,我们管理的是一些结构化的数据,处理的也就是一些事务处理。现在我们面对的数据是各种各样的数据,包括正文、多媒体、声音、图象等等,所以数据的对象越来越丰富。另外从数据量来讲,现在越来越大,可以说是海量,....

数据库管理系统要自调优自调整,数据库越来越复杂了,管理系统使得数据库管理的负担太大了。....DBMS技术,传统的技术没有过时,相反在新的条件下,我们遇到了很多新的挑战,数据量越来越大。另外我想数据库一方面向大的方向发展,还向小的方向发展,我们的手机、移动设备上面都要用存储数据,所以我想这方面的挑战会越来越多.....

全文:

主持人:各位来宾,各位数据库的发烧友,大家下午好。首先非常欢迎大家来到IBM软件开放日,今天下午我们非常荣幸的能够请到五位顶级的数据库专家来参加今天下午的数据库技术论坛。请允许我先给大家介绍一下在台上的专家,王珊教授,她是人大的博士生导师,我也很荣幸,他是我的同乡,江苏无锡人,他68年毕业于北大的物理系,81年在人大信息系硕士生毕业,84到86年在美国的马里兰大学合作研究开发数据库SDB,86年留校一直到现在在从事数据库和知识库方面的教学科研以及开发的工作,她已经培养了100多名博士生、硕士生,并且承担了很多国家科技攻关项目,以及863的科技攻关项目,在国内外发表关于数据库的200多篇论文,并且出版了数据库的书籍20多本,其中有很多本是在大学里面作为数据库的教材使用。她是全国优秀教师,也是被国家人事部授予的有突出贡献专家,获得过全国五一劳动奖章,主要学术研究方面是在高性能数据库、数据仓库,我们欢迎王珊老师光临今天的数据库论坛。

Josephine Cheng IBM公司副总裁、IBM院士、开发总经理郑妙勤女士,她是IBM的院士,这是在IBM内部最高级别的职称,她是自69年以来第一位获得IBM院士称号的女性,授予IBM卓越工程师的称号,她的研究工作专注在跟数据库相关的计算及互联网领域,她成功研发并推出多项创新技术产品。今年郑女士入选国家工程院院士。04年开始,郑女士担任北大软件与微电子学院的顾问。2000年到03年受邀担任上海复旦大学教授,03年获得亚洲美国工程师奖,98年到2000年就职于国家研究会信息小组,为国家的标准技术协会提供技术评估,96年获得基督教与青年会杰出妇女与行业贡献奖,她在数据库方面有20多年的科研经验,目前她领导IBM普及运算数据库产品和技术的研发工作,她也是IBM  DB2数据库的创始、资深研发人员之一,她现在是领导在北京的IBM开发中心工作,在她的部门里有2300多名工程师从事开发工作。

这位先生是非常非常有名的科学家,他是来自于印度,印度的姓非常复杂,叫Mohan C,是IBM研究院的院士,Mohan 是我们DB2研究院的院士,他也是IBM发明大师之一,他毕业于印度的IIT,如果各位对IIT没有什么印象的话,我可以告诉大家在印度的IIT读过书之后你去麻省理工学院会觉得那个书是非常容易读的,它跟清华、北大是同一个级别,IIT在给美国全世界,包括印度的信息科技能有这样的成绩,IIT功不可没,Mohan 是77年毕业于IIT,他的专长是在数据库的灾难恢复,还有关键的交易处理方面有很多的建树,他有很多重要的发明,今天不仅仅用在IBM DB2的产品中,还用在几乎所有的主流库,包括Sybase ,Microsoft SQL Server。他在学术领域里有很多的造诣,他是ACM的院士,和先进计算组织当中的一个院士,他也得到了ACM在他的发明奖当中,在其他方面他有34项的专利,有关数据库方面的专利,所以我们今天很荣幸请到Mohan 先生。Hamid Pirahesh,也是IBM研究院的院士,他是我们另外一名IBM发明大师,他是IBM学院的一个成员,他也是有很多很多的建树在数据库上面,他毕业于加州大学洛杉矶分校,在数据库领域里获得了他的博士学位。他是IBM数据库早期的研发人员,他尤其是在IBM数据库的查询以及复杂交易方面有很多的建树,他是IBM数据库查询引擎的主设计师,他最近的研究领域扩展到OVOEP、查询的优化、数据仓库、SOA还有XML、非结构化数据的研究领域,他是我们数据库研究院的经理,他也是ACM杂志的编辑,他也是很多主要有关计算机研究的学术会议的组委会成员。请大家再次欢迎Hamid Pirahesh。

最后一位是讲中文讲的最好的先生,王云院士,他是中国软件开发人员的老朋友了,最开始在02、03年的时候他就曾经跟中国的很多开发人员在IBM开发者大会上分享给他的程序人生,中国给他留下如此美好的印象,他现在住在北京,跟郑妙勤女士在IBM中国开发中心从事技术开发工作。他于85年加入IBM DB2的研发部门,他有40多个美国专利在数据库方面,他是 Data Jointer IBM信息整合套件其中的架构设计和第一个版本的主要贡献者,他还领导了DB2在自定义的索引当中,利用用户自己定义的数据形式进行搜索,这些技术除了在DB2中用,还能够让特别用户进行特别的索引。让我们以热烈的掌声欢迎王云先生。

  我叫左洪,我是服务于IBM软件集团的市场部门。非常感谢在座的诸位,希望大家能够利用这两个小时左右的时间提出你们希望知道答案的问题。我想先行使一下我作为主持人的特权,我想请五位院士各自花五分钟的时间,简单的介绍一下你们认为数据库目前的现状怎么样、未来怎么样,尤其很多人认为数据库越来越成为没有什么神秘感的大众消费品的情况下,你们是怎么看待这个问题的。先请王珊教授谈一下这方面的问题。

  王珊:各位同行大家下午好,非常高兴能够今天来参加这个活动。

  我从事数据库的研究开发应该说半路出家,听我的履历大家都知道我原来不是学计算机,我是学物理的,后来才改行,但是一改行以后,我进入数据库这个领域,我非常热爱这个领域,为什么呢?因为数据库实际上就是数据管理技术,或者说是信息管理技术。信息管理技术,我可以说从数据库产生到现在40多年,它的发展越来越快、越来越广,为什么?我们可以看到数据的形式是越来越丰富,原来我们最初的数据是结构化的数据,我们管理的是一些结构化的数据,处理的也就是一些事务处理。现在我们面对的数据是各种各样的数据,包括正文、多媒体、声音、图象等等,所以数据的对象越来越丰富。另外从数据量来讲,现在越来越大,可以说是海量,从需求来讲,我想我们不仅希望能够一般的做事务处理,还要分析处理,甚至更多的,充分的挖掘这个数据的资源。所以我想数据库这个技术现在是越来越广泛、越来越发展,它遇到的问题也是越来越多。有人说数据库已经不是很神秘,可能他是指核心技术,就是原来传统的像层次、网状和关系数据库这些核心技术已经相对比较成熟,但是我并不同意认为已经是没什么好研究的了,相反,像在它的核心技术上,我认为我们很多在论文里研究的技术,或者说我们得到的专利以及很多的发明并没有真正的用到产品里,我认为它和产品还相差的甚远,所以我们如何把这些技术转换到产品里,还有很多的路要走。

  现在大家都在讲数据库管理系统要自调优自调整,数据库越来越复杂了,管理系统使得数据库管理的负担太大了。用一个数据库,可能我来用和你来用不一样,可能你的水平比我高,你对DBMS能够充分利用它的这些特性、性能、空间充分的发挥,所以我想DBMS技术,传统的技术没有过时,相反在新的条件下,我们遇到了很多新的挑战,数据量越来越大。另外我想数据库一方面向大的方向发展,还向小的方向发展,我们的手机、移动设备上面都要用存储数据,所以我想这方面的挑战会越来越多。

  主持人:王教授说数据库现在的类型越来越丰富,量也越来越多,不仅仅要查询,还要分析,还要做其他的高级运算,还要做自动优化,数据库还要往更大的方向发展,还要往更小的设备发展,我相信这里面有很多很多的技术难题要研究和突破。接下来我们请对小的数据库特别有研究的郑妙勤女士,他是在IBM做DB2易捷最主要的领导人,我想请他讲讲您对数据库有什么样的看法。

  郑妙勤:大家好。王老师他说他中途出家,我也是中途出家的,因为我开始的时候都是做数据库,我在学校念书的时候就念数据库,毕业到IBM来我就做数据库,他们说没有这个空位,去别的地方,我就要做数据库,一呆就呆了27年在数据库方面。两年前我又转型了,到中国来,不是做数据库,是做管理方面,所以这两年来都没有什么这方面的经验,觉得很可惜。

  谈谈数据库是不是已经没有神秘感了?我觉得一个产品没有数据是一个没有应用兴趣的产品,这可能是我的偏见,因为一直是做数据库,但是我觉得这个很重要。没有数据是什么样的应用产品呢?没有数据没有用的。很赞同王老师所讲的,你们再想一想,我们所讲的数据库是什么呢?我们不仅是说一个信息,什么是数据呢?现在大家都说虚拟化,数据库不一定是一个数据库,是一个虚拟的数据库,是一个很大的挑战性,我们想的都是DB2数据库,还是Oracle的数据库,我们想整个数据库非常非常大。我觉得我们还没有开始,虽然王云先生是Data Jointer的发明人,现在信息完全都是Data Jointer了,你怎么去找寻信息,也不是找寻,不用这么简单的看它,我觉得应该有一个意义上的寻找,还要有一个关联的寻找,要有意义,要有知识的寻找。所以我觉得最成功的一个数据库应该是一个做任何不同的信息方面,结构化和非结构化的数据管理。找出的东西应该更有意义,应该要跟每一个人不同的,比如医生你找这个字对你有一个意思,对一个企业家有不同的意义。我觉得数据库的研发还没有开始。

  主持人:我们听出来了,其实王老师说他是半路出家,但是刚才Josephine 说的,我听出来你是半路判逃,刚开始做数据库,后来改做管理工作,我们希望你迷途知返,还是回到数据库领域,给我们更多的发明。我相信你的观点跟王老师的观点是不谋而合的。还好我们有一些人是自始至终都是在数据库领域里的。接下来请Mohan 或者Hamid 花一点时间讲讲数据库的历史,因为大家都很有兴趣,再讲讲你们对刚才这个问题的看法。

  Mohan:我是从IBM阿马丹研究实验室来的,在1981年加入阿马丹实验室之前,IBM就有同事在进行数据库基础方面的研究。SQL语言是在IBM的实验室研发出来的,之后XML的查询语言也是他主导开发的。有很多人认为关系数据库和SQL语言是Oracle发明的,其实不是,这些都出自于IBM。我们现在有许多研究人员在从事数据库的基础工作,在阿马丹研究实验室和硅谷实验室在进行SQL语言处理方面的工作。第一次跨数据库查询的研究是在IBM做的,就是我领导做的这个项目。我和Hamid 先生之前在查询优化方面做了很多有趣的工作,又在交易管理方面做了一些研究。IBM不仅在研究方面,而且在产品实现方面都对业界做出了巨大的影响,这就是我们不仅在研究方面,而且在产品实现化方面进行合作的关系。现在我们所做的工作基本上是面向XML拓展的DB2接口,以及如何把结构化的数据和非结构化的数据结合在一起,把来自不同系统中的不同的数据,包括结构化的数据和非结构化的数据结合起来是有可能会引起非常复杂的问题,所以我们现在就在做这方面的工作。最后一点,过去我们在把所有的数据存储在某一个固定的数据库当中做的很好,但是现在商业上最需要把数据从一个数据库或者一个系统转移到另一个数据库、另一套系统,然后在这个转移当中会发生比较复杂的问题,比如说我们有可能是用XML来进行这种交换,现在我就在做这方面的工作。我们必须要注意到这当中的复杂性。

  主持人:谢谢Mohan ,Mohan 基本上给我们大概回顾了一下关于数据库的历史,基本上是在Josephine 之前,有一些前辈在数据库方面做一些基础的研究工作。刚才我在跟Mohan 聊的时候,他说SQL语言之父就在他办公室的隔壁的隔壁,在他的办公室隔壁的隔壁的隔壁是Hamid ,所以他们两个人是在两边,Hamid 是负责把数据找出来,怎么样做查询,在这方面有很多的经验,在XML方面的造诣也很深厚。

  郑妙勤:我以前有几年的时间,我也是在Hamid 的隔壁的隔壁的隔壁,他们都成为IBM的院士了,以后我才慢慢靠近一点,这是有关系的。

  Hamid Pirahesh:Mohan 已经讲了有关数据库的历史,我要讲一下接下来会发生什么。问题就是我们数据库会不会变成消费品。这个变化已经从十年之前就开始了,所以你要持续不停的创新,一直到现在。我们已经知道过去的十年发生了什么,事实上IBM在过去的10年中已经赢得很多ACM的创新奖项,现在我们要谈的就是将来我们要做什么。如果在座的任何一位可以想出怎么把数据库继续往前推进10年,那你将会变得非常有钱。你如果现在想想的话,信息管理这个产业的总值已经达到270亿美元。消费类的数据库的花费其实只占到这其中的5%。如果你是在从事房地产的出售或者买卖,你认为什么是最重要的?回答就是地点地点地点。如果这个问题是关于数据库的,那这个答案会是什么呢?(郑妙勤:IBM。)答案就是创新创新创新。创新第一。关键就是在于进入到商业过程中,了解到数据是分布在不同的商业过程中或者是在某一个特定的商业线当中。就是说你必须了解你的商业目标,然后超过关系数据库。在关系数据库中数据只有一种形态,但是如果你进入到今天的企业当中,你可以发现有上千种的形态在不同的公司当中,数据变成杂乱无章的,但是你必须喜欢这种杂乱无章。我们还要继续保持关系数据库,但是你必须把它和结构化、半结构化、非结构化的数据结合在一起。在关系数据库中我们现在只处理到20%的商业数据,就是说处理接下来的80%的数据的时间已经到了。这些数据当中包括非常大量的E mail、客户管理数据以及网页等等,我们必须研究这些数据,发现其中的商业智能,帮助客户来处理这些信息。你必须非常深入了解这些数据结构,最终来改变你的数据模型,也就是刚才王教授讲到的。我们需要更多的人加入到数据处理当中进行开放的社区,在我们实现的过程中,我们必须要这么多来自大学的优秀人才的加入,也必须要开放的社团的加入,也必须要开放源代码的加入。开放社团是非常不同的,它跟我们现在所认为的IT精英们戴着领带的这种形象是不一样的。在美国他们说这就是来自于狂野的西部,狂野的西部对我们的未来是非常重要的。举一个例子,一个应用程序叫做Mashup,Mashup这个程序对企业的用户其实是非常重要的,其实这个程序基本上就是在做信息集成。现在我们就有两个问题,第一个就是这个程序的质量并不是那么高,第二个问题就是当这个应用程序在做信息集成的时候他用PHP的语言,PHP是非描述性的语言,所以要让机器来了解这个程序的功能非常难。所以在我们的研究计划中,我们必须要给他们一个描述性的语言,这样我们才能进行分析然后处理数据。所以说如果你能想出这三点,你就能变得很富有。

  主持人:谢谢Hamid Pirahesh。Hamid 其实他本来想讲很短的时间,很直接的承认数据库就是一个商品,但是他其实讲的时间是最长的。我以为他讲“创新创新创新”是随便讲的,结果他真的讲了三个创新,在未来的10年,如果在座诸位能够在这上面有很大建树的话能变得很富有,就像你买很好地段的房子会变得很富有一样。实际上我们要考虑的数据不是存在于数据库当中,是存在于业务流程当中,也是一个新的想法。他也讲到今天的关系型数据库是处理了20%的商业数据,我们接下来要做的是怎么样处理那80%不是那么完美的半结构化、非结构化的数据。他也讲到在接下来的工作中我们要对开放型社区大力的拥抱,因为现在在新的创新领域里有广阔的西部狂野田野。他也举一个例子Mashup,我觉得这跟王云的研究方向有一点点类似,是做数据的整合,但是可能在正规的研究机构里跟它合作达到更高质量、更有学术价值的创新,所以如果在这三方面的创新,在座的诸位在这方面有建树的话,相信10年以后你一定会坐在这个位置上面,Hamid一定会坐在你现在的位置上。

   最后我们的院士是普通话讲的最标准的院士,我们请王云院士讲讲他对这个问题的看法。

  王云:谢谢大家。有一句中国话说“我口所欲言言古人口,我手所欲书书古人手”,我自己在这样的场面请大家发言,我第一个举手,为什么?讲完了事情就了了,现在我是最后一个,我想讲的话被他们讲光了,怎么办呢?我讲一个笑话好了。

  消费产品化,我的看法其实是这样的。我觉得倒不是说数据库变成一个消费产品化,我的看法是消费产品用了数据库,以前数据库没有被广泛的应用,所以大家对它不是那么熟悉,而现在几乎所有的产品都已经用了数据库,所以大家觉得数据库变成消费产品了,这是一件好事情了,是因为数据库被广泛应用了。其实数据库还有很多方面,数据库它有一部分是变成消费品被大家广泛应用,但是还有更多的需求让数据库往前走,所以说数据库有它消费品的一面,它还有继续创新的一面,数据库跟一个女孩子一样,它有多重面貌,有一重面貌是消费品,但是有一重面貌是变化莫测的。

  我综合一下个人的看法。因为我的专业比较偏重于做产品的部门,我个人的经验发现,其实做产品,或者一个技术来讲,它其实会有三个层次。第一个层次,我们有一个新的功能、新的项目,我们通常说让他工作,一个新的产品发布或者是一个新的应用出来的时候,大家第一部分就伤透脑筋,一个软件的发布或者是一个应用的时候,第一个阶段是通常他说的跟他做的不一样。第二个阶段是要让它能够响应到客户的需求,在一定的时间把我们的工作做完,举一个例子,用了新的工具结果比我以前用手来算要花更多的时间。第三个需求是什么呢?要便宜。第四个阶段,不仅要便宜,还要不要钱。其实我们做产品,一个软件的生命流程也是蛮长的历程。关系型数据库在70年代末就出来了,到现在不断的成熟,之间走过很长的时间。举一个有趣的例子,如果我们在80年代面试新的员工,你听过数据库没有?现在我们会对员工说你到底数据库用过多久?无形中表示数据库有很长足的进步。

  我就两方面跟大家做一个沟通,不管是叫数据库还是信息,刚才大家首先谈到,我跟大家共享一下我个人的经验,我们做数据库这么多年,在做什么?比如我们在做交易处理、后备恢复,其实我个人觉得基本上我们在做的事情,我们做一个人,人的智慧在哪里呢?一个是我们分析推算的能力,我们可以想象、可以分析、可以推算,另外一个很重要的能力是什么呢?是我们的记忆。因为很多事情你不说,我今天开始又从1+1算起,我们小时候背九九乘法表。现在很糟糕,我的头发越来越少,我的知识越来越不够用。一个是计算能力,还有一个是存储能力,如果我们讲数据库,我们不要把数据讲成被动的东西,它是活动的东西,而且数据是具有运算能力的东西。数据库跟我们当年的文档最大的不同是什么呢?不仅数据库可以把数据做的更坚固,它其实可以把数据变成更活的数据,以前我们在文档上做数据处理,数据是活的,你可以有一个查询语言。怎么样能够让数据变成活的东西?其实这是数据库这么多年的变化,它不仅是了解更多的数据,还要了解这些数据可以做些什么样的功能满足我们的需求。所以我要跟大家讲数据不是死的,是活的,不仅仅它要能够接受更复杂的企业模式、生活模式,它还要跟我们的生活结合在一起,数据要活的,什么意思呢?我们平常做什么事情,举一个简单的例子,在我们的日常生活中要处理一些什么东西?我们要处理人、事、时、地、物,我们现在的数据库能够帮我们处理什么样的人、事、时、地、物,比如对时间来讲,在历史过程中其实很多东西其实并不是把旧的文件毁坏掉,而是要做一个新的东西,我们说所有的事情发生在时间和空间之内,我们看我们的数据库,来处理人、事、时、地、物,其实数据处理还是在婴儿阶段。我们人能做的很多事情现在我们的系统还不能达到。数据库不是一个死东西,而是一个活的东西。最短期来讲,比如你在处理数据的时候,我们怎么在人与人之间沟通、协作的环境下,Email,我们做事情都有一个服务的流程,把计算机的智能分成运算能力等。我们怎么把数据打开,变成活动的,它怎么处理我们日常生活中的活动的,这不要说是百年大业,甚至要做好几年才能做完。

  主持人:谢谢王院士,他讲的数据是活的,我有一点点体会。我发觉您讲了之后我才知道我每年看的Email的数据真的是活的,我每天的工作都是来自于Email告诉我你要做什么,Email越来越长,我的工作也就越来越多,我希望你们找一个办法帮我把活的数据变得更加可爱一点,能够让我们不要被它吃掉。

  王云:活的数据还可以自己变大、自己变小。

  主持人:我希望我的Email不会自己变大变小。各位有很多问题要问,我想把时间交回给在座的诸位。

  提问:我是IBM的OPC技术经理,我叫郑晓军,今天特别高兴能够跟数据大师见面。我有几个问题跟大家分享一下。最直接的是想请教王云院士。我也特别同意刚才几位大师的说法,因为前些年有人说数据库跟卖咸菜、西瓜一样,但是我个人觉得其实一直是创新不断。现在有这么一个问题,其实我觉得一个很具体的,DB2大家现在用的都是叫UDB,实际上这一点跟我们六七十年代,尤其是七八十年代的DB2是不一样的,因为它是有面向对象的思想在里面。原先我接触这个东西的时候有很重要的两个技术,除了能够支持各种复杂的数据结构之外,我以前在Informix工作过,有两个重要的技术可以让用户嵌入做数据处理。第一,我可以自己由我们在座的用户去写一个对一种未知数据的访问,然后把你这个访问的接口嵌在数据库里,我访问数据库的时候可以当作一张普通的表来处理。第二个形式,如果我访一个全文检索,我自己发明了一种索引结构,这种结构是很奇怪的索引,这时候我的查询语句如果正好碰到了,比如我在地图里,我在一个大的区域找一个小的区域,这时候数据库不会辨别每一个区域,他一下子会把我要的区域找到,因为有一种二维的索引,这肯定不是你的数据库里有的。我们在座的有可能就在生活、工作过程中发明了这个东西,数据库就允许你集成进去。我们IBM的DB2 II应该是把我们第一类数据的集成已经做到了,但是我现在无论是用DB2还是用II,对第二类的,就是我自己发明的索引结构,把这个索引结构融入到我的数据库里,对于我们IBM DB2来讲下一步打算怎么做?是准备在II里还是准备在DB2的核心里面?

  Mohan:我们IBM实现的各种面向对象的功能,其实很多客户并不用。在个别的特定的系统中,这些功能是被需要的,但是它也可以通过并不是向用户提供这些功能来实现,比较要投资更多的钱在这方面,我们不把重点放在定义用户结构上面。用来代替像Informix来提供解决方案,我们DB2提供额外的Informix,但是我们并不提供让客户来定义他们自己的索引结构。所以你必须考虑到为客户提供解决方案的不同的技术。使用这个系统的用户并不想知道在系统当中到底是什么,这就是自动的数据库的概念。如果你允许用户自己来添加索引结构等等功能,就是说你不是买了整个的车,而是买了引擎,买了门,买了各种东西,自己把它组装起来,你是愿意买一个车还是愿意自己组装?我们尝试过Informix这种方法,但是这种方法是并不成功的,所以我们决定自己来做整合。在这方面我们有两个例子,一个例子像王云为DB2 Warehouse做的额外的索引机构种类,另外一个就是XML的索引。如果你们看过XML索引,就会知道它有多复杂,跟系统中的存储并行性进行合作的复杂性。从技术的角度上讲,我们到底知不知道怎么做这个事情呢?这只是一个技术角度的回答,并不是客户关心的问题。回答是我们可以这么做,但是用户并不关心这个。

  提问:我问一个用户的应用问题,我是北京市人口计生委信息中心的,我们现在是Informix的用户,我们和IBM的沟通比较多,包括和王珊老师经常做交流。今天主要是IBM内部的一些高级专家来到这里,我问一个简单的问题,我是从最终用户的角度来问的。我问郑女士,我们现在在Informix未来的迁移上,我们做计生委,未来做人口库的工作,这是一个很大的库,我们把Informix迁移到DB2上,IBM工程师给我们的建议是不要迁移,往上走,他们08年有一个计划。我们请教王珊老师对IBM公司在DB2数据仓库的未来做一个展望。

  Hamid Pirahesh:未来的数据仓库有两个主要的方向,一个是关于更大的数据,更多的交易用户,减低成本,现在如果一个公司想要建立一个数据仓库,只有20%的公司可以成功。我确定你会成功,因为你很聪明。但是对剩下的那些公司,我们必须把它简化,把这个过程简化,也就是说自动化。现在我们面对要把很多硬件以及更多的网格技术运用到数据仓库中来。第二个就是关于功能,比如说当我们为公共卫生保健系统做一个数据仓库的话,我们要为病人的资料以及各种帐单、医生的资料做一个一般的仓库。现在我们还要把医生和护士写的治疗记录,以及在治疗的过程中拍下来的各种医疗图象也要存到仓库中,这样它就成为了一个企业的内容版的数据仓库,和以前的结构化的数据仓库结合在一起。当你实现了这两个仓库的时候,你就要开始考虑到要把这个仓库应用于更多的用户。也就是说考虑到那些病人,或者是销售人员,他们并不能连接到这个数据仓库然后再使用这个仓库的内容的时候,数据仓库就成为了一个内容发生者,然后通过网络,透过防火墙打到各种终端,比如说你的手机之类的地方。总的来说,我们就谈了两方面,一个是低成本、高性能,第二个就是各种功能。

  提问:我想问一下将来数据库在网格环境中会是什么样的?将来DB2的数据库会发展成什么样的?是更多的查询服务提供,是来自于集中的计算资源,还是说提供数据库产品的会分布在网格很多小的点上?是很重量级的东西,还是轻量级的东西呢?我是中国气象局的,我是做信息系统管理的。

  Hamid Pirahesh:如果你要建数据仓库的话,你最好建集中式的。如果你建成分布式的话,成本就会非常显著的提高。如果你集中式的做数据仓库的话,你需要很多机器来支持这个仓库。现在我们基本上用300个处理器CPU来支持数据仓库,将来很可能是几千个,在未来的10年当中。我们现在讨论在那个配置下的网格。你用那么多的处理器在上面建立你的数据仓库,然后用像Tivoli这种系统管理软件控制整个系统,这是你管理这么大一个全国化的系统的唯一的办法。

  提问:我的问题并不仅仅是Warehouse,还集中在通用数据库上面,通用数据库方面是怎么样的呢?

  Hamid Pirahesh:如果是一般的用户做交易的各种处理的话,用我们的主机就可以了,但如果你要做科学计算的话,可能你就需要做分布式的计算了。在科学计算上,美国和中国是领先的,在世界上。在中国各个学校中都在以这个题目做竞争,接下来就是欧洲。我们实验室做了特别的处理器,你需要很多钱来买这个特殊的处理器,如果是科学计算的话。接下来费用会减低,商业的使用也可以,它是网格计算,但是它是用集中式的。

  王珊:你的问题我理解,是在网格环境下,数据库应该怎么在网格环境下应用、提供服务?我想数据库在网格环境下网格要共享、协作,这两个最主要的特点,一个是共享,一个是协作。作为资源,数据库是非常重要的。因为你是气象局的,你们在网格计算上有很多的运用。怎么样使得数据库能够应用网格,实际上关键要解决的问题是要在平台上运行,另外一个,数据库如何使它透明,因为在网格环境下,不停的网格要存储数据库的时候使得这种服务是透明的。所以我们现在做的工作是有一些元数据、资料的表格放到某一个结点上,它可以知道我在整个这个环境下有哪些数据库,然后当我需要存储气象局的某些数据的时候,我知道气象局有我所需要的东西。如果你是网格上的一个结点,气象局上某个结点宕了,这个时候我还可以看有没有其他类似的网格访问。要有一个资源的元数据的表来访问,还要有存储这些资源的权限,我是可以存储的,他是不可以的。这些资源也可以分布的。从我们数据库的角度研究一下怎么使这些资源集中的、分布的,并且能够很好的有效的管理,使得当用户存储网格环境下某一个数据库的时候,我能够很快的得到我所要的资源,即使某些数据已经被数据库宕了。

  郑妙勤:现在我们的数据库无论你在哪里都可以存储你的资讯。现在可以了。

  王云:其实我们现在谈的问题基本上是一个解决方案的问题,它其实有更多面是说你的需求是什么,你的问题是一个系统的建造问题。如果从数据库的角度来回答你都是片面的。我不是为IBM做广告,以IBM公司的形态来讲,我们跟我们的客户是很好的合作伙伴的关系。IBM有通讯的技术、软件的技术以及数据库的技术。第一,你的应用是什么样的应用,比如你要做一个高性能的模拟的话,很可能这个咨询必须要在同一个平台运算,美国专门造了特殊的硬件环境才能够达到这种统一的运算,如果是这种运算,你的资料必须要在集中式的环境中才能做出来。如果你的英勇事这样的,你需要把你的数据从某些地方归到一个地方来,才能做这种运算。我们讲网格技术,其实网格技术包括你怎么做复制和定制化,都要跟你的应用有关,如果你的应用可以分块来做,可以定义在每一个平台上,再汇集起来做最后的结算。基本上气象局的很多资料都是分布式的,或者是全球的,它是一个分布式的系统,要看你的应用是做什么样的应用,这个资料怎么在网格上做固化。其实这是一个系统应用的问题,我们给你提供一些技术作为参考,可是要从你应用的角度来看采取不同的数据架构分布的方式来应用你的需求。你讲的是完整的解决方案问题,IBM要把这个东西从一个技术层面跟我们的数据库做一个更好的结合,我们不是把产品丢给你,其实我们是IBM的软件部配合你了解你的业务模型。这其实是一个系统设计的问题,要从你的企业需求跟技术结合在一起。另外一个名词SOA,是讲怎么样把科技跟技术等各个角度结合,怎么把技术、业务和服务结合在一起,其实这是每个人都有兴趣的问题,但是这不是一个单一的产品的回答,是一个系统设计的问答。我站在中立的立场上,IBM把客户的业务看成是这种模式。我想这是一个很大的问题。IBM的答复,其实IBM就是整体性的整合能力来跟你谈这个问题的。

  主持人:讲到网格,我作为IBM普通的员工,我自己是在网格上,IBM有一个号召,当我们所有的笔记本电脑连到网上,如果我们不用,这个资源是捐给医疗机构,做基因分析、医疗分析。我参加了网格,但是我看不到,只是安装了一个小网格在上面,谁用,他用这个干什么,我不知道,我只知道当我不用的时候它还在工作。

  提问:我是一个做方案、做软件开发的软件公司的项目经理,现在在给我客户实施的过程中发现一个问题,我们客户需要数据库产品的时候面临一个情况,他的选择余地很窄,要不就是DB2,要不就是Oracle,但是实际上有很多时候他们都采用盗版的方式,为什么会采用盗版的方式呢?我思考了这个问题,我发现最后的原因是在于我们的企业买了数据库的企业版和Oracle的企业版,有些企业只需要有插入,有些只要在内存里建很小的数据库,实际上最后的结果是他们看到CPU50万、80万的数据产品的时候,他就选择一个冒着法律风险的行为,最后盗版用一下。第二方面,我们选择企业版的数据库产品的时候,对系统的性能要求挺高的,一般来讲我们对Oracle和DB2应用的经验有一些年头了,一般来讲需要两级CPU或者是四级内存,实际上它的量每天只增长几百K。我自己有一个构想,我们能不能把我们的数据库产品做的跟汽车一样,比如说我们的零件有轮子、底盘、座椅、发动机,有些用户我只给他提供发动机,有些只给他提供轮子,有些数据库没有产品的源代码,我想这些是可以实现的。今天在这里向专家提出这个问题,从您的角度有没有这方面的考虑?

  主持人:关于数据库的盗版、正版不是我们今天的话题。其实你提出的最后一个问题我们是有兴趣的,数据库可不可以把它拆开卖?我们有DB2 Express—C,我们在这个月底会向中国所有的客户提供这个,这是免费的。数据库的功能能不能拆开让用户自己组装?价格是不是可弹?

  郑妙勤:我们也有开发源代码,DB2 Express—C,你也可以找到一种支持,就是DB2 Express—C。我们IBM本身有80多种产品都是有它的,所以这是我们的掌上明珠,你们都可以用,也不用很复杂的配置。如果你需要这个产品,你也可以买这个产品,我想大家都应该试试看用这个产品。

   还是希望能够在商业上面做一个完整的产品,我们再支持。如果像这种功能性的产品,你可以在开放社区里面找到。我们刚才讲的DB2 Express—C就在那里面。实际上Google公司是用开放源代码的数据库,然后自己改进,达到他们的要求。

  主持人:非常感谢各位跟我们五个数据库大师在一起分享数据库方面的信息。我们也感谢数据库大师能够跟中国的客户、合作伙伴讨论这方面的问题。我们还要特别感谢王珊教授。

   让我们最后再次用热烈的掌声感谢五位大师,同时也谢谢在座所有的参与者。希望大家觉得这两个小时没有虚度,我们也期待着有更多的机会跟大家交流这方面的问题。谢谢大家!

Posted by eygle at 4:30 PM | Comments (0)

关系数据库之父-埃德加·考特

出处:http://www.eygle.com/digest

在数据库技术发展的历史上,1970 年是发生伟大转折的一年。这一年的6 月,IBM 圣约瑟研究实验室的高级研究员埃德加·考特 (Edgar Frank Codd) 在Communications of ACM 上发表了《大型共享数据库数据的关系模型》一文。

ACM 后来在1983年把这篇论文列为从1958 年以来的25年中最具里程碑意义的2 5 篇论文之一,因为它首次明确而清晰地为数据库系统提出了一种崭新的模型, 即关系模型。

“关系”( Relation ) 是数学中的一个基本概念,由集合中的任意元素所组成的若干有序偶对表示, 用以反映客观事物间的一定关系。如数之间的大小关系、人之间的亲属关系、商品流通中的购销关系等等。

在自然界和社会中, 关系无处不在; 在计算机科学中, 关系的概念也具有十分重要的意义。计算机的逻辑设计、编译程序设计、算法分析与程序结构、信息检索等,都应用了关系的概念。而用关系的概念来建立数据模型,用以描述、设计与操纵数据库,考特是第一人。(原文链接)

由于关系模型既简单、又有坚实的数学基础, 所以一经提出,立即引起学术界和产业界的广泛重视,从理论与实践两方面对数据库技术产生了强烈的冲击。在关系模型提出之后,以前的基于层次模型和网状模型的数据库产品很快走向衰败以至消亡,一大批商品化关系数据库系统很快被开发出来并迅速占领了市场。其交替速度之快、除旧布新之彻底是软件史上所罕见的。基于70 年代后期到80 年代初期这一十分引人注目的现象,1981 年的图灵奖很自然地授予了这位“关系数据库之父”。在接受图灵奖时, 他做了题为“关系数据库:提高生产率的实际基础”的演说。(刊于1982 年2 月的Communications of ACM 第109 至第117 页,或见《A C M图灵奖演说集》第3 9 1 至第4 1 0页。)

考特原是英国人,1 9 2 3 年8 月1 9 日生于英格兰中部的港口城市波特兰。第二次世界大战爆发以后,年轻的考特应征入伍在皇家空军服役,1 9 4 2 至1 9 4 5 年期间任机长,参与了许多重大空战,为反法西斯战争立下了汗马功劳。二战结束以后,考特上牛津大学学习数学,于1 9 4 8 年取得学士学位以后到美国谋求发展。他先后在美国和加拿大工作,参加了I B M 第一台科学计算机7 0 1 以及第一台大型晶体管计算机 S T R E T C H 的逻辑设计,主持了第一个有多道程序设计能力的操作系统的开发。他自觉硬件知识缺乏,于是在6 0 年代初,到密歇根大学进修计算机与通信专业( 当时他已年近4 0 ) ,并于1 9 6 3 年获得硕士学位, 1 9 6 5 年取得博士学位。这使他的理论基础更加扎实,专业知识更加丰富。加上他在此之前十几年实践经验的积累,终于在1 9 7 0 年迸发出智慧的闪光,为数据库技术开辟了一个新时代。

由于数据库是计算机各种应用的基础,所以关系模型的提出不仅为数据库技术的发展奠定了基础,同时也成为促进计算机普及应用的极大推动力。在考特提出关系模型以后,IBM 投巨资开展关系数据库管理系统的研究,其“System R”项目的研究成果极大地推动了关系数据库技术的发展,在此基础上推出的DB2 和SQL 等产品成为IBM 的主流产品。System R本身作为原型并未问世,但鉴于其影响,ACM还是把1988 年的 “软件系统奖”授予了System R开发小组( 获奖的6 个人中就包括1 9 9 8 年图灵奖得主J.Gray )。这一年的软件系统奖还破例同时授给两个软件,另一个得奖软件也是关系数据库管理系统,即著名的INGRES

1970 年以后,考特继续致力于完善与发展关系理论。1972 年,他提出了关系代数和关系演算的概念, 定义了关系的并、交、投影、选择、连接等各种基本运算, 为日后成为标准的结构化查询语言(SQL)奠定了基础。

考特还创办了一个研究所(关系研究所)和一家公司(Codd & Associations),他本人是美国国内和国外许多企业的数据库技术顾问。1 9 9 0 年,他编写出版了专著《数据库管理的关系模型: 第二版》, 全面总结了他几十年的理论探索和实践经验。

——摘自《程序员》杂志

Posted by eygle at 3:01 PM | Comments (0)

November 26, 2006

移动梦网推精品栏目 缓和SP压力

出处:http://www.eygle.com/digest

作者:高剑巍 | 出处:财经时报 | 2006-11-25 18:26:34 |

  移动梦网将快速增加许多真正免费的内容和项目,在现有分成比例不变的情况下,中国移动将获得更多的流量.

  关于中国移动限制免费wap(手机上网)的传言终于水落石出。

  11月上旬,中国移动悄悄对移动梦网的wap栏目进行了一次“改革”,这次“改革”不仅击碎了外界关于中国移动限制免费wap生存空间的流言,也是梦网5年来商业模式的一种创新。

  这次“改革”涉及的主要方面是:中国移动对移动梦网wap上的几个栏目进行了招标,将其中一部分栏目的内容交由CP和SP来经营。这种局部的尝试,被中国移动相关人士评价为“让专业的人士做专业的事情。”

  对于消费者来说,则在上移动梦网时能够非常直观地享受新增的许多免费项目。

 “事实上,我们认为这是中国移动对自己将与CP、SP继续合作,继续在移动增值业务产业链共赢的一个承诺兑现。”咨询公司BDA中国咨询部经理张宇表示,这对正处在水深火热之中的SP们无疑是一大利好消息。

 挑战免费wap

  如果说,免费wap的成功最初很大程度上是依赖于“免费”二字,那么这回中国移动和他们又站到了同一起跑线上。

  据中国移动相关人士透露,此次移动梦网某些栏目由一些SP来经营,规定的一个重要原则是,这些在免费wap上已经颇有建树的SP,不能够把免费wap上的内容在移动梦网平台上进行收费。这些中标的SP必须承诺这一点。这也意味着,移动梦网将快速增加许多真正免费的内容和项目,在现有分成比例不变的情况下,中国移动将获得更多的流量。

  这次中国移动将游戏栏目、音乐栏目、女性栏目、房产/汽车栏目、教育栏目按照类似“招标”的程序给予7 家SP经营,其中游戏栏目由新浪、易动无限(空中网子公司)、掌中米格3家经营;音乐栏目由空中网、雷霆万钧(TOM)、因特莱斯(华友世纪子公司)运行;女性栏目则由新浪承办;房产/汽车栏目由雷霆万钧(TOM)推出;教育栏目是被心情互动承运的。

  这些栏目和栏目被中国移动冠名为“移动梦网精品栏目”,显然中国移动对此寄予了厚望。

  变革的由来

  “这种尝试性的变革是必然的,移动梦网从发展到现在,wap上的内容一直是非常多的,初期看起来这是必要的,因为必须丰富产品才有可能吸引用户。但发展到一定阶段后,问题也出来了,就是用户的感受非常不好,不知道该选择什么样的服务是最适合自己的,而且免费的项目太少。我们希望通过精品栏目,能够使 wap用户真正地喜欢,放心地使用移动梦网。”中国移动相关人士如是说。

  张宇对此评价说,中国移动此次进行移动梦网精品栏目招标,中标的有一些是在互联网和wap上内容领先的SP,如新浪、TOM和空中网,这些SP只要把已有的内容根据中移动的要求做不太多的加工,就能够满足消费者的需求,一方面实现内容的丰富,一方面也不会增加太多的成本。

  “我们希望移动梦网实行两条腿走路的方式,一部分是普通栏目,一部分是精品栏目,两种形式共存。但长远来说,我们鼓励精品栏目成为今后移动梦网wap内容上的主流。”中国移动人士透露,这次尝试性的“改革”对中标的SP也提了一些硬性指标,例如要求在栏目投入运营后,流量方面有要求,内容方面也有要求,另外不能设立陷阱,必须使消费者明明白白地放心消费。

  “如果这些获得移动梦网栏目合作的SP违规,那么他们将得到最为严厉的惩罚。”

  一位行业分析师表示,此次招标也意味着以往坊间传言中移动将采取种种措施限制免费wap发展的言论是错误的,中移动显然希望通过发展自己移动梦网的内容与免费wap同台竞技,而不是简单地通过平台优势限制对手。

  游戏规则

  尽管有些在互联网和移动业务内容上强势的CP、SP并没有获得此次移动梦网精品合作,但移动梦网这种悄悄衍生的商业模式,却令这些增值服务价值链的厂商们兴奋不已。

  这是因为,中国移动对于合作伙伴选择的灵活性让人心动。中国移动在此次招标中,首先采用排他法进行梳理,将信用积分等级在一定范围的合作伙伴纳入视线,而那些因为内容不受欢迎排位靠后,投诉量大的SP们则铁定无缘入围。

  之后,中国移动组成联合评审组,以打分的方式来考核SP们的资质。SP们必须就获得栏目合作将要投入的人力、物力,以及要达到的目标等等一一进行阐述,这个联合评审组由多个不同部门的人士组成,以保证最大的公平性。

  据悉,移动梦网的精品业务将在12月上线,目前初步的排名方式是音乐精品业务的位置在“无线音乐栏目”的3、4、5入口位置;游戏精品业务的位置在“游戏社区栏目”的2、3、4入口位置;女性、汽车/房产、教育精品业务的位置在梦网首页第3、4、5入口位置。

  最吸引SP的一点是,占据这些位置不需要向移动支付除分成费用之外的其他费用,不存在所谓的“竞价排名”一说,一个栏目有多个SP的栏目,位置是按照时间来轮换的。

  大SP们的生机

  某海外基金经理Jim分析表示,这几个SP上线移动梦网精品栏目,保守估计每月能够从栏目获益200~500万元,以空中网为例,可能将提升10~20%的收入。

  这种收入的获得,对于处在转折期的SP们无异是一根救命稻草,指明了一条道路。

  Jim认为,相对SP的短期获益,投资者更看重长远商业模式的确立。中国移动如果肯定这种精品栏目的存在,那么对于大的SP将具有积极意义。

  今后这些SP可以跟中移动有更紧密的合作,利用自己的内容优势作好运营,中国移动则会利用自己的平台资源作好这个合作双方或者多方的品牌,以获共同收益。这也意味着,这些移动紧密合作的SP前途会很稳定,投资价值会提升。“很显然,出于SP将从中获益的基础,中移动也提高了紧密合作SP的违规成本。”

  中国移动相关人士表示,这种尝试会保持监督机制,会在一段时间后进行总结,如果这些栏目的SP没有能够完成目标,或者出现违规,或者实现末位淘汰后落后,那么将会吸纳新的合作伙伴进入。

  不过一位业内人士却认为,中移动并没有全盘把移动梦网都“分包”给SP合作,显然也给一些中小SP留下生存空间,例如图片、彩铃等同质化竞争激烈的栏目,短期内应该会保持现状。

  此外,尽管中移动把内容的运营交给SP们的专业团队去做,但并不能简单地把几个SP的栏目如搭积木般叠加,不能简单地1+1=2,中移动还是要作好品牌整合和推广的工作,否则免费wap还将是移动梦网最强的竞争对手。 (112712)

  链接

  移动梦网网站是提供无线数据应用业务以及引导无线数据应用业务发展的商务网站。总站主要提供面向移动用户、运营商、服务提供商、终端提供商的内容,省站主要依托移动信息服务中心平台提供面向移动用户的服务。移动梦网总站和省站分别依托于中国移动集团公司和省公司,总站和省站构成移动梦网不可分割的统一体系。

Posted by eygle at 9:06 PM | Comments (0)

November 25, 2006

深度分析数据库的热点块问题

出处:http://www.eygle.com/digest

作者:biti_rainy (出处)

热点块的定义

数据库的热点块,从简单了讲,就是极短的时间内对少量数据块进行了过于频繁的访问。定义看起来总是很简单的,但实际在数据库中,我们要去观察或者确定热点块的问题,却不是那么简单了。要深刻地理解数据库是怎么通过一些数据特征来表示热点块的,我们需要了解一些数据库在这方面处理机制的特性。

数据缓冲区的结构

我们都知道,当查询开始的时候,进程首先去数据缓冲区中查找是否存在查询所需要的数据块,如果没有,就去磁盘上把数据块读到内存中来。在这个过程中,涉及到数据缓冲区中LRU链的管理(8i开始以接触点计数为标准衡量buffer冷热从而决定buffer是在LRU的冷端还是热端),关于这部分内容,从oracle concepts 中就能得到详尽的文档,我不准备去论述这部分内容,这也不是本文的重点。现在我们的重点是,到底进程是如何地去快速定位到自己所想要的block的,或者如何快速确定想要的block不在内存中而去进行物理读的。

我们仔细想一想,随着硬件的发展,内存越来越大,cache buffer也越来越大,我们如何才能在大量的内存中迅速定位到自己想要的block?总不能去所有buffer中遍历吧!在此数据库引出了hash的概念(oracle中快速定位信息总是通过hash算法的,比如快速定位sql是否在shared pool size中存在就是通过hash value来定位的,也就是说shared pool size中对象也是通过hash table来管理的),了解一点数据结构的基本知识就知道,hash 的一大重要功能就是快速地查找。举个最简单的例子,假设我们有一个hash table 就是一个二维数组a[200][100],现在有1000个无序数字,我们要从这1000个数字里面查找某个值是否存在,或者说当我们接收到某个数字的时候必须判断是否已经存在,当然,我们可以遍历这1000个数字,但这样的效率就很低。但现在我们考虑这样一种方法,那就是把1000个数字除以200,根据其余数,放在a[200][100]里面(假设相同余数的最大数量不超过100),余数就是数组的下标。这样,平均来说一个数组a[i]里面可能有5个左右的数字。当我们要去判别一个数字是否存在的时候,对这个数字除以200(这就是一个最简单的hash算法),根据余数i作为下标去数组a[i]中查找,大约进行5次查找就能判别是否已经存在,这样通过开辟内存空间a[200][100]来换取了时间(当然hash 算法的选取和hash table的大小是一个很关键的问题)。

明白了基本的hash原理之后,我们再来看oracle的block的管理。数据库为这些block也开辟了hash table,假设是a,则在一维上的数量是由参数_db_block_hash_buckets 来决定的,也就是存在hash table a[_db_block_hash_buckets ],从oracle8i开始,_db_block_hash_buckets =db_block_buffers*2。而一个block被放到哪个buckets里面,则是由block的文件编号、块号(x$bh.dbarfl、x$bh.dbablk对应了block的文件属于表空间中的相关编号和block在文件中的编号,x$bh是所有cache buffer的header信息,通过表格的形式可以查询)做hash 算法决定放到哪个bucket的,而bucket里面就存放了这些buffers的地址。这样当我们要访问数据的时候,可以获得segment的extent(可以通过dba_extents查到看,详细的信息来源这里不做探讨),自然知道要访问的文件编号和block编号,根据文件和block编号可以通过hash算法计算出hash bucket,然后就可以去hash bucket里面去找block对应的buffer。

除此之外,为了维护对这些block的访问和更改,oracle还提供了一种latch来保护这些block。因为要避免不同的进程随意地径直并发修改和访问这些block,这样很可能会破坏block的结构的。latch是数据库内部提供的一种维护内部结构的一种低级锁,latch的生存周期极短(微秒以下级别),进程加latch后快速的进行某个访问或者修改动作然后释放latch(关于latch不再过多的阐述,那可能又是需要另一篇文章才能阐述清楚)。这种latch数量是通过参数_db_block_hash_latches 来定义的,一个latch对应的保护了多个buckets。从8i开始,这个参数的default规则为:

当cache buffers 少于2052 buffers

_db_block_hash_latches = power(2,trunc(log(2, db_block_buffers - 4) - 1))

当cache buffers多于131075 buffers

_db_block_hash_latches = power(2,trunc(log(2, db_block_buffers - 4) - 6))

当cache buffers位于2052与131075 buffers之间

_db_block_hash_latches = 1024

通过这个规则我们可以看出,一个latch大约可以维护128个左右的buffers。由于latch使得对block的操作的串行化(9i中有改进,读与读可以并行,但读与写、写与写依然要串行),很显然我们可以想到一个道理,如果大量进程对相同的block进程进行操作,必然在这些latch上造成竞争,也就是说必然形成latch的等待。这在宏观上就表现为系统级的等待。明白了这些原理,为我们下面的在数据库中的诊断奠定了基础。

如何确定热点对象

如果我们经常关注statspack报告,会发现有时候出现cache buffer chains的等待。这个cache buffer chains就是_db_block_hash_latches所定义的latch的总称,通过查询v$latch也可得到:

select">sys@OCN>select latch#,name,gets,misses,sleeps from v$latch where name like 'cache buffer%';

LATCH# NAME GETS MISSES SLEEPS
---------- ------------------------------ ---------- ---------- ----------
93 cache buffers lru chain 54360446 21025 238
98 cache buffers chains 6760354603 1680007 27085
99 cache buffer handles 554532 6 0

在这个查询结果里我们可以看到记录了数据库启动以来的所有cahce buffer chains的latch的状况,gets表示总共有这么多次请求,misses表示请求失败的次数(加锁不成功),而sleeps 表示请求失败休眠的次数,通过sleeps我们可以大体知道数据库中latch的竞争是否严重,这也间接的表征了热点块的问题是否严重。由于v$latch是一个聚合信息,我们并不能获得哪些块可能存在频繁访问。那我们要来看另一个view信息,那就是v$latch_children,v$latch_children.addr记录的就是这个latch的地址。

select">sys@OCN>select addr,LATCH#,CHILD#,gets,misses,sleeps from v$latch_children
2 where name = 'cache buffers chains' and rownum < 21;

ADDR LATCH# CHILD# GETS MISSES SLEEPS
-------- ---------- ---------- ---------- ---------- ----------
91B23B74 98 1024 10365583 3957 33
91B23374 98 1023 5458174 964 25
91B22B74 98 1022 4855668 868 15
91B22374 98 1021 5767706 923 22
91B21B74 98 1020 5607116 934 31
91B21374 98 1019 9389325 1111 25
91B20B74 98 1018 5060207 994 31
91B20374 98 1017 18204581 1145 18
91B1FB74 98 1016 7157081 920 23
91B1F374 98 1015 4660774 922 22
91B1EB74 98 1014 6954644 976 32
91B1E374 98 1013 4881891 970 19
91B1DB74 98 1012 5371135 971 28
91B1D374 98 1011 5154497 990 26
91B1CB74 98 1010 5013796 936 18
91B1C374 98 1009 5667446 939 25
91B1BB74 98 1008 4673421 883 14
91B1B374 98 1007 4589646 986 17
91B1AB74 98 1006 10380781 1020 20
91B1A374 98 1005 5142009 1110 19

20 rows selected.


到此我们可以根据v$latch_child.addr关联到对应的x$bh.hladdr(这是buffer header中记录的当前buffer所处的latch地址),通过x$bh可以获得块的文件编号和block编号。

select">sys@OCN>select dbarfil,dbablk
from x$bh
where hladdr in
(select addr
from (select addr
from v$latch_children
order by sleeps desc)
where rownum < 11);

DBARFIL DBABLK
---------- ----------
4 6498
40 14915
15 65564
28 34909
40 17987
1 24554
8 21404
39 29669
28 46173
28 48221

……………………

由此我们就打通了cache buffers chains和具体block之间的关系,那再继续下来,知道了block,我们需要知道究竟是哪些segment。这个可以通过dba_extents来获得。

select distinct a.owner,a.segment_name from
dba_extents a,
(select dbarfil,dbablk
from x$bh
where hladdr in
(select addr
from (select addr
from v$latch_children
order by sleeps desc)
where rownum < 11)) b
where a.RELATIVE_FNO = b.dbarfil
and a.BLOCK_ID <= b.dbablk and a.block_id + a.blocks > b.dbablk;


OWNER SEGMENT_NAME SEGMENT_TYPE
------------------------------ ------------------------------ ------------------
ALIBABA BIZ_SEARCHER TABLE
ALIBABA CMNTY_USER_MESSAGE TABLE
ALIBABA CMNTY_VISITOR_INFO_PK INDEX
ALIBABA COMPANY_AMID_IND INDEX
ALIBABA COMPANY_DRAFT TABLE
ALIBABA FEEDBACK_POST TABLE
ALIBABA IM_BLACKLIST_PK INDEX
ALIBABA IM_GROUP TABLE
ALIBABA IM_GROUP_LID_IND INDEX
ALIBABA MEMBER TABLE
ALIBABA MEMBER_PK INDEX
ALIBABA MLOG$_SAMPLE TABLE

……………………

我们还有另外一种方式

select object_name
from dba_objects
where data_object_id in
(select obj
from x$bh
where hladdr in
(select addr
from (select addr
from v$latch_children
order by sleeps desc)
where rownum < 11)) ;


OBJECT_NAME
------------------------------------
I_CCOL2
RESOURCE_PLAN$
DUAL
FGA_LOG$
AV_TRANSACTION
COMPANY_DRAFT
MEMBER
SAMPLE
SAMPLE_GROUP
VERTICAL_COMPONENT
MEMBER_PK
SAMPLE_GROUP_PK
IM_BLACKLIST_PK
IM_CONTACT
IM_GROUP
CMNTY_USER_MESSAGE
CMNTY_VISITOR_INFO_PK
IM_OFFLINEMSG_TID_IND
OFFER
OFFER_PK
OFFER_EMAIL_IND
OFFER_DRAFT
CMNTY_USER_MESSAGE_TD_BSM_IND
CMNTY_MESSAGE_NUM_PK
BIZ_EXPRESS_MEMBER_ID_IND

……………………

到这里我们基本能找到热点块对对应的对象。但实际上还有另外一个途径来获取这些信息,那就是和x$bh.tch 相关的一种方法。对于8i开始oracle提供了接触点(touch count)来作为block是冷热的标志,在一定条件满足的情况下block被进程访问一次touch count 增加一,到某个标准之后被移动到LRU热端(关于touch count 在这里不做详细介绍,那又将是一大篇文章)。那在短时间内从某种意义上讲,touch count 大的block可能暗示着在当前某个周期内被访问次数比较多。

select distinct a.owner,a.segment_name,a.segment_type from
dba_extents a,
(select dbarfil,dbablk
from (select dbarfil,dbablk
from x$bh order by tch desc) where rownum < 11) b
where a.RELATIVE_FNO = b.dbarfil
and a.BLOCK_ID <= b.dbablk and a.block_id + a.blocks > b.dbablk;

OWNER SEGMENT_NAME SEGMENT_TYPE
------------------------------ ------------------------------ ------------------
ALIBABA CMNTY_USER_MESSAGE TABLE
ALIBABA MEMBER_PK INDEX
ALIBABA OFFER_DRAFT_GMDFY_IND INDEX

同上面一样还有这个方法

select object_name
from dba_objects
where data_object_id in
(select obj
from (select obj
from x$bh order by tch desc) where rownum < 11) ;
OBJECT_NAME
---------------------------------------------------
DUAL
MEMBER_PK
SAMPLE_GROUP_PK
CMNTY_USER_MESSAGE_TD_BSM_IND
OFFER_DRAFT_MID_GMDFY_IND
OFFER_MID_GPOST_IND
OFFER_DRAFT_PK
MEMBER_GLLOGIN_IND
OFFER_MID_STAT_GEXPIRE_IND
SAMPLE_MID_STAT_IND

10 rows selected.

到这里,我们寻找热点块和热点对象的工作算是完成了,但我们还并没有解决问题。

热点问题的解决

热点块和热点对象我们都找到了,但是我们该怎么来解决这个问题呢?一般来说,热点块会导致cache buffers chains竞争等待,但并不是说cache buffer chains一定是因为热点块而起,在特别情况下有可能是因为latch数量的问题导致的,也就是一个latch管理的buffers数量太多而导致竞争激烈。但是latch数量我们一般是不会轻易去设置的,这是oracle的隐藏参数。

实际上最有效的办法,是从优化sql入手,不良的sql往往带来大量的不必要的访问,这是造成热点块的根源。比如本该通过全表扫描的查询却走了索引的range scan,这样将带来大量的对块的重复访问。从而形成热点问题。再或者比如不当地走了nested loops的表连接,也可能对非驱动表造成大量的重复访问。那么在这个时候,我们的目标就是找出这些sql来并尝试优化。在statspack报告中,根据报告中sql列表,我们如果是通过dba_extents确定的热点对象而不是通过dba_objects确定的,则可以通过查找出的热点segment转换为对应的表,对于非分区的索引,index_name就是segment_name,通过dba_indexes很容易的找到对应的table_name,对于分区表和分区索引也能通过和dba_tab_partition和dba_ind_partitions找到segment和table的对应关系。通过这些table到statspack报告中去找相关的sql。

select sql_text
from stats$sqltext a,
(select distinct a.owner,a.segment_name,a.segment_type from
dba_extents a,
(select dbarfil,dbablk
from (select dbarfil,dbablk
from x$bh order by tch desc) where rownum < 11) b
where a.RELATIVE_FNO = b.dbarfil
and a.BLOCK_ID <= b.dbablk and a.block_id + a.blocks > b.dbablk) b
where a.sql_text like '%'||b.segment_name||'%' and b.segment_type = 'TABLE'
order by a.hash_value,a.address,a.piece;

SQL_TEXT
----------------------------------------------------------------
SELECT SEQ_SMS_TRANSACTION.nextval FROM DUAL
SELECT SEQ_BIZ_EXPRESS.nextval FROM DUAL
SELECT bizgroup.seq_grp_post.NextVal FROM DUAL
SELECT SEQ_SAMPLE.nextval FROM DUAL
SELECT bizgroup.seq_grp_user.NextVal FROM DUAL
SELECT SEQ_BIZ_SEARCHER.nextval FROM DUAL
SELECT SEQ_OFFER_DRAFT.nextval FROM DUAL
select seq_Company_Draft.NextVal from DUAL
SELECT SEQ_SAMPLE_GROUP.nextval FROM DUAL
SELECT SEQ_CMNTY_USER_MESSAGE.nextval FROM DUAL
SELECT SYSDATE FROM DUAL
select seq_News_Forum.NextVal from DUAL
SELECT SEQ_SMS_USER.nextval FROM DUAL
select seq_Biz_Member.NextVal from DUAL
select seq_Pymt_Managing.NextVal from DUAL
E= '+08:00' NLS_DUAL_CURRENCY = '$' NLS_TIME_FORMAT = 'HH.MI.SSX
SELECT SEQ_COMPANY_DRAFT.nextval FROM DUAL
SELECT 1 FROM DUAL
select seq_offer_draft.NextVal from DUAL
select seq_Biz_Express_Category.NextVal from DUAL

20 rows selected.

当然这里是从statspack搜集的stats$sqltext中去找的(你可以在statspack的文本报告中去找),实际上,我们可以直接在当前数据库中的v$sqlarea或者v$sqltext里面去找到这些sql,然后来尝试优化。

select sql_text
from v$sqltext a,
(select distinct a.owner,a.segment_name,a.segment_type from
dba_extents a,
(select dbarfil,dbablk
from (select dbarfil,dbablk
from x$bh order by tch desc) where rownum < 11) b
where a.RELATIVE_FNO = b.dbarfil
and a.BLOCK_ID <= b.dbablk and a.block_id + a.blocks > b.dbablk) b
where a.sql_text like '%'||b.segment_name||'%' and b.segment_type = 'TABLE'
order by a.hash_value,a.address,a.piece;
SQL_TEXT
----------------------------------------------------------------
SELECT NULL FROM DUAL FOR UPDATE NOWAIT
SELECT SEQ_SMS_TRANSACTION.nextval FROM DUAL
SELECT SEQ_BIZ_EXPRESS.nextval FROM DUAL
SELECT SEQ_IM_GROUP.nextval FROM DUAL
SELECT SEQ_SAMPLE.nextval FROM DUAL
='DD-MON-RR HH.MI.SSXFF AM TZR' NLS_DUAL_CURRENCY='$' NLS_COMP='
SELECT SEQ_BIZ_SEARCHER.nextval FROM DUAL
SELECT SEQ_OFFER_DRAFT.nextval FROM DUAL
SELECT SEQ_SAMPLE_GROUP.nextval FROM DUAL
DD-MON-RR HH.MI.SSXFF AM TZR' NLS_DUAL_CURRENCY='$' NLS_COMP='BI
SELECT SEQ_CMNTY_USER_MESSAGE.nextval FROM DUAL
SELECT SYSDATE FROM DUAL
SELECT SEQ_SMS_USER.nextval FROM DUAL
IMESTAMP_TZ_FORMAT='DD-MON-RR HH.MI.SSXFF AM TZR' NLS_DUAL_CURRE
SELECT SEQ_COMPANY_DRAFT.nextval FROM DUAL
SELECT 1 FROM DUAL
SELECT USER FROM DUAL
SELECT DECODE('A','A','1','2') FROM DUAL

18 rows selected.


除了优化sql外,当然对于热点的表或者索引来说,如果小的话,我们可以考虑cache在内存中,这样可能降低物理读提高sql运行速度(这并不会减少cache buffer chains的访问次数),对于序列,我们可以对序列多设置一些cache。如果是并行服务器环境中的索引对象,并且这个索引是系列递增类型,我们可以考虑反向索引(关于反向索引这里就不过多地做介绍了)。

热点块的其他相关症状

在数据库中还可能存在一些其他方面的热点块症状,通过v$waitstat的等待可以看出一些端倪,v$waitstat是根据数据缓冲区中各种block的类型(x$bh.class)而分类统计的等待状况。

select">sys@OCN>select * from v$waitstat;

CLASS COUNT TIME
------------------ ---------- ----------
data block 1726977 452542
sort block 0 0
save undo block 0 0
segment header 40 11
save undo header 0 0
free list 0 0
extent map 0 0
1st level bmb 611 112
2nd level bmb 42 13
3rd level bmb 0 0
bitmap block 0 0
bitmap index block 0 0
file header block 13 92
unused 0 0
system undo header 111 28
system undo block 7 0
undo header 2765 187
undo block 633 156


比如在ASSM表空间出现之前,由于freelist的存在,如果表经常被并发的进程DML,则可能存在大量的data block的等待,或者有free list的等待。那么这个时候我们发现这样的segment之后需要考虑增加freelist数量。再比如经常发生长时间的DML的表被频繁地访问,这样将会造成过多的对回滚段中块的访问,这时可能undo block 的等待会比较多。那么我们可能需要控制DML的时间长度或者想办法从应用程序入手来解决问题。如果是undo header的等待比较多,没使用undo tablespace 之前,可能需要考虑增加回滚段的数量。

总结

本文从热点块的原理入手,详细地由oracle的内部结构特征开始介绍了热点块的产生和表现特征。进而阐述了诊断热点对象和找出造成热点对象的sql的方法。并从解决热点问题方面提供了解决方向。

Posted by eygle at 9:47 PM | Comments (0)

证明truncate发出了可观察的commit命令

出处:http://www.eygle.com/digest

作者:biti_rainy (出处)

一般来说,我们通常认为,truncate 的伪代码是:

commit; ---------- 1
truncate;
commit; ------------ 2

那我们有个疑问,commit 1和 truncate 是不可分割的吗?具有原子性吗?那我们来看看下面的演示

session 1:
SQL> create table t as select * from all_objects where rownum < 11;

Table created.

SQL> delete from t where rownum = 1;

1 row deleted.

SQL>



session 2:

SQL> lock table t in exclusive mode;



很明显,session 2 在这里被hang住了


session 1:

SQL> create table t as select * from all_objects where rownum < 11;

Table created.

SQL> delete from t where rownum = 1;

1 row deleted.

SQL> commit;

Commit complete.

SQL>


再看 session 2

SQL> lock table t in exclusive mode;

Table(s) Locked.

SQL>


加锁成功

这时我们再在 session 1上执行delete操作

session 1:

SQL> create table t as select * from all_objects where rownum < 11;

Table created.

SQL> delete from t where rownum = 1;

1 row deleted.

SQL> commit;

Commit complete.

SQL> delete from t where rownum = 1;


这时被阻塞了


接下来我们去 session 2中去尝试truncate

session 2:

SQL> lock table t in exclusive mode;

Table(s) Locked.

SQL> truncate table t;
truncate table t
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified


SQL>

发现truncate 失败,切到 session 1 看看
SQL> create table t as select * from all_objects where rownum < 11;

Table created.

SQL> delete from t where rownum = 1;

1 row deleted.

SQL> commit;

Commit complete.

SQL> delete from t where rownum = 1;

1 row deleted.

SQL>


    发现 session 1的删除居然成功了,而session 2的truncate 却失败了。这说明,当 session 2 truncate发出commit 1 之后,还没有执行truncate,在这之前session 1的delete操作由于是被 lock table 阻塞但是时间却在 truncate 之前,所以在这个间歇中 session 抢在了前面,从而导致 truncate 失败。

    其实之所以要做这个测试,也不纯粹是无聊,是因为我们有一个程序,需要首先truncate一个表,然后另一个进程去做一些数据的操作,如果truncate失败则后续的操作就有问题,但是truncate失败却不能阻止后面的进程的操作。当时我在想能否在truncate之前使用lock  table 去加锁,直到其他进程dml完毕这个进程获得了独占表锁然后truncate,看看这样是否可行。结果很遗憾,我的测试结果发现这个想法是不大现实的。 

Posted by eygle at 5:27 PM | Comments (0)

在线日志文件损坏与ora-600 [4000]处理

出处:http://www.eygle.com/digest

作者: logzgh (出处)

这次又是一台机器上面有两个实例A和B。又是由于非当前的在线日志文件的状态是处于closed状态的(裸设备),于是dba将A节点的非当前在线日志文件填加到了B节点上面去了,于是在A节点日志发生切换时,导致了当前在线日志文件损坏。

一般情况下当前在线日志文件损坏也是还好处理的,但是这次却是较为复杂。。。。

系统环境:aix p550,oracle 9206

首先检查v$datafile_header,发现checkpoint_change#都是一致的。

于是按着一般的当前在线日志文件损坏步骤处理:

增加下列参数至Oracle启动文件:

_allow_resetlogs_corruption=TRUE

_corrupted_rollback_segments=(list of all your rollback segments)
注释掉启动文件中的rollback_segments参数或undo_tablespaces参数

startup mount
recover database until cancel
alter database open resetlogs;

一般情况下,open resetlogs后最容易出现的600号错误为ora-600 [2662]和ora-600 [2256]。这两个错误也相对来说好处理一些,只需要采用10015事件adjust scn号即可。

但是这次我却是碰到了ora-600 [4000]号错误。

Errors in file /home/oracle/app/oracle/admin/test/udump/test_ora_2838638.trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [4000], [46], [], [], [], [], [], []
Mon Aug 14 15:05:31 2006
Error 704 happened during db open, shutting down database
USER: terminating instance due to error 704
Instance terminated by USER, pid = 2838638

metalink上对该错误的解释是:

DESCRIPTION:

This has the potential to be a very serious error.

It means that Oracle has tried to find an undo segment number in the
dictionary cache and failed.

ARGUMENTS:
Arg [a] Undo segment number

FUNCTIONALITY:
KERNEL TRANSACTION UNDO

IMPACT:
INSTANCE FAILURE - Instance will not restart
STATEMENT FAILURE


由于一开始_corrupted_rollback_segments里面只是列到_syssmu20$,于是将它列到_syssmu60$。重试后还是报这个错。

增加10513事件,禁止smon进程回滚,结果还是一样。

在600号的Trace文件中有:

ORA-00600: internal error code, arguments: [4000], [46], [], [], [], [], [], []
Current SQL statement for this session:
select ctime, mtime, stime from obj$ where obj# = :1

于是我怀疑会不会是undo$基表中没有46号回滚段的信息?

采用bbed检查undo$表格,发现里面是有这个回滚段的信息。

于是我想这个错误是出现在访问obj$基表上面,也就是说该表格的scn号与系统当前的scn号是不一致的。于是我想偿试修改该块的scn号。依然采用bbed,偿试修改该块的scn号。修改后,结果还是一样的。

于是我想应该是obj$基表上还有一个未提交的事务。于是继续查看trace文件,发现如下信息:

Itl Xid Uba Flag Lck Scn/Fsc 0x01 0x002e.025.00005b2c 0x00800f78.080c.01 --U- 1 fsc 0x0000.c5b527cf

data_block_dump,data header at 0x700000001f6e044
===============
tsiz: 0x1fb8
hsiz: 0xea
pbl: 0x700000001f6e044
bdba: 0x0040007a
76543210
flag=--------

很明显,是有一个未提交的事务,于是我就偿试用bbed修改该事务的状态,将该事务改成提交状态。

首先找到itl信息:find /x 00005b2c,找到flag状态,现在其状态是20,也就是未提交,将之修改为80(提交状态),并修改checkval。

之后去掉所有隐含参数,正常启动数据库,发现后台报出了ora-600[2662]错误。哈哈,事情至此就好办了,采用10015 adjust scn号,正常启动数据库:

Mon Aug 14 15:47:23 2006
Completed: ALTER DATABASE OPEN
Mon Aug 14 15:47:23 2006
Fatal internal error happened while SMON was doing active transaction recovery.
Mon Aug 14 15:47:23 2006
Errors in file /home/oracle/app/oracle/admin/test/bdump/test_smon_2293872.trc:
ORA-00600: internal error code, arguments: [ktpridestroy2], [], [], [], [], [], [], []
SMON: terminating instance due to error 600
Instance terminated by SMON, pid = 2293872

从这块日志可以看出数据库正常启动后,马上因为smon回滚又导致了实例宕下来。

增加10513事件,启动数据库,一切正常。

想drop tablespce undotbs1,但是报出59号回滚段还有active事务无法删除。

于是增加_corrupted_rollback_segments参数,将数据库启来,新建一个回滚表空间,将原来的回滚表空间重建后,一切正常。

Posted by eygle at 5:16 PM | Comments (0)

November 24, 2006

令理科生失去理智的几份答卷……

出处:http://www.eygle.com/digest

1.展开方程

(老师还批注:very funny,peter!)

2.“找出”X



3.极限



4.约分



5.无语

(原文出处)

Posted by eygle at 9:36 PM | Comments (0)

November 23, 2006

Windows下Chcp命令的用法

出处:http://www.eygle.com/digest

顯示作用中主控台字碼頁的頁碼,或變更主控台的使用中字碼頁。若不使用參數而單獨使用此命令,chcp 會顯示使用中之主控台字碼頁的頁碼。

Syntax

chcp [NNN]

Parameters

NNN

指定字碼頁。下表列出支援的所有字碼頁,及其國家 (地區) 或語言:

字碼頁 國家 (地區) 或語言

437

美國

850

多語言系統 (拉丁 I)

852

斯拉夫文 (拉丁文 II)

855

古斯拉夫文 (俄文)

857

土耳其文

860

葡萄牙文

861

冰島文

863

加拿大法語區

865

日耳曼文

866

俄文

869

現代希臘文

/?

在命令提示字元上顯示說明。

Remarks

在使用「點陣」字型的命令提示字元視窗中,僅有與 Windows XP 一起安裝的原始設備廠商 (OEM) 字碼頁可正確顯示。其他字碼頁則必須在全螢幕模式或使用 TrueType 字型的命令提示字元視窗中才會正確地顯示。

在 MS-DOS 中無需準備字碼頁。

指派新字碼頁之後啟動的程式使用新字碼頁,但指派新字碼頁之前啟動的程式 (Cmd.exe 除外) 則會使用原來的字碼頁。

Examples

若要檢視使用中的字碼頁設定,請輸入:

chcp

與下面相似的訊息出現:

Active code page: 437

若要將使用中的字碼頁變更為 850 (多語言系統),請輸入下列命令:

chcp 850

如果指定的字碼頁無效,會出現下列錯誤訊息:

Invalid code page

Posted by eygle at 3:28 PM | Comments (0)

互联网协会正式公布恶意软件最终定义

出处:http://www.eygle.com/digest

中国互联网协会今日正式公布了最终版本的“恶意软件”定义。自11月8日“恶意软件定义”征求意见稿出台后,协会共收到8500多条反馈意见,将其归纳为50条后进行了讨论。

经反恶意软件协调工作组讨论确定,恶意软件是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵害用户合法权益的软件,但不包含我国法律法规规定的计算机病毒。

具有下列特征之一的软件可以被认为是恶意软件:

1.强制安装:指未明确提示用户或未经用户许可,在用户计算机或其他终端上安装软件的行为。
2.难以卸载:指未提供通用的卸载方式,或在不受其他软件影响、人为破坏的情况下,卸载后仍然有活动程序的行为。
3.浏览器劫持:指未经用户许可,修改用户浏览器或其他相关设置,迫使用户访问特定网站或导致用户无法正常上网的行为。
4.广告弹出:指未明确提示用户或未经用户许可,利用安装在用户计算机或其他终端上的软件弹出广告的行为。
5.恶意收集用户信息:指未明确提示用户或未经用户许可,恶意收集用户信息的行为。
6.恶意卸载:指未明确提示用户、未经用户许可,或误导、欺骗用户卸载其他软件的行为。
7.恶意捆绑:指在软件中捆绑已被认定为恶意软件的行为。
8.其他侵害用户软件安装、使用和卸载知情权、选择权的恶意行为。

互联网协会称,“‘恶意软件定义’是中国互联网协会反恶意软件协调工作组成员单位和社会各界达成的共识,因此这一定义具有代表性和权威性。”

反恶意软件协调工作组成员单位代表纷纷表示,将率先按照这一定义规范自己的服务,在相关互联网服务当中发挥表率作用。

反恶意软件协调工作组成立于10月26日,其成员单位包括新浪、网易、雅虎(中国)、奇虎等。((记者 刘育英 来源))

Posted by eygle at 1:10 PM | Comments (2)

November 15, 2006

Linux中如何校验哪些端口正在监听

出处:http://www.eygle.com/digest

配置了网络服务之后,关注一下哪些端口在监听系统的网络接口这一点很重要。任何打开的端口都可能是入侵的证明。

要列举正在监听网络的端口,有两种基本方法。一种不太可靠的方法是通过键入 netstat -an 或 lsof -i 之类的命令来查询网络堆栈。这种方法之所以不太可靠是因为这些程序不连接网络上的机器,而是查看系统上在运行什么。因此,它们频繁成为攻击者的替换目标。怪客在打开了未经授权的网络端口后,就以这种方法来企图掩盖他们的踪迹。

更可靠的方法是使用 nmap 之类的端口扫描器来检查哪些端口正在监听网络。

以下从控制台发出的命令会判定哪些端口在监听来自网络上的 TCP 连接:

nmap -sT -O localhost

该命令的输出和以下相似:

Starting nmap V. 3.00 ( www.insecure.org/nmap/ ) Interesting ports on localhost.localdomain (127.0.0.1): (The 1596 ports scanned but not shown below are in state: closed) Port State Service 22/tcp open ssh 111/tcp open sunrpc 515/tcp open printer 834/tcp open unknown 6000/tcp open X11 Remote OS guesses: Linux Kernel 2.4.0 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)

Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds


该输出显示了由于 sunrpc 服务的存在,系统正在运行 portmap。然而,端口834上还有一个神秘服务。要查看一下该端口是否和任何已知服务相关,键入:

cat /etc/services | grep 834

该命令没有返回任何输出。这表明虽然该端口是在保留范围内(即从0到1023内),并且需要根权限才能打开,它并没有关联任何已知服务。

下一步,检查使用 netstat 或 lsof 的端口的信息。要使用 netstat 检查端口834,使用以下命令:

netstat -anp | grep 834

该命令返回以下输出:

tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind

这个开放端口在 netstat 中存在,这一点比较令人安慰,因为如果怪客在被攻击的系统上暗中打开一个端口,他们很可能不会让这个端口使用该命令被暴露出来。还有,[p] 选项揭示了打开这个端口的进程 id(PID)。在这个例子中,被打开的端口属于 ypbind(NIS),这是和 portmap 服务一起进行的 RPC 服务。

lsof 命令揭示了相似的信息,因为它也能够链接开放端口和服务:

lsof -i | grep 834

以下是这个命令中和讨论有关的输出部分:

ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)

这些工具揭示了大量关于运行在机器上的服务状态的信息。它们很灵活,能够提供关于网络服务和配置的许多信息。强烈推荐你阅读 lsof、netstat、nmap 和 services 的说明书页。

-The End-

Posted by eygle at 2:10 PM | Comments (1)

November 12, 2006

Linux中如何替换文件名中的空格

出处:http://www.eygle.com/digest

用 tr :

find . -type f -name "* *" -print |
while read name; do
na=$(echo $name | tr ' ' '_')


if [[ $name != $na ]]; then
mv "$name" $na
fi
done

记录一下备忘。

-The End-

Posted by eygle at 12:20 PM | Comments (0)

November 10, 2006

Linux/Unix下如何删除具有特殊字符的文件

出处:http://www.eygle.com/digest

假设Linux系统中有一个文件名叫“-ee”,如果我们想对它进行操作,例如要删除它
按照一般的删除方法在命令行中输入rm -ee命令,界面会提示我们是“无效选项”(invalid option)

原来由于文件名的第一个字符为“-”,Linux把文件名当作选项了
我们可以使用“--”符号来解决这个问题,输入“rm -- -ee”命令便可顺利删除名为“-ee”的文件。

如果是其他特殊字符的话可以在特殊字符前加一个“”符号,或者用双引号把整个文件名括起来。

Posted by eygle at 11:16 AM | Comments (0)

华友世纪1800万购入股鸟人艺术30%股份

出处:http://www.eygle.com/digest

  11月9日傍晚,华友世纪正式确认1800万元入股鸟人艺术公司。据了解,华友世纪通过旗下公司华友数码传媒收购,来完成对鸟人艺术30%股份的收购。

  鸟人艺术是旗下拥有庞龙等著名的网络歌手。华友世纪称,一年后视鸟人艺术的业绩进行追加投资。

  据透露,在未来一年内,华友数码传媒将获得除彩铃外鸟人艺术所有版权作品的独家使用权。华友数码传媒CEO杨浩宇和总裁吴锋将出任鸟人艺术董事,而董事长一职将由鸟人艺术总经理周亚平出任。

  成立于1994年底的鸟人艺术,旗下目前汇集了庞龙、南合文斗、常海、大麦、韩东、花泽冰、牛朝阳、张拉拉、张真贺等数十位知名歌手,拥有包括《两只蝴蝶》、《你是我的玫瑰花》等录音录像制品、影视作品的版权资料库。

  此前,庞龙的《两只蝴蝶》曾创造单月彩铃下载量500万次的纪录,更有数据称《两只蝴蝶》目前已超过亿次的下载量。而庞龙的另一首歌《你是我的玫瑰花》曾连续12期稳居中国移动无线音乐排行榜销量冠军。

  华友世纪此前曾经和鸟人艺术在业务上有过很多合作,双方曾共同推出国内第一张手机唱片《你是我的玫瑰花》。

  在这之前,华友世纪已经多次投资传统唱片公司。2005年11月14日,华友世纪6000万元收购飞乐唱片60%股份,首次涉足传统唱片领域。同年12月12日,华友世纪3500万元控股华谊兄弟音乐。(网易科技 刘阳

Posted by eygle at 9:44 AM | Comments (0)

November 8, 2006

管理学中的经典定律-水桶定律、酒水定律

出处:http://www.eygle.com/digest

七、酒与污水定律
  酒与污水定律是指,如果把一匙酒倒进一桶污水中,你得到的是一桶污水;如果把一匙污水倒进一桶酒中,你得到的还是一桶污水。几乎在任何组织里,都存在几个难弄的人物,他们存在的目的似乎就是为了把事情搞糟。他们到处搬弄是非,传播流言、破坏组织内部的和谐。最糟糕的是,他们像果箱里的烂苹果,如果你不及时处理,它会迅速传染,把果箱里其它苹果也弄烂,"烂苹果"的可怕之处在于它那惊人的破坏力。一个正直能干的人进入一个混乱的部门可能会被吞没,而一个人无德无才者能很快将一个高效的部门变成一盘散沙。组织系统往往是脆弱的,是建立在相互理解、妥协和容忍的基础上的,它很容易被侵害、被毒化。破坏者能力非凡的另一个重要原因在于,破坏总比建设容易。一个能工巧匠花费时日精心制作的陶瓷器,一头驴子一秒钟就能毁坏掉。

  如果拥有再多的能工巧匠,也不会有多少像样的工作成果。如果你的组织里有这样的一头驴子,你应该马上把它清除掉;如果你无力这样做,你就应该把它拴起来。

八、华盛顿合作规律
  华盛顿合作规律说的是:一个人敷衍了事,两个人互相推诿,三个人则永无成事之日。多少有点类似于我们"三个和尚"的故事。人与人的合作不是人力的简单相加,而是要复杂和微妙得多。在人与人的合作中,假定每个人的能力都为1,那么10个人的合作结果就有时比10大得多,有时甚至比1还要小。因为人不是静止的动物,而更像方向各异的能量,相推动时自然事半功倍,相互抵触时则一事无成。我们传统的管理理论中,对合作研究得并不多,最直观的反映就是,目前的大多数管理制度和行业都是致力于减少人力的无谓消耗,而非利用组织提高人的效能。换言之,不妨说管理的主要目的不是让每个人做到最好,而是避免内耗过多。21世纪将是一个合作的时代,值得庆幸的是,越来越多的人已经认识到真诚合作的重要性,正在努力学习合作。

  邦尼人力定律:一个人一分钟可以挖一个洞,六十个人一秒种却挖不了一个洞。

  合作是一个问题,如何合作也是一个问题。

九、水桶定律
  水桶定律是讲,一只水桶能装多少水,完全取决于它最短的那块木板。这就是说任何一个组织都可能面临的一个共同问题,即构成组织的各个部分往往决定了整个组织的水平。

  构成组织的各个部分往往是优劣不齐的,而劣质部分往往又决定整个组织的水平。

  "水桶定律"与"酒与污水定律"不同,后者讨论的是组织中的破坏力量,而"最短的木板"却是组织中有用的一个部分,只不过比其它部分差一些,你不能把它们当成烂苹果扔掉。强弱只是相对而言的,无法消除。问题在于你容忍这种弱点到什么程度。

  如果它严重到成为阻碍工作的瓶颈,就不得不有所动作。

  如果你在一个组织中,你应该:

1、确保你不是最薄弱的部分;
2、避免或减少这一薄弱环节对你成功的影响;
3、如果不幸,你正处在这一环节中,你还可以采取有效的方法改进,或者转职去谋另一份工作。

十、蘑菇管理
  蘑菇管理是许多组织对待初出茅庐者的一种管理方法,初学者被置于阴暗的角落(不受重视的部门,或打杂跑腿的工作),浇上一头大粪(无端的批评、指责、代人受过),任其自生自灭(得不到必要的指导和提携)。相信很多人都有这样一段"蘑菇"的经历,但这不一定是什么坏事,尤其是当一切都刚刚开始的时候,当上几天"蘑菇",能够消除我们很多不切实际的幻想,让我们更加接近现实,看问题也更加实际,而对一个组织而言,一般地新进的人员都是一视同仁,从起薪到工作都不会有大的差别。无论你是多么优秀的人才,在刚开始的时候都只能从最简单的事情做起,"蘑菇"的经历对于成长中的年轻人来说,就像蚕茧,是羽化前必须经历的一步。所以,如何高效率地走过生命中的这一段,从中尽可能吸取经验,成熟起来,并树立良好的值得信赖的个人形象,是每个刚入社会的年轻人必须面对的课题。

十一、奥卡姆剃刀定律
  如果你认为只有焦头烂额、忙忙碌碌地工作才可能取得成功,那么,你错了。

  事情总是朝着复杂的方向发展,复杂会造成浪费,而效能则来自于单纯。在你做过的事情中可能绝大部分是毫无意义的,真正有效的活动只是其中的一小部分,而它们通常隐含于繁杂的事物中。找到关键的部分,去掉多余的活动,成功并不那么复杂。

  奥卡姆剃刀:如无发要,勿增实体。

  12世纪,英国奥卡姆的威廉对无休无止的关于"共相"、"本质"之类的争吵感到厌倦,主张唯名论,只承认确实存在的东西,认为那些空洞无物的普遍性要领都是无用的累赘,应当被无情地"剃除"。他主张,"如无必要,勿增实体。"这就是常说的"奥卡姆剃刀"。这把剃刀曾使很多人感到威胁,被认为是异端邪说,威廉本人也受到伤害。然而,这并未损害这把刀的锋利,相反,经过数百年越来越快,并早已超越了原来狭窄的领域而具有广泛的、丰富的、深刻的意义。

  奥卡姆剃刀定律在企业管理中可进一步深化为简单与复杂定律:把事情变复杂很简单,把事情变简单很复杂。这个定律要求,我们在处理事情时,要把握事情的主要实质,把握主流,解决最根本的问题。尤其要顺应自然,不要把事情人为地复杂化,这样才能把事情处理好。

十二、二八法则
  你所完成的工作里80%的成果,来自于你20%的付出;而80%的付出,只换来20%的成果。

十三、钱的问题
  当某人告诉你:"不是钱,而是原则问题"时,十有八九就是钱的问题。

  关于金钱的本质、作用和功过,从古到今,人们已经留下了无数精辟深刻的格言和妙语。我们常会看到,人们为钱而兴奋,努力赚钱,用财富的画面挑逗自己。金钱对世界的秩序以及我们的生活产生的影响是巨大的、广泛的,这种影响有时是潜在的,我们往往意识不到它的作用如此巨大,然而奇妙的是:它完全是人类自己创造的。致富的驱动力并不是起源于生物学上的需要,动物生活中也找不到任何相同的现象。它不能顺应基本的目标,不能满足根本的需求——的确,"致富"的定义就是获得超过自己需要的东西。然而这个看起来漫无目标的驱动力却是人类最强大的力量,人类为金钱而互相伤害,远超过其他原因。

  照一般的说法,金钱是价值的尺度,交换的媒介,财富的贮藏。但是这种说法忽略了它的另一面,它令人陶醉、令人疯狂、令人激动的一面,也撇开了爱钱的心理不谈。

  马克思说,金钱是"人情的离心力",就是指这一方面而言。

Posted by eygle at 3:36 PM | Comments (0)

管理学中的经典定律-彼得原理、零和原理

出处:http://www.eygle.com/digest

四、不值得定律
  不值得定律最直观的表述是:不值得做的事情,就不值得做好,这个定律似乎再简单不过了,但它的重要性却时时被人们疏忘。不值得定律反映出人们的一种心理,一个人如果从事的是一份自认为不值得做的事情,往往会保持冷嘲热讽,敷衍了事的态度。

  不仅成功率小,而且即使成功,也不会觉得有多大的成就感。

  哪些事值得做呢?一般而言,这取决于三个因素。

  1、价值观。关于价值观我们已经谈了很多,只有符合我们价值观的事,我们才会满怀热情去做。

  2、个性和气质。一个人如果做一份与他的个性气质完全背离的工作,他是很难做好的,如一个好交往的人成了档案员,或一个害羞者不得不每天和不同的人打交道。

  3、现实的处境。同样一份工作,在不同的处境下去做,给我们的感受也是不同的。例如,在一家大公司,如果你最初做的是打杂跑腿的工作,你很可能认为是不值得的,可是,一旦你被提升为领班或部门经理,你就不会这样认为了。

  总结一下,值得做的工作是:符合我们的价值观,适合我们的个性与气质,并能让我们看到期望。如果你的工作不具备这三个因素,你就要考虑换一个更合适的工作,并努力做好它。

  因此,对个人来说,应在多种可供选择的奋斗目标及价值观中挑选一种,然后为之而奋斗。"选择你所爱的,爱你所选择的",才可能激发我们的奋斗毅力,也才可以心安理得。而对一个企业或组织来说,则要很好地分析员工的性格特性,合理分配工作,如让成就欲较强的职工单独或牵头来完成具有一定风险和难度的工作,并在其完成时给予定时的肯定和赞扬;让依附欲较强的职工更多地参加到某个团体中共同工作;让权力欲较强的职工担任一个与之能力相适应的主管。同时要加强员工对企业目标的认同感,让员工感觉到自己所做的工作是值得的,这样才能激发职工的热情。

五、彼得原理
  彼得原理是美国学者劳伦斯?彼得在对组织中人员晋升的相关现象研究后得出的一个结论;在各种组织中,由于习惯于对在某个等级上称职的人员进行晋升提拔,因而雇员总是趋向于晋升到其不称职的地位。彼得原理有时也被称为"向上爬"原理。

  这种现象在现实生活中无处不在:一名称职的教授被提升为大学校长后无法胜任;一个优秀的运动员被提升为主管体育的官员,而无所作为。

  对一个组织而言,一旦组织中的相当部分人员被推到了其不称职的级别,就会造成组织的人浮于事,效率低下,导致平庸者出人头地,发展停滞。因此,这就要求改变单纯的"根据贡献决定晋升"的企业员工晋升机制,不能因某个人在某一个岗位级别上干得很出色,就推断此人一定能够胜任更高一级的职务。要建立科学、合理的人员选聘机制,客观评价每一位职工的能力和水平,将职工安排到其可以胜任的岗位。不要把岗位晋升当成对职工的主要奖励方式,应建立更有效的奖励机制,更多地以加薪、休假等方式作为奖励手段。有时将一名职工晋升到一个其无法很好发挥才能的岗位,不仅不是对职工的奖励,反而使职工无法很好发挥才能,也给企业带来损失。

  对个人而言,虽然我们每个人都期待着不停地升职,但不要将往上爬作为自己的惟一动力。与其在一个无法完全胜任的岗位勉力支撑、无所适从,还不如找一个自己能游刃有余的岗位好好发挥自己的专长。

六、零和游戏原理
  当你看到两位对弈者时,你就可以说他们正在玩"零和游戏"。因为在大多数情况下,总会有一个赢,一个输,如果我们把获胜计算为得1分,而输棋为-1分,那么,这两人得分之和就是:1+(-1) =0.这正是"零和游戏"的基本内容:游戏者有输有赢,一方所赢正是另一方所输,游戏的总成绩永远是零。

  零和游戏原理之所以广受关注,主要是因为人们发现在社会的方方面面都能发现与 "零和游戏"类似的局面,胜利者的光荣后面往往隐藏着失败者的辛酸和苦涩。从个人到国家,从政治到经济,似乎无不验证了世界正是一个巨大的"零和游戏" 场。这种理论认为,世界是一个封闭的系统,财富、资源、机遇都是有限的,个别人、个别地区和个别国家财富的增加必然意味着对其他人、其他地区和国家的掠夺,这是一个"邪恶进化论"式的弱肉强食的世界。

  但20世纪人类在经历了两次世界大战,经济的高速增长、科技进步、全球化以及日益严重的环境污染之后,"零和游戏"观念正逐渐被"双赢"观念所取代。人们开始认识到"利己"不一定要建立在"损人"的基础上。通过有效合作,皆大欢喜的结局是可能出现的。但从"零和游戏"走向"双赢",要求各方要有真诚合作的精神和勇气,在合作中不要耍小聪明,不要总想占别人的小便宜,要遵守游戏规则,否则"双赢"的局面就不可能出现,最终吃亏的还是自己。

Posted by eygle at 3:31 PM | Comments (0)

管理学中的经典定律-墨菲定律、马太效应

出处:http://www.eygle.com/digest

一、墨菲定律
  墨菲定律:事情如果有变坏的可能,不管这种可能性有多小,它总会发生。比如你衣袋里有两把钥匙,一把是你房间的,一把是汽车的,如果你现在想拿出车钥匙,会发生什么?是的,你往往是拿出了房间钥匙。

  "墨菲定律"产生于美国,据说事情发生在1949年。一位名叫墨菲的空军上尉工程师,认为他的某位同事是个倒霉蛋,不经意地说了句玩笑话:"如果一件事情有可能被弄糟。"这句笑话在美国迅速流传,并扩散到世界各地。在流传扩散的过程中,这句笑话逐渐失去它原有的局限性,演变成各种各样的形式,其中一个最通行的形式是:"如果坏事有可能发生,不管这种可能性多么小,它总会发生,并引起最大可能的损失。"

  这就是著名的"墨菲定律"。

  "墨菲定律"诞生于20世纪中叶,这正是一个经济飞速发展,科技不断进步,人类真正成为世界主宰的时代。在这个时代,处处弥漫着乐观主义的精神:人类取得了对自然、对疾病以及其他限制的胜利,并将不断扩大优势;我们不但飞上了天空,而且飞向太空……我们能够随心所欲地改造世界的面貌,这一切似乎昭示着:一切问题都是可以解决的。无论是怎样的困难和挑战,我们总能找到一种办法或模式战而胜之。

  正是这种盲目的乐观主义,使我们忘记了对于亘古长存的茫茫宇宙来说,我们的智慧只能是幼稚和肤浅的。世界无比庞大复杂。人类虽很聪明,并且正变得越来越聪明,但永远也不能彻底了解世间的万事万物。人类还有个难免的弱点,就是容易犯错误,永远会犯错误。正是因为这两个原因,世界上大大小小的不幸事故、灾难才得以发生。

  近半个世纪以来,"墨菲定律"曾经搅得世界人心神不宁,它提醒我们:我们解决问题的手段越高明,我们将要面临的麻烦就越严重。事故照旧还会发生,永远会发生。"墨菲定律"忠告人们:面对人类的自身缺陷,我们最好还是想得更周到、全面一些,采取多种保险措施,防止偶然发生的人为失误导致灾难和损失。归根到底,"错误"与我们一样,都是这个世界的一部分,狂妄自大只会使用使我们自讨苦吃,我们必须学会如何接受错误,并不断从中学习。

二、马太效应
  《新约·马太福音》中有这样一个故事,一个国王远行前,交给三个仆人每人一锭银子,吩咐他们:"你们去做生意,等我回来时,再来见我。"国王回来时,第一个仆人说:"主人,你交给我们的一锭银子,我已赚了10锭。"于是国王奖励他10座城邑。第二个仆人报告说:"主人,你给我的一锭银子,我已赚了5锭。"于是国王例奖励了他5座城邑。第三个仆人报告说:"主人,你给我的一锭银子,我一直包在手巾里存着,我怕丢失,一直没有拿出来。"于是国王命令将第三个仆人的一锭银子也赏给第一个仆人,并且说:"凡是少的,就连他所有的也要夺过来。凡是多的,还要给他,叫他多多益善。"这就是马太效应。看看我们周围,就可以发现许多马太效应的例子。

  朋友多的人会借助频繁的交往得到更多的朋友;缺少朋友的人会一直孤独下去。金钱方面更是如此,即使投资回报率相同,一个比别人投资多10倍的人,收益也多10倍。

  这是个赢家通吃的社会,善用马太效应,赢家就是你。

  对企业经营发展而言,马太效应则告诉我们,要想在某一个领域保持优势,就必须在此领域迅速做大。当你成为某个领域的领头羊的时候,即使投资回报率相同,你也能更轻易的获得比弱小的同行更大的收益。而若没有实力迅速在某个领域做大,就要不停地寻找新的发展领域,才能保证获得较好的回报。

三、手表定理
  手表定理是指一个人有一只表时,可以知道现在是几点钟,而当他同时拥有两只表时却无法确定。两只表并不能告诉一个人更准确的时间,反而会让看表的人失去对准确时间的信心。你要做的就是选择其中较信赖的一只,尽力校准它,并以此作为你的标准,听从它的指引行事。记住尼采的话:"兄弟,如果你是幸运的,你只需有一种道德而不要贪多,这样,你过桥更容易些。"

  如果每个人都"选择你所爱,爱你所选择",无论成败都可以心安理得。然而,困扰很多人的是:他们被"两只表"弄得无所,心身交瘁,不知自己该信仰哪一个,还有人在环境、他人的压力下,违心选择了自己并不喜欢的道路,为此而郁郁终生,即使取得了受人瞩目的成就,也体会不到成功的快乐。

  手表定理在企业经营管理方面给我们一种非常直观的启发,就是对同一个人或同一个组织的管理不能同时采用两种不同的方法,不能同时设置两个不同的目标。甚至每一个人不能由两个人来同时指挥,否则将使这个企业或这个人无所适从。手表定理所指的另一层含义在于每个人都不能同时挑选两种不同的价值观,否则,你的行为将陷于混乱。

Posted by eygle at 3:24 PM | Comments (2)

November 7, 2006

史上最伟大的12款软件排名 DB2名列第二

出处:http://www.eygle.com/digest

美国《信息周刊》日前刊文评出了有史以来最伟大的12款软件。结果,Unix操作系统脱颖而出,排名首位。

  据榜单显示,继Unix之后,Java语言排名第五;苹果Macintosh系统位居第八,而微软的Excel电子表格和Google搜索分别列居第九和第十一位。

  有趣的是,1988年11月2日爆发的Morris蠕虫也榜上有名。当时,几天之内就有6000多台互联网服务器被感染而瘫痪,造成的经济损失超过一千万美元。

  以下为有史以来最伟大12款软件排名:

  1. Unix操作系统

  2. IBM System R-1983年以DB2的形式进入商业市场

  3.基因排序软件-美国基因组研究所(IGR)

  4. IBM System 360系统

  5. Java语言

  6. Mosaic浏览器-第一款图形界面浏览器

  7. Sabre系统-美国航空公司的信息查询系统

  8.苹果Macintosh系统

  9.微软Excel电子表格

  10.阿波罗宇宙飞船导航系统

  11.Google搜索排名

  12.Morris蠕虫-造成的经济损失超过1000万美元

Posted by eygle at 2:20 PM | Comments (2)

网络侵权处罚空前严厉 个人提供也属非法

出处:http://www.eygle.com/digest

2006.11.07 来自:北京娱乐信报

10月的最后一天,针对通过网络非法提供电影、音乐、软件和教科书下载的侵权执法行动,有关职能部门发起了一场空前严厉的打击行动。昨天,记者从北京市版权局管理处了解到,此次由国家版权局在全国开展打击网络侵权盗版专项行动涉及的诸多细节,发现不仅涉及互联网企业,和不少网民也有切身关系。

核心提示--个人不营利也不免责

此次专项行动自10月31日起,依照规定将在3个月之内即明年1月31日处理完。根据此次行动方案要求,凡是提供非法下载活动的网站一律属于清理整顿的范围(未再细分各种不同情况)。故而在执法中,只要网站有非法下载的都列入治理对象,不考虑是通过什么方式下载。无论是个人网站、BT还是P2P,或博客非法提供下载都一样。因此,个人在自己的网站或提供P2P下载的无版权电影种子属侵权内容,同样要对版权方造成的经济损失予以赔偿。

“我们提供免费内容不向网民收一分钱,不营利凭什么罚我们!”这是以前网站最常用的开脱之词。而此次对网站非法所得的界定,已经打破了这个往常的非法界定概念。以往我们都认为,认定网站是否构成侵权是依其非法内容是否向网民收取费用,同时,以其提供的侵权内容被付费下载次数去统计。

实际上,此次行动对于非法所得界定的面有了很大的拓展,其新增了4类非法获利方式:通过非法提供免费下载电影、音乐、软件等无版权内容造成的版权人损失;网站非法提供免费下载侵权内容,以吸引眼球获得的广告收益;利用非法免费提供的无版权内容,提高网站点击率把网站卖给他人获利;网站被骗使用侵权作品产生的经济效益及由此造成的版权人经济损失。

同时,对于禁止非法提供下载的软件,简单来说就是指凡是有著作权人的软件。比如: WINDOWS XP、OFFICE、金山、瑞星等市场销售的软件,这里也包括诸多收费软件的破解版,但企业提供免费试用版及其提供的合作官方下载类除外。如果是没有人主张权利的软件即公共软件,可以提供免费下载。

相关规定

处罚空前严厉

行动将重点查处经营性网站及非经营网站无信产部网站备案许可证及有登记备案的网站传播违法内容。并针对两类网站重点查处以营利为目的,通过网络提供电影、音乐、软件和教科书下载的4类非法侵权行为。下月初,将披露首批无信产部ICP备案且行为构成非法侵权的企业名单。其间,还将定期陆续披露。

对于经营网站及非经营的无信产部ICP备案,或有ICP备案但网站登载有侵权内容的,经查实,侵权情节不构成停业封站的,将视非法所得多少处以不等额的罚款。能查实非法获利金额的,将按照违法金额3倍以下处罚,若无法核实非法所得金额的就处以 10万元以下罚款。对于违反多部法律的网站将责令其整改,情节特别严重但不构成移送司法机关的可以责令关闭网站。违法情节特别严重的可以提交司法机关惩处。

电影及音乐版权问题作为近年来网络界的一个热点问题。网站提供下载电影作品非法传播达 1000次以上,将依照最高人民法院、最高人民检察院2004年12月21日发布的《关于办理侵犯知识产权刑事案件具体应用法律若干问题的解释》,将由行政执法机关?穴版权局?雪移交司法机关处理,若行为侵犯《著作权法》的将追究司法责任,可判处3年以下有期徒刑。非法传播达1000次—5000次的,可判处3年至7年有期徒刑。无法查清次数的,非法所得达5万元以上的,按《刑法》第217条侵犯著作权追究刑事责任。

要强调的是,对于网站侵权传播电影作品次数的计算,不分是单个作品还是多个不同作品,是指所有侵权作品的总和。

网站回应

非法下载对正规军不公平

记者先后就此采访了影视节目产业链中的3家业内知名网站及2家共享软件下载网站。在接受记者采访的4家网站中(有1家拒绝予以回复),51TV是1家提供下载影片片源的网站、QQ LIVE是国内一线免费提供影下载观看的网站、互联天下则是以提供网络视频技术为主的网站、天极下载是1家提供共享(公共)软件下载的IT专业网站,他们一致表示出积极支持的态度,认为国家的治理和监管非常有助于行业走上健康发展的轨道,有利于整个行业的长期稳定、蓬勃发展。

51TV作为多家著名视频网站及一线门户网站视频下载频道的内容提供商,该网站认为网站非法提供影视下载的行为,不仅严重阻碍了版权相关产业的生存和发展,严重侵犯了中外著作权人的合法权益,同时也破坏了民族文化创新能力,损害国家形象,对公共利益造成严重危害。一些内容不健康的网络盗版作品,还对未成年人的成长带来了极大的负面影响。同时,影视盗版下载也对自身经营带来不利影响。

QQ LIVE是国内P2P影视节目下载量前三名的网站,他们曾经因版权纠纷而被诉成被告,对于版权问题特别重视。他们认为,由于网络电视直播还是一个非常新的行业领域,因此相关的法规还不是很健全,一些网站非法提供影视下载是一种短视的行为,对整个行业的健康发展是不利的。大部分网民会认为它节约了观看成本,并且便捷,是件“好事”。但这种方式显然对正常的影视放映播出造成了冲击,对影院收入、电视剧随片广告收入等造成极大影响,直接后果就是打击影视制作投资者的信心和热情,正常影视观看下载的源头必然受到污染。这种方式更使一些正规渠道的网站成本相对升高、竞争力减弱,是相对不公平的。

互联天下是国内顶尖的P2P视频技术提供商,自身有一个视频播放网络平台。他们认为,短期来看,整治行动会使不少网站面临生存危机,但长远来远,它净化了行业环境,使整个行业更有生命力。但同时在实施中应注意方式。一方面操之过急过严容易对一些有想法但实力较弱网站的积极性造成冲击;另一方面此前类似的整顿往往只能在一时有效果,真正遏制这种不法行为的根源才更为重要,这点值得深思。相信合理的整顿能使大部分业内企业获得更好的生存环境。

天极下载是国内最大的IT专业网站下设的软件下载网站,提供数千种共享(公共)软件下载。他们同样表示,个别站点的非法经营行为严重损害了网民对下载站点的信任,对下载这项网络服务的健康发展是有损害的。

业界观点

搜索引擎被赦免

采访中,一位自身从事相关互联网服务的人士告诉记者,从此次版权局开展的专项行动来看,他们明确放过了所有的搜索引擎企业,因为这也是一个业内共识。同时,它也等于明确了不会涉及一些P2P点播类网站。但是,对于提供依托P2P共享技术提供影视、软件等下载的网站,如迅雷、verycd就进入整治范围。kuro就是因此败于台湾诉讼。

现在大多数中国网站的实际情况是盗版有用户但没赢利模式,正版有赢利模式没用户。其实P2P点播网站里面有大量的盗版内容,都是编辑伪装成用户上传的,没有哪家网站会真的指望用户全自主上传。(徐娅萍)

【记者观察】

对盗版咬牙也要说“No”

“免费”二字对于网站来说,就仿佛聚宝盆。借此得以拉大旗做虎皮,聚集人气获得广告或引来风投的美元注资。而对于普通网民来说,则是一顿接一顿的网络大餐。

一位网民在给记者的留言中写道:“盗版的免费电影、音乐、软件等对于我们这些网民来说,我们也知道这些东西不对,但我们对此只有两个字‘支持’。因为,我们一来是‘穷人’,至于提供者的目的与我们无关,我们只想看电影、用软件;二来有些电影拍得实在对不起电影票钱,三来有些软件动辄几千元的价格,只能沦为贵族的消费品。如果有钱了我一定会支持正版,对盗版说‘NO’。”但有资深业内人士指出,网站确实应该依靠提供免费且合法内容获得足够的点击率、知名度去赢取厂商的广告和风投的关注。如果两眼圆睁只见钱而不见法,那么其必将走向生死轮回的终点。而对于消费者,如果只图眼下利益,一味给提供非法下载的网站捧场,那么有一天这些网站都被整顿了,免费大餐也就吃到头了。还不如给正版捧场,让他们提供些合法的免费餐。

Posted by eygle at 1:47 PM | Comments (1)

腾讯、空中网等大型SP同上整顿黑名单

出处:http://www.eygle.com/digest

连续几天的大风降温,在给北京带来寒意的同时,似乎预示着SP市场的整顿将更加严厉。昨天,信产部对此前治理和规范移动信息服务业务资费和收费行为专项活动的情况进行了通报,并公布了部分多次违规企业的名单,其中腾讯、Tom、华友世纪以及空中网等大型SP,均未能逃脱被整顿的“厄运”。

  SP市场整顿初见成效

  在昨天的通报中信产部指出,经过前一段时间的整顿,用户投诉或申诉逐步下降,SP的自律意识明显增强,市场消费环境有所改善,专项活动治理已初见成效。据介绍,SP虚假宣传、诱导或诱骗订制以及强行订制并扣费是当前反映突出的问题。除了各级通信管理局对一批恶意侵害消费者利益的SP进行查处外,各基础电信运营商还开展了自查自纠工作,对侵害消费者合法权益的SP追究了其违约责任。

  据不完全统计,截止到今年8月底,各省、自治区、直辖市通信管理局共查处了327家违规SP企业,并对其分别进行了通报批评、责令整改或行政处罚。此外,各基础电信运营商及其下属公司也对存在违约行为的453家SP企业,进行了停止结算、停止业务、关闭端口和业务下线等处理。

  信产部强调,下一阶段工作的重点,是继续重视用户投诉和申诉,健全违规SP企业信息通报制度,并开展专项活动检查工作,严肃查处恶意侵害消费者利益的违规SP企业。对于情节严重的,监管机构有权责令其停业整顿。

  大型SP再遭曝光

  与此同时,信产部还公布了多次遭到查处的SP名单,腾讯、华友世纪以及空中网等大型SP不幸入围,其中华友世纪更是遭到了通信管理局和电信运营商双重整治。记者第一时间致电华友世纪,相关人士表示对此并不知情,并以尚未看到消息为由拒绝对此发表任何评论。

  实际上,这并非大型SP首次被曝光。在此前发布的信产部第三季度电信服务质量通告中,由于强行订制、订购关系异常以及未明码标价等原因,10家SP入围了该季度用户申诉主要涉及的SP名单。 

  尽管未能“逃脱”被曝光的厄运,但大型SP对市场整顿似乎并不抵触,因为“抢钱”型SP的淡出,在净化市场的同时,无疑也将减少其竞争对手的数量。搜狐无线事业部常务副总经理岳国峰近日指出,在治理活动之前,整个SP市场处于快速发展阶段,各项业务的增长都势头迅猛,而整治必然使得SP营销成本增加,其新增用户短期内也会减少。但他同时表示,市场整顿对公司业绩的影响,并没有预想中的严重。

  “抢钱”型SP淡出市场

  数据显示,从今年7月31日起,共有768家SP向信产部递交了新统一服务号码的申请表格。即使是在SP云集的北京市场,此前获得牌照的200多家企业也只有70家左右递交了申请。另据透露,从1993年信产部发放第一张增值业务牌照起至今年6月底,国内SP的总数已超过1.6万家。照此计算,已递交申请的SP仅占总数的5%。

  尽管95%的SP未向信产部递交申请,但业内人士分析,除了以“抢钱”为目的的SP之外,并非所有的企业都将退出市场。知情人士透露,这些SP只是没有主动选号而已,信产部将会为这些公司统一分配新接入号码,使其仍可从事相关增值业务。


来源:CSDN

Posted by eygle at 12:07 PM | Comments (0)

微软的Windows Defender正式版发布

出处:http://www.eygle.com/digest

微软反间谍程序Windows Defender将可供Windows XP及Windows 2003使用者免费下载,并将内建在微软最新操作系统Windows Vista中。

微软在周二(10/24)发表了反间谍程序Windows Defender正式版,并提供Windows XP及Windows 2003的使用者免费下载。

Windows Defender是微软在2004年并购 GIANT Company Software后所开发的产品,它将内建在微软最新操作系统Windows Vista中。

微软在今年2月推出了Windows Defender beta 2。微软指出,Windows Defender beta 2被下载了3400万次,而正式版则修补了测试版中约400个臭虫,并改善了侦测能力,能自动清除间谍程序,以及支持64位的Windows XP版本。

Windows Defender将可供Windows XP及Windows 2003使用者免费下载,并提供使用者两次的电话技术支持服务,目前仅有英文版,但微软预计很快就会发表支持其它语系的版本。

微软进军安全市场早就对资安业者产生不小的威胁,这也使得过去原本是微软合作伙伴的资安业者近来频频对微软展开攻击,例如赛门铁克就曾发表报告指 出微软最新操作系统Vista不够安全,而赛门铁克及McAfee也不断抗议微软64位的Vista核心会阻挡其它业者推出的安全程序,而此次 Windows Defender免费版本的出炉,也让微软及其它资安业者的竞争关系更为激烈,因为包括赛门铁克及McAfee的反间谍程序软件都是要付费的。

微软亦首次在周二发表了Windows Defender的使用结果,指出在推出Windows Defender beta 2的前三个月中,该产品总计侦测到2200万的广告或间谍程序,使用者约执行了1400万次的移除程序。

微软指出,根据统计,有逾6成的Windows Defender使用者在广告程序提供移除选项时,选择了移除广告程序。

此外,在今年4月至6月间,Windows Defender Beta 2总计移除了2849种的广告程序、间谍程序及木马下载程序等使用者不经意下载的应用程序。

Posted by eygle at 11:23 AM | Comments (0)


CopyRight © 2004-2008 eygle.com, All rights reserved.