Oracle Database Internals Newsletter October 2007

Oracle Database Internals Newsletter October 2007

oracle database internals newsletter

Oracle Global Customer Services的Internals Support Team主要负责为客户处理诸如Ora-600,Ora7445之类的内部错误以及block corruption等严重问题,现在他们开始制作Database Internals Newsletter来分享对于这类问题的处理经验,2007年10月份创刊号,不过是发布在metalink上的,需要有metalink帐号才能看了。

地址:Note 460494.1

号外:Oracle各版本最新patchset

Oracle11gR1 for linux x86 64位版本可以下载了

Oracle_linux_x86_64

http://www.oracle.com/technology/software/products/database/index.html

shell 编程之2>&1

经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用

/tmp/test.sh > /tmp/test.log 2>&1

前半部分/tmp/test.sh > /tmp/test.log很容易理解,那么后面的2>&1是怎么回事呢?

要解释这个问题,还是得提到文件重定向。我们知道>和<是文件重定向符。那么1和2是什么?在shell中,每个进程都和三个系统文件相关联:标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件的文件描述符分别为0,1和2。所以这里2>&1的意思就是将标准错误也输出到标准输出当中。

下面通过一个例子来展示2>&1有什么作用:

$ cat test.sh
t
date

test.sh中包含两个命令,其中t是一个不存在的命令,执行会报错,默认情况下,错误会输出到stderr。date则能正确执行,并且输出时间信息,默认输出到stdout

./test.sh > test1.log
./test.sh: line 1: t: command not found

$ cat test1.log
Tue Oct  9 20:51:50 CST 2007

可以看到,date的执行结果被重定向到log文件中了,而t无法执行的错误则只打印在屏幕上。

$ ./test.sh > test2.log 2>&1

$ cat test2.log
./test.sh: line 1: t: command not found
Tue Oct  9 20:53:44 CST 2007

这次,stderr和stdout的内容都被重定向到log文件中了。

实际上, > 就相当于 1> 也就是重定向标准输出,不包括标准错误。通过2>&1,就将标准错误重定向到标准输出了,那么再使用>重定向就会将标准输出和标准错误信息一同重定向了。如果只想重定向标准错误到文件中,则可以使用2> file

SAP收购BO?

SAP宣布将以68亿美元收购BusinessObjects,又一家BI领域内的大公司被IT巨鳄吞下,想起半年前Oracle以33亿美元收购海波龙(Hyperion),加上更早之前IBM吃掉DataStage,BI市场大鱼吃小鱼的演进,看来已经进入到最后关头。还剩下有谁?Informatica,Cognos,Microstrategy?一年半载之内,估计都要难逃被消灭的命运了。

DataStage和Hyperion被收购之后,都未见有大的发展,不知道这次BO的命运如何。不过SAP不像Oracle,一般不太搞收购这一套,很多东西都是自己另起炉灶,这次的收购应该是SAP有史以来最大的手笔了。BusinessObjects本身在收购Cytstal Report后的整合工作还没有完成,虽然BO XI在新的SOA架构上已经开始可以支持水晶报表的发布,但是水晶报表的开发还是需要单独的客户端,而且desktop intelligence,web intelligence和OLAP intelligence等几个产品之间相对保持独立,都有自己的一套服务端,也使得整个BO的架构过于庞大复杂,另外,由于没有自己的OLAP引擎,BO的OLAP报表能力也是不咋的。或许凭借SAP强大的开发能力和客户基础,BO在被收购后能被整合出一片新天地,从此把Cognos抛在身后也未可知。