April 2005 Archives

站点和Blog的PR值都更新了

| 1 Comment

今天发现 www.dbanotes.netwww.dbanotes.net/blog 这两个入口 PR(PageRank) 值都变成了5.刚开始建立 Blog 的时候一个小目标就是期望一段时间之后 PR 值可以达到5 .不期然居然做到了.(eygle 的Blog还是4,"鄙视"他一下 :) )这段时间在新公司的确太忙,根本没时间上来写Blog -- 虽然这段时间的确有不少的素材可以写写.

Oracle-L 列表也可以通过RSS订阅了.很是方便.

偶然看到这样一个帖子:slightly OT: another free oracle resource profiler

Quest 收购 Imceda

Blog 上看到的消息,Quest 刚刚收购了一家公司 Imceda.Imceda 公司一直致力于提供全方位的 SQL Server 平台的产品解决方案.

The acquisition is valued at approximately $61 million, of which 20% will be paid in shares of Quest Software Common Stock and the balance will be paid in cash. Quest currently expects that the transaction will be completed in the second quarter of 2005, subject to customary closing conditions and regulatory approvals including expiration of the applicable Hart-Scott-Rodino waiting period, and that it is estimated to be neutral to fully diluted earnings per share within the first 12 months of closing, and accretive thereafter.

长期以来,Quest一直在 SQL Server 相关的工具上少有建树.市场占有率十分微小.这次又故技重演,用杀手锏"收购"来获得市场的占有率.很多人都认为,Quest 是一家非常会收购的公司.

前一段时间还有人说 Quest 要被 Oracle 收购,没想到 Quest 还活得不错.

V$Session_LONGOPS

这个视图的来源大致是这样的:

SELECT inst_id, ksulosno, ksulosrn, ksulopna, ksulotna, ksulotde, ksulosfr,
       ksulotot, ksulouni,
       TO_DATE (ksulostm, 'MM/DD/RR HH24:MI:SS', 'NLS_CALENDAR=Gregorian'),
       TO_DATE (ksulolut, 'MM/DD/RR HH24:MI:SS', 'NLS_CALENDAR=Gregorian'),
       DECODE (SIGN (ksulotot - ksulosfr),
               -1, TO_NUMBER (NULL),
               DECODE (ksulosfr,
                       0, TO_NUMBER (NULL),
                       ROUND (ksuloetm * ((ksulotot - ksulosfr) / ksulosfr))
                      )
              ),
       ksuloetm, ksuloctx, ksulomsg, ksulounm, ksulosql, ksulosqh, ksuloqid
  FROM x$ksulop;
补充信息: 一篇非常好的解释文档。有些内容我之前也不知道。

Tom 的 Expert one on one: Oracle 的一个Bug. 第三章讲到DML所的时候 Tom 用了一个脚本:

tkyte@TKYTE816> select username,
  2         v$lock.sid,
  3         trunc(id1/power(2,16)) rbs,
  4         bitand(id1,to_number('ffff','xxxx'))+0 slot,
  5         id2 seq,
  6         lmode,
  7         request
  8  from v$lock, v$session
  9  where v$lock.type = 'TX'
 10    and v$lock.sid = v$session.sid
 11    and v$session.username = USER
 12  /
    
USERNAME        SID        RBS       SLOT        SEQ      LMODE    REQUEST
-------- ---------- ---------- ---------- ---------- ---------- ----------
TKYTE             8          2         46        160          6          0

产品库上最好别直接用这个脚本,很慢很慢的.

ORA-02248

| 3 Comments

遇到一个ora-02248: invalid option for ALTER SESSION的错误.环境是 java/10g instant client连接到 Oracle 9206 数据库发生的

Tom的Blog与他的新书

Do you Blog ?!

总算通过Proxy站点看到了Tom的Blog.Tom 的Blog技术内容不太多的,但是有很多关于他自己的信息.比如,这个大师每天的时间安排,生活习惯等..Tom也透漏了关于他的Oracle expert one on one 的很多信息,比如写作安排:

This month is unique for I've taken most of it off from Oracle to work on the second edition of Expert One on One Oracle (to be renamed as WROX went out of business and Apress lost rights to use the "Expert One on One" tagline when they bought it).

Adobe 收购 Macromedia

加了一个晚上的班,还是进展不大.但是看到了这个令人震惊的消息.Adobe and Macromedia

具体的交易细节如下:

Adobe Systems Incorporated (Nasdaq: ADBE) has announced a definitive agreement to acquire Macromedia (Nasdaq: MACR) in an all-stock transaction valued at approximately $3.4 billion. Under the terms of the agreement, which has been approved by both boards of directors, Macromedia stockholders will receive, at a fixed exchange ratio, 0.69 shares of Adobe common stock for every share of Macromedia common stock in a tax-free exchange. Based on Adobe’s and Macromedia’s closing prices on Friday April 15, 2005, this represents a price of $41.86 per share of Macromedia common stock. (Copy from Adobe)

Adobe 和 Macromedia 都是令人喜欢的公司.这个年代用计算机的人恐怕没有人没用过Acrobat Reader,设计过网页的人怕是也都用"网页设计三剑客".毫无疑问,一个软件巨人诞生了.从04年到现在,并购的消息不断传来.看来,这是个并购/合并的年代.

重编译 invalid 对象

DBA在一些场合下,要对无效的数据库对象进行重新编译.如果只是对all_objects等视图中选出来的无效对象进行重新编译,可能需要很多次:因为各个对象之间有依赖性的.这样并不是一个很好的办法.Raymond 在Recompiling invalid objects提到了如何有效地重新编译无效对象.提到了三种比较有效地方法(

  • 利用$ORACLE_HOME/rdbms/admin下的utlrp.sql脚本编译.一般都是在迁移或者升级之后运行该脚本.Raymond说该方法的不足之处在于这个脚本是对整个数据库中的对象进行重新编译的,所以不可取.有网友指出utlrp.sql 实际上是调用utlrcmp.sql的这样就可以用utl_recomp包来做喽(这样就是比较好的方法).
  • 用DBMS_UTILITY包来进行编译.但是也有一定的局限性.
  • Raymond提到了自己的解决办法: 不过也立刻有人指出来,这样对 View 的重新编译是无能为力的(ALTER_COMPILE只能处理:PACKAGE, PACKAGE BODY, PROCEDURE, FUNCTION, TRIGGER).参见下面的脚本
CREATE OR REPLACE PROCEDURE RECOMPILE_SCHEMA
IS
  v_Type USER_OBJECTS.OBJECT_TYPE%TYPE;
  v_Name USER_OBJECTS.OBJECT_NAME%TYPE;
  v_Stat USER_OBJECTS.STATUS%TYPE;

  CURSOR c_Obj
  IS
    SELECT  BASE
    FROM  (SELECT A.OBJECT_ID BASE
           ,      B.OBJECT_ID REL
           FROM   USER_OBJECTS A
              ,      USER_OBJECTS B
              ,      SYS.DEPENDENCY$  C
           WHERE  A.OBJECT_ID = C.D_OBJ#
           AND    B.OBJECT_ID = C.P_OBJ#
           AND    A.OBJECT_TYPE IN ('PACKAGE',
                                    'PROCEDURE',
                                    'FUNCTION',
                                    'PACKAGE BODY',
                                  --  'VIEW', 
                                    'TRIGGER')
           AND    B.OBJECT_TYPE IN ('PACKAGE',
                                    'PROCEDURE',
                                    'FUNCTION',
                                    'PACKAGE BODY',
                                  --  'VIEW', 
                                    'TRIGGER')
            AND    NOT A.OBJECT_NAME = B.OBJECT_NAME) OBJECTS
    CONNECT BY BASE = PRIOR REL
    GROUP   BY BASE

    ORDER   BY MAX(LEVEL) DESC;
BEGIN
  -- loop through all objects in order of dependancy.
  FOR c_Row IN c_Obj
  LOOP
    -- select the objects attributes (type, name & status).
    SELECT OBJECT_TYPE
    ,      OBJECT_NAME
    ,      STATUS
    INTO   v_Type
    ,      v_Name
    ,      v_Stat
    FROM   USER_OBJECTS
    WHERE  OBJECT_ID = c_Row.BASE;

    -- if the OBJECT is INVALID, recompile it.
    IF v_Stat = 'INVALID' THEN
      DBMS_DDL.ALTER_COMPILE(v_Type, USER, v_Name);
    END IF;
  END LOOP;

  -- Recompile all remaining INVALID OBJECTS (all those without dependencies).
  FOR c_Row IN ( SELECT OBJECT_TYPE
             ,      OBJECT_NAME
             FROM   USER_OBJECTS
             WHERE  STATUS = 'INVALID'
             AND    OBJECT_TYPE IN ('PACKAGE',
                                    'PROCEDURE',
                                    'FUNCTION',
                                    'TRIGGER',
                                    'PACKAGE BODY',
                                 --   'VIEW', 
                                    'TRIGGER') )
  LOOP
    DBMS_DDL.ALTER_COMPILE(c_Row.OBJECT_TYPE, USER, c_Row.OBJECT_NAME);
  END LOOP;
END RECOMPILE_SCHEMA;
Rem   EXAMPLES
Rem      1. Recompile all objects sequentially:
Rem             execute utl_recomp.recomp_serial();
Rem
Rem      2. Recompile objects in schema SCOTT sequentially:
Rem             execute utl_recomp.recomp_serial('SCOTT');
Rem
Rem      3. Recompile all objects using 4 parallel threads:
Rem             execute utl_recomp.recomp_parallel(4);
Rem
Rem      4. Recompile objects in schema JOE using the number of threads
Rem         specified in the paramter JOB_QUEUE_PROCESSES:
Rem             execute utl_recomp.recomp_parallel(NULL, 'JOE');
Rem
Rem      5. Recompile all objects using 2 parallel threads, but allow
Rem         other applications to use the job queue concurrently:
Rem             execute utl_recomp.recomp_parallel(2, NULL,
Rem                                                utl_recomp.share_job_queue);
Rem
Rem      6. Restore the job queue after a failure in recomp_parallel:
Rem             execute utl_recomp.restore_job_queue();
调用 utl_recomp 包是比较好的做法.需要 sys 权限. BTW:刚才浏览eygle 的站点,发现他有一 Blog 说的正是这个事情: http://www.eygle.com/archives/2005/01/ecioaeaoeeeaoea.html ,晕倒

崔健新专辑

| 2 Comments

估计是原来的专辑名字通不过审查。所以变成了《给你一点颜色》。个人觉得专辑中最好听的就是《蓝色骨头》,我对这首歌的喜爱程度可以和《盒子》相比。

在崔健的每一张专辑里几乎都会有一首歌可以描述一类人。比如《新长征路上的摇滚中》的《假行僧》,《解决》中的《投机分子》,《红旗下的蛋》中的《红旗下的蛋》,《无能的力量》中的《混子》,《给你一点颜色》老崔刻画了一幅“写字儿”的知识分子标准像。

老崔曾经喊过“我说爱情它到底是个什么 究竟是个什么东西 你说爱情就是自由加上你的人格”,现在又严肃的讨论起来人活着的目的:痛快加独立才算是有意义。

《蓝》中的一些话语有立刻成为流行语的可能,比如:

男人越是闲着 越是人缘儿好

哥儿们之间谈论爱情认真也是假的/ 只有在姑娘面前动感情才能算是真的/ 当你真的爱的时候理论就是虚的/ 只有分手的时候疼痛才是真的

蚊子,困难户,苍孙,假装酷

这一则Blog的标题来自崔健新专辑的一首歌《网络处男》:

我是一个网络处男
各种各样的网站我都去过
从98年到现在 转眼过去了
我学会了一点儿打字就没别的了
我曾经叫过"蚊子"也叫过"困难户"
也叫过"苍孙"也叫过"假装酷"
后来还有太多的名字我记不清楚了
反正名字越是难听越是显得有个性

每天忙的昏头转向,还真得不知道这网络上都发生了什么事情

Oracle发布了新的CPU

Oracle发布了新的CPU:Critical Patch Update - April 2005这个CPU 基本上是针对HTTP Server 的.

Here is a summary:http://www.petefinnigan.com/weblog/archives/00000304.htm

折腾了一天

| 1 Comment

早晨跑到了机房,结果等到10点钟也不见货到,电话联系.说前几天北京大雨,都已经通知IBM的人了,说以为我和IBM的人在一起,就根本没通知我!Faint. 赶紧回到公司.说下午2:00 到三点肯定到货.

这次的供货商是青鸟.到了下午,这帮家伙也知道怎么想的,连统一口径都做不到.一会儿说今天可以到货,一会儿说明天肯定到.一回说已经到了,一回说货又弄回去了.真是服了他们了.

更新了几个小软件

更新了几个小软件。

Skype 更新了一下。最近太忙,实在是没时间聊天。升级下看看有啥新功能。

X-win32 升级了一下。Xmanager有的时候弹出来的Java窗口挂在那里,不爽,以后不用啦。

SecureCRT 升级了一下。

安装了几个小工具。包括:

忙了好一阵子

| 3 Comments

一口气忙了好久。每天的时间调度都会被打乱(Rudolf 建议我用起来Above & Beyond 做时间调度。正在慢慢适应中...)。MSN上很多朋友的信息都没能回。以前那种悠闲的状态看来一去不复返了。

看样子这种状态要一直持续到五月份。还好现在找到了一点点感觉。前几天的时候几乎每天都会遇到协调相关的问题,接下来的小型机项目也是比较令人头疼的。

周日早晨,Laura就来杭州了。这是对我最好的消息!

不久前,Oracle(甲骨文)公司在美国加州的总部宣布, Oracle 10g 数据库 与 Oracle RAC 在 TPC-H 基准测试中创造了新的世界纪录.这是个令人震惊的消息.因为这个测试是在 Linux ( Red Hat Enterprise Linux Advanced Server 3) 的平台上进行的. 这充分显示了 Oracle 在低成本 Linux 集群服务器上高效管理大规模数据仓库的能力, 也表明 Linux 在性能价格比上显而易见的优势,标志着Linux在大规模企业应用上已经成熟.

相信很多朋友已经对10g跃跃欲试了,现在从这里让我们开始10g之旅.

本文描述了在Red Hat Enterprise Linux Advanced Server 3 (RHEL 3)上安装Oracle 10g 必要的步骤和相关知识. 本文假定你的Linux 操作系统已经安装完毕,并且您应该具有一定的 Unix 操作系统背景知识.

关于这篇归档

This page is an archive of entries from April 2005 listed from newest to oldest.

March 2005 is the previous archive.

May 2005 is the next archive.

Find recent content on the main index or look in the archives to find all content.