20120324ACOUG活动

这次活动是ACOUG成立两周年的纪念活动。
这次活动恰好赶上Oracle公司数据库安全总监James Spooner先生在北京给Oracle内部人员培训Database Firewall,于是我们请他抽出半天时间为我们ACOUG带来《Oracle数据库防火墙深入探讨及实例分析》的主题,这种一般只面对内部的培训机会可是很难得的。
随后由OCM联盟的创始人侯圣文带来的《Oracle DBA成功之路 —— 成就一段精彩的技术生涯》。侯兄选择的技术道路有部分与我类似,有部分与我大相径庭。相似的是,他同样在坚持每天写BLOG,而且都是技术博客,而我却不敢保证每天的文章都是纯技术的,比如说今天。不同之处在于,他选择了认证的路线,早早就成为OCM且目前已经在讲OCM考试的课程,而我到目前连个OCA都没有。不过这也说明了一点,其实选择什么样的路线并不重要,重要的是找到适合你自己的道路,并且坚持不懈的走下去。侯兄的成功也正说明了这一点。
最后是我们公司的同事,同时也是ACOUG目前的组织者仇实带来的一个主题,为ACOUG两周年进行一个简短的总结,同时推出了我们自己的刊物,基于iPad的IBOOKS应用——ACOUG杂志。该杂志的下载地址为:http://vdisk.weibo.com/s/3qX5b。目前已经上传到APPLE商店中,由于审核的原因可能需要过一段时间才能下载。
祝ACOUG两周年生日快乐!

Posted in NEWS | Leave a comment

数据字典不一致造成大量ORA-600和ORA-7445错误

测试环境中,由于将数据字典表错误的导入到当前的数据库SYS用户下,导致数据字典出现了不一致的状态,反应出来的结果就是大量的ORA-600和ORA-7445错误。
列几个错误信息,简单记录一下这个问题:

Fri Feb 10 16:30:14 CST 2012
Errors IN file /u01/app/oracle/admin/orcl10g/udump/orcl10g_ora_8690.trc:
ORA-00600: internal error code, arguments: [16201], [1403], [], [], [], [], [], []
Fri Feb 10 16:30:16 CST 2012
Errors IN file /u01/app/oracle/admin/orcl10g/udump/orcl10g_ora_8690.trc:
ORA-00600: internal error code, arguments: [16201], [1403], [], [], [], [], [], []
.
.
.
Fri Feb 10 22:00:05 CST 2012
Errors IN file /u01/app/oracle/admin/orcl10g/bdump/orcl10g_j001_22380.trc:
ORA-07445: exception encountered: core dump [kdapblkcntt()+115] [SIGSEGV] [Address NOT mapped TO object] [0x000000188] [] []
Sat Feb 11 06:00:06 CST 2012
Errors IN file /u01/app/oracle/admin/orcl10g/bdump/orcl10g_j001_23555.trc:
ORA-07445: exception encountered: core dump [kdapblkcntt()+115] [SIGSEGV] [Address NOT mapped TO object] [0x000000188] [] []
.
.
.
Mon Feb 13 15:17:22 CST 2012
Errors IN file /u01/app/oracle/admin/orcl10g/udump/orcl10g_ora_14705.trc:
ORA-00600: internal error code, arguments: [ktsircinfo_num1], [6], [9], [1139], [], [], [], []
.
.
.
Mon Feb 27 17:30:25 CST 2012
Errors IN file /u01/app/oracle/admin/orcl10g/udump/orcl10g_ora_889.trc:
ORA-00600: internal error code, arguments: [ktssdrp1], [7], [6], [11], [], [], [], []
Mon Feb 27 17:30:30 CST 2012
ORA-600 signalled during: DROP tablespace perfstat including contents cascade constraints...
Mon Feb 27 17:30:43 CST 2012
DROP tablespace perfstat including contents cascade constraints
.
.
.
Wed Feb 29 23:07:03 CST 2012
Errors IN file /u01/app/oracle/admin/orcl10g/udump/orcl10g_ora_1401.trc:
ORA-00600: internal error code, arguments: [kcfrbd_3], [1], [240841], [1], [186752], [186752], [], []
.
.
.
Mon Mar 12 12:06:58 CST 2012
Errors IN file /u01/app/oracle/admin/orcl10g/udump/orcl10g_ora_22193.trc:
ORA-00600: internal error code, arguments: [kzdugt], [], [], [], [], [], [], []

这些错误中,有个别错误在MOS中就没有任何记录,而另外一些,虽然存在记录,但是都和当前的错误现象不符。且所有的错误都是在数据字典不一致后出现的,因此可以确定,这些错误都与数据字典不一致有关。
一般情况下,数据库不会产生这种异常,如果真是由于导入或者直接修改导致数据字典的异常,那么推荐采用exp导出,重建imp导入的方式来解决问题。
最后还要强调一次,数据字典的修改是非常危险的,无论是有意为之还是无心之过。

Posted in ORACLE | Tagged , , , , , , , | Leave a comment

201203获得ITPUB年度最佳BLOG写作奖

好像是第三次获得这个奖项了,感谢老虎、感谢ITPUB、感谢IT168、感谢盛拓传媒,更要感谢大家的支持和鼓励。
似乎这个奖是3月10号评完的,而ITPUB上徽章的颁发日期是13日,我确实今天才发现,可谓后知后觉了。在这里感谢所有给我投票的朋友们。
目前BLOG中有2500多篇文章,浏览数超过了860W,而老版的BLOG目前还能使用,不知道有没有机会达到1000W的访问量。

Posted in NEWS | Leave a comment

默认值和触发器的顺序

今天在写触发器的时候突然想到这一点,为了验证想法,做了一个简单的例子。
如果一个字段拥有默认值,且包含一个BEFORE的行级触发器,当不指定值时,二者的生效顺序如何:

SQL> CREATE TABLE t_trigger_default (id NUMBER, col varchar2(30) DEFAULT 'default');
TABLE created.
SQL> CREATE TRIGGER t_b_tri_def 
  2  BEFORE INSERT ON t_trigger_default
  3  FOR each ROW
  4  BEGIN
  5  :NEW.col := 'trigger';
  6  END;
  7  /
TRIGGER created.
SQL> INSERT INTO t_trigger_default (id)
  2  VALUES (1);
1 ROW created.
SQL> SELECT * FROM t_trigger_default;
        ID COL
---------- ------------------------------
         1 TRIGGER
SQL> CREATE OR REPLACE TRIGGER t_b_tri_def
  2  BEFORE INSERT ON t_trigger_default
  3  FOR each ROW
  4  BEGIN
  5  :NEW.col := nvl(:NEW.col, 'trigger');
  6  END;
  7  /
TRIGGER created.
SQL> INSERT INTO t_trigger_default (id)
  2  VALUES (2);
1 ROW created.
SQL> SELECT * FROM t_trigger_default;
        ID COL
---------- ------------------------------
         1 TRIGGER
         2 DEFAULT
SQL> INSERT INTO t_trigger_default (id, col)
  2  VALUES (3, '');
1 ROW created.
SQL> SELECT * FROM t_trigger_default;
        ID COL
---------- ------------------------------
         1 TRIGGER
         2 DEFAULT
         3 TRIGGER

从这个例子可以看出,无论是DEFAULT值还是TRIGGER都是生效的,只不过TRIGGER在DEFAULT值之后生效。当一个列的值在插入时没有指定值,那么DEFAULT值就会生效,如果有触发器修改这个列的值,那么这个修改发生在DEFAULT值生效之后。一旦列输入了值,则DEFAULT值不再生效。
而AFTER触发器是无法修改列的值的。

Posted in ORACLE | Tagged , , | Leave a comment

设置到相同SID仍无法连接实例

今天有同事问,为什么设置了正确的SID后仍然连接到空闲实例,且启动到MOUNT状态就报错。
根据他的描述,基本上可以判断是ORACLE_HOME的设置问题,于是做了一个简单的例子重新了这个问题:

[orat0@hpserver2 ~]$ env|grep ORACLE
ORACLE_SID=orcl10g
ORACLE_BASE=/t0/orat0/app/oracle
ORACLE_HOME=/t0/orat0/app/oracle/product/10.2.0/db_1
[orat0@hpserver2 ~]$ sqlplus / AS sysdba
SQL*Plus: Release 10.2.0.5.0 - Production ON Thu Mar 22 16:06:48 2012
Copyright (c) 1982, 2010, Oracle. ALL Rights Reserved.
Connected TO an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 524288000 bytes
Fixed SIZE 2097560 bytes
Variable SIZE 146804328 bytes
DATABASE Buffers 373293056 bytes
Redo Buffers 2093056 bytes
DATABASE mounted.
DATABASE opened.
SQL> exit
Disconnected FROM Oracle DATABASE 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
WITH the Partitioning, OLAP, DATA Mining AND REAL Application Testing options
[orat0@hpserver2 ~]$ export ORACLE_HOME=/t0/orat0/app/oracle/product/10.2.0/db_1/
[orat0@hpserver2 ~]$ sqlplus / AS sysdba
SQL*Plus: Release 10.2.0.5.0 - Production ON Thu Mar 22 16:07:21 2012
Copyright (c) 1982, 2010, Oracle. ALL Rights Reserved.
Connected TO an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 524288000 bytes
Fixed SIZE 2097560 bytes
Variable SIZE 146804328 bytes
DATABASE Buffers 373293056 bytes
Redo Buffers 2093056 bytes
ORA-01102: cannot mount DATABASE IN EXCLUSIVE mode

Oracle在启动实例时,根据ORACLE_HOME和ORACLE_SID的值来唯一确定实例的,虽然/t0/orat0/app/oracle/product/10.2.0/db_1和/t0/orat0/app/oracle/product/10.2.0/db_1/是同一个目录,但是对Oracle而言,二者是不同的,因此在启动实例的时候,会启动额外的实例。
而尝试MOUNT时,由于尝试加载相同的控制文件,导致了上面的报错。
此外,如果ORACLE_HOME的设置不同,还可能造成监听的异常。

Posted in ORACLE | Tagged , , | Leave a comment

快速增加表的默认值的方法

看到ITPUB上有人提到,如何快速的在一个3亿条记录的表中增加一个包含DEFAULT值的新字段。描述一下如何快速的添加表的默认值。
Oracle11新特性——在线操作功能增强(二) :http://yangtingkun.itpub.net/post/468/401293
对于这个问题,常规的方法有三个:
一、直接ALTER TABLE ADD COLUMN,这种方法的好处是简单,一个命令就可以完成,缺点是耗时非常长,而且在漫长的执行过长中都会锁定表,导致应用无法修改数据,并且在完成后容易造成大量的行迁移,从而影响后续访问的性能;
二、CREATE TABLE AS SELECT的方式,这种方式相对第一种而言,效率更高,如果是非归档模式,那么完成速度会更快。但是缺点同样很明显,首先需要大量的停机时间,而且表上的索引、约束、触发器以及权限等都需要手工处理,比较麻烦;
三、在线重定义,这种方式应该算是这三种中最佳的,锁表时间非常短,对业务影响最小,但是缺点是整个操作的时间并不会变短,和第二种方式一样,都需要2倍的存储空间,而且操作相对复杂。
如果数据库的版本是11g,那么这就不是问题了,以前写过专门的文章,描述11g是如何快速添加一个包含非空DEFAULT值的列的。那么对于10g及以前版本的数据库而言,增加一个包含默认值的字段难道就真的要忍受漫长的执行时间和大量的REDO、UNDO的占用吗。
其实完全可以仿照11g的方式,来自己实现10g中字段的快速添加。记得Tom在描述数据库的解析时提到过,软解析要优于硬解析,软软解析要优于软解析,而速度最快的莫过于不解析。提高速度的最高境界就是根本不做。
那么对于添加默认值的方式也可以才有这种方法,对于已经存在的记录的默认值,我们根本不去添加,一个简单的例子如下:

SQL> CREATE TABLE T_ADD_COLUMN (ID NUMBER, NAME VARCHAR2(30));
TABLE created.
SQL> INSERT INTO T_ADD_COLUMN   
  2  SELECT ROWNUM, OBJECT_NAME
  3  FROM DBA_OBJECTS;
11955 ROWS created.
SQL> COMMIT;
Commit complete.
SQL> ALTER TABLE T_ADD_COLUMN ADD (NEW_COL VARCHAR2(30));
TABLE altered.
SQL> ALTER TABLE T_ADD_COLUMN MODIFY (NEW_COL DEFAULT 'OLD VALUE');
TABLE altered.
SQL> SELECT * FROM T_ADD_COLUMN WHERE ID = 1;
        ID NAME                           NEW_COL
---------- ------------------------------ ------------------------------
         1 ICOL$
SQL> ALTER TABLE T_ADD_COLUMN RENAME TO T_ADD_COLUMN_BASE;
TABLE altered.
SQL> CREATE VIEW T_ADD_COLUMN
  2  (ID, NAME, NEW_COL) 
  3  AS SELECT ID, NAME, NVL(NEW_COL, 'OLD VALUE')
  4  FROM T_ADD_COLUMN_BASE;
VIEW created.
SQL> SELECT * FROM T_ADD_COLUMN WHERE ID = 1;
        ID NAME                           NEW_COL
---------- ------------------------------ ------------------------------
         1 ICOL$                          OLD VALUE

将添加列和增加默认值的DDL分开执行,这样Oracle不会在添加列的同时给现有的记录增加默认值,因此这两个SQL都是秒级完成。随后将表重命名,然后根据原始的名称创建一个视图,在读取表的时候,将新增列所有的空值都转化为默认值即可。整个过程只需要4个DDL,且都是秒级完成,这样就实现了给表增加默认值的需求。
当然表和视图还是有很大区别的,比如由于使用了函数作为查询列,使得这个视图不支持对NEW_COL列的读写。
不过这个问题可以通过INSTEAD OF触发器实现,下面是一个简单的INSERT的例子:

SQL> INSERT INTO T_ADD_COLUMN (ID, NAME) VALUES (12000, 'A');
1 ROW created.
SQL> SELECT * FROM T_ADD_COLUMN WHERE ID = 12000;
        ID NAME                           NEW_COL
---------- ------------------------------ ------------------------------
     12000 A                              OLD VALUE
SQL> INSERT INTO T_ADD_COLUMN VALUES (12000, 'A', 'TEST');
INSERT INTO T_ADD_COLUMN VALUES (12000, 'A', 'TEST')
*
ERROR at line 1:
ORA-01733: virtual COLUMN NOT allowed here
 
SQL> CREATE OR REPLACE TRIGGER T_INS_I_TADDCOLUMN 
  2  INSTEAD OF INSERT ON T_ADD_COLUMN
  3  BEGIN
  4  INSERT INTO T_ADD_COLUMN_BASE
  5  VALUES (:NEW.ID, :NEW.NAME, :NEW.NEW_COL);
  6  END;
  7  /
TRIGGER created.
SQL> INSERT INTO T_ADD_COLUMN VALUES (12001, 'B', 'TEST');
1 ROW created.
SQL> SELECT * FROM T_ADD_COLUMN WHERE ID = 12001;
        ID NAME                           NEW_COL
---------- ------------------------------ ------------------------------
     12001 B                              TEST

视图的更新和修改可以采用类似的方法实现。

Posted in ORACLE | Tagged , , , , | Leave a comment

oinstall组用户连接数据库报错error while loading shared libraries: libskgxp10.so

名称很长,不过仍然不足以描述这个错误的背景。确切的描述应该是oracle用户下的ORACLE_HOME,迁移到其他位置,并将oracle属主改变为其他用户,但是oinstall组未变。随后其他oinstall组用户,无法以/ as sysdba登录数据库。
公司测试环境,ORACLE_HOME为/u01/app/oracle/product/10.2.0/db_1,将ORACLE_HOME切换到/t0/orat0/app/oracle/product/10.2.0/db_1目录下,并将ORACLE_HOME的属主从oracle改为orat0。
授权后,orat0用户直接登录就出现这个错误:

[orat0@hpserver2 ~]$ sqlplus / AS sysdba
SQL*Plus: Release 10.2.0.5.0 - Production ON Sun Mar 18 16:12:03 2012
Copyright (c) 1982, 2010, Oracle. ALL Rights Reserved.
oracleorcl10g: error while loading shared libraries: libskgxp10.so: cannot OPEN shared object file: No such file OR directory
ERROR:
ORA-12547: TNS:lost contact
Enter user-name: 
oracleorcl10g: error while loading shared libraries: libskgxp10.so: cannot OPEN shared object file: No such file OR directory
ERROR:
ORA-12547: TNS:lost contact
Enter user-name: 
oracleorcl10g: error while loading shared libraries: libskgxp10.so: cannot OPEN shared object file: No such file OR directory
ERROR:
ORA-12547: TNS:lost contact
SP2-0157: unable TO CONNECT TO ORACLE after 3 attempts, exiting SQL*Plus
[orat0@hpserver2 ~]$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
[orat0@hpserver2 ~]$ sqlplus / AS sysdba
SQL*Plus: Release 10.2.0.5.0 - Production ON Sun Mar 18 16:12:18 2012
Copyright (c) 1982, 2010, Oracle. ALL Rights Reserved.
Connected TO:
Oracle DATABASE 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
WITH the Partitioning, OLAP, DATA Mining AND REAL Application Testing options
SQL>

在设置了LD_LIBRARY_PATH后,问题得以解决。但是对于除了ORACLE_HOME的OWNER外的其他oinstall用户,登录数据库就会出现同样的错误。即使设置LD_LIBRARY_PATH也不起作用。
检查后发现ORACLE_HOME/bin/oracle权限改变:

[tingkun.yang@hpserver2 bin]$ ls -l oracle
-rwxr-x--x 1 tingkun.yang oinstall 125153012 Feb 7 18:37 oracle
[tingkun.yang@hpserver2 bin]$ chmod 6751 oracle

修改文件属性后,问题依旧。

[tingkun.yang@hpserver2 ~]$ sqlplus / AS sysdba
SQL*Plus: Release 10.2.0.5.0 - Production ON Mon Mar 19 16:45:26 2012
Copyright (c) 1982, 2010, Oracle. ALL Rights Reserved.
oracleorcl10g: error while loading shared libraries: libskgxp10.so: cannot OPEN shared object file: No such file OR directory
ERROR:
ORA-12547: TNS:lost contact
 
Enter user-name: 
oracleorcl10g: error while loading shared libraries: libskgxp10.so: cannot OPEN shared object file: No such file OR directory
ERROR:
ORA-12547: TNS:lost contact
 
Enter user-name: 
oracleorcl10g: error while loading shared libraries: libskgxp10.so: cannot OPEN shared object file: No such file OR directory
ERROR:
ORA-12547: TNS:lost contact
 
SP2-0157: unable TO CONNECT TO ORACLE after 3 attempts, exiting SQL*Plus

最终怀疑是ORACLE_HOME发生变化后,某些链接库的位置改变,导致Oracle运行过程中找不到一些库文件,于是以owner身份对ORACLE_HOME进行了relink all的操作:

[orat0@hpserver2 lib]$ relink ALL
/t0/orat0/app/oracle/product/10.2.0/db_1/bin/genclntsh
/t0/orat0/app/oracle/product/10.2.0/db_1/bin/genagtsh /t0/orat0/app/oracle/product/10.2.0/db_1/lib/libagtsh.so 1.0
make -f /t0/orat0/app/oracle/product/10.2.0/db_1/precomp/lib/ins_precomp.mk relink EXENAME=proc
make[1]: Entering directory `/t0/orat0/app/oracle/product/10.2.0/db_1/lib32'
Linking /t0/orat0/app/oracle/product/10.2.0/db_1/precomp/lib/proc
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/proc
mv /t0/orat0/app/oracle/product/10.2.0/db_1/precomp/lib/proc /t0/orat0/app/oracle/product/10.2.0/db_1/bin/
make[1]: Leaving directory `/t0/orat0/app/oracle/product/10.2.0/db_1/lib32'
rm -f ldapadd ldapbind ldapcompare ldapdelete ldapmodify ldapsearch ldapmoddn ldapaddmt ldapmodifymt dsml2ldif
gcc -o ldapadd -L/t0/orat0/app/oracle/product/10.2.0/db_1/ldap/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ -o ldapadd -L/t0/orat0/app/oracle/product/10.2.0/db_1/ldap/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/ldap/lib/s0gslmod.o /t0/orat0/app/oracle/product/10.2.0/db_1/ldap/lib/gslmcu.o -lncrypt10 /t0/orat0/app/oracle/product/10.2.0/db_1/lib/libldapclnt10.a -lldapclnt10 -lncrypt10 -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib 
gcc -o ldapbind -L/t0/orat0/app/oracle/product/10.2.0/db_1/ldap/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ -o ldapbind -L/t0/orat0/app/oracle/product/10.2.0/db_1/ldap/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/ldap/lib/s0gslbind.o /t0/orat0/app/oracle/product/10.2.0/db_1/ldap/lib/gslmcu.o -lncrypt10 /t0/orat0/app/oracle/product/10.2.0/db_1/lib/libldapclnt10.a -lldapclnt10 -lncrypt10 -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib
.
.
.
- Linking OCR check utility tool 
gcc -o ocrcheck -L/t0/orat0/app/oracle/product/10.2.0/db_1//lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/srvm/lib/sprotch.o /t0/orat0/app/oracle/product/10.2.0/db_1/srvm/lib/protchek.o /t0/orat0/app/oracle/product/10.2.0/db_1/srvm/lib/prot.o -locr10 -locrb10 -locrutl10 -lhasgen10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclntsh -lskgxn2 -lcore10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -lm -lm -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/ocrcheck /t0/orat0/app/oracle/product/10.2.0/db_1/bin/ocrcheck0
mv ocrcheck /t0/orat0/app/oracle/product/10.2.0/db_1/bin/ocrcheck
- Linking OIFCFG tool 
gcc -o oifcfg -L/t0/orat0/app/oracle/product/10.2.0/db_1//lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/srvm/lib/prifcg.o /t0/orat0/app/oracle/product/10.2.0/db_1/srvm/lib/sprifcg.o /t0/orat0/app/oracle/product/10.2.0/db_1/srvm/lib/prifutl.o /t0/orat0/app/oracle/product/10.2.0/db_1/srvm/lib/prifcmn.o -lcore10 -lhasgen10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -locr10 -locrb10 -locrutl10 -lhasgen10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclntsh -lskgxn2 -lcore10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -lclntsh -lclntsh -lskgxn2 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -lm `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -lm -lm -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/oifcfg /t0/orat0/app/oracle/product/10.2.0/db_1/bin/oifcfg0
mv oifcfg /t0/orat0/app/oracle/product/10.2.0/db_1/bin/oifcfg
chmod 755 /t0/orat0/app/oracle/product/10.2.0/db_1/bin
make -f /t0/orat0/app/oracle/product/10.2.0/db_1/sysman/lib/ins_emdb.mk relink_exe EXENAME=nmccollector
make[1]: Entering directory `/t0/orat0/app/oracle/product/10.2.0/db_1/sysman/lib'
/usr/bin/gcc -trigraphs -fPIC -o /t0/orat0/app/oracle/product/10.2.0/db_1/sysman/lib/nmccollector -L/t0/orat0/app/oracle/product/10.2.0/db_1/sysman//lib -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs -Wl,-export-dynamic /t0/orat0/app/oracle/product/10.2.0/db_1/sysman//lib/snmccolm.o /t0/orat0/app/oracle/product/10.2.0/db_1/sysman//lib/libnmccol.a /t0/orat0/app/oracle/product/10.2.0/db_1/sysman//lib/libnmcbuf.a /t0/orat0/app/oracle/product/10.2.0/db_1/sysman//lib/libnmadbg.a /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms//lib/libdsga10.a /t0/orat0/app/oracle/product/10.2.0/db_1/lib/libserver10.a /t0/orat0/app/oracle/product/10.2.0/db_1/lib/libclntsh.so 
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/nmccollector /t0/orat0/app/oracle/product/10.2.0/db_1/bin/nmccollector0
mv /t0/orat0/app/oracle/product/10.2.0/db_1/sysman/lib/nmccollector /t0/orat0/app/oracle/product/10.2.0/db_1/bin/
make[1]: Leaving directory `/t0/orat0/app/oracle/product/10.2.0/db_1/sysman/lib'
Enterprise Manager Direct Memory Access Collector relinked

重新链接后问题解决:

[tingkun.yang@hpserver2 ~]$ sqlplus / AS sysdba
SQL*Plus: Release 10.2.0.5.0 - Production ON Mon Mar 19 18:25:09 2012
Copyright (c) 1982, 2010, Oracle. ALL Rights Reserved.
 
Connected TO:
Oracle DATABASE 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
WITH the Partitioning, OLAP, DATA Mining AND REAL Application Testing options
SQL>
Posted in ORACLE | Tagged , , , , , | Leave a comment

relink报错ldflags: No such file or directory relink

由于数据库的ORACLE_HOME发生了变化,需要对ORACLE_HOME进行relink操作,结果发现relink时报错。
错误信息摘录如下:

[orat0@hpserver2 db_1]$ relink utilities
- Linking Import utility (imp)
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/imp
gcc -o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/imp -L/t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/s0impdrv.o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/defopt.o -ldbtools10 -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/imp /t0/orat0/app/oracle/product/10.2.0/db_1/bin/impO
mv /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/imp /t0/orat0/app/oracle/product/10.2.0/db_1/bin/imp
chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/imp
.
.
.
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dgmgrl /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dgmgrlO
mv /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/dgmgrl /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dgmgrl
chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dgmgrl
- Linking tg4pwd utility
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/tg4pwd
gcc -o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/tg4pwd -L/t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/tg4pwd.o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/defopt.o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/homts.o -lagtsh -lpls10 -lplp10 -lpthread -lclntsh -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 /t0/orat0/app/oracle/product/10.2.0/db_1/lib/libgeneric10.a `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lvsn10
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/tg4pwd /t0/orat0/app/oracle/product/10.2.0/db_1/bin/tg4pwdO
mv /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/tg4pwd /t0/orat0/app/oracle/product/10.2.0/db_1/bin/tg4pwd
chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/tg4pwd
mkdir -p /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin
cp -f /t0/orat0/app/oracle/product/10.2.0/db_1/lib/libsqlplus.so \
/t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib/libsqlplus.so
/bin/chmod 755 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/helpins
/bin/chmod 755 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/pupbld
Linking /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus
gcc -o /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus -L/t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib/s0afimai.o -lsqlplus -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm -lpthread `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -lpthread -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib
/bin/chmod 755 /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/sqlplus
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus /t0/orat0/app/oracle/product/10.2.0/db_1/bin/sqlplus
/bin/chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/sqlplus
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib/libsqlplus.so
rm -rf /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus
make -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib/ins_sqlplus.mk newsqlplus LIBDIR=lib32 LDFLAGS='-m32 -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME) $(LDPATHFLAG)$(LIBHOME)stubs/' HYBRID_SUFFIX=32
make[1]: Entering directory `/t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib'
Linking /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus32
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus32
gcc -m32 -o /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus32 -L/t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib32/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib32/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib32/s0afimai.o -lsqlplus -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm -lpthread `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/sysliblist` -ldl -lm -lpthread -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib
cat: /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags: No such file or directory
cat: /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags: No such file or directory
cat: /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags: No such file or directory
cat: /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags: No such file or directory
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference to `ntusini'
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference to `nnfhboot'
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference TO `nnflboot'
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference to `nttini'
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference to `nnftboot'
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference TO `nnflgapc'
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference to `nnflrne'
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference to `nttsdpini'
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference TO `ntpini'
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference to `nnflfrm'
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference to `nnflgav'
/t0/orat0/app/oracle/product/10.2.0/db_1/lib32//libclntsh.so: undefined reference TO `ntzini'
collect2: ld returned 1 exit status
make[1]: *** [/t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus32] Error 1
make[1]: Leaving directory `/t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib'
make: *** [newsqlplus32] Error 2
chmod 755 /t0/orat0/app/oracle/product/10.2.0/db_1/bin

检查后发现lib32目录下的ldflags是个链接,而这个链接指向了迁移之前的ORACLE_HOME/lib下的对象:

[orat0@hpserver2 lib32]$ ls -l ldflags
lrwxrwxrwx 1 orat0 oinstall 47 DEC 6 14:43 ldflags -> /u01/app/oracle/product/10.2.0/db_1/lib/ldflags

删除ldflgs标识并重建:

[orat0@hpserver2 lib32]$ rm ldflags 
[orat0@hpserver2 lib32]$ ln -s $ORACLE_HOME/lib/ldflags $ORACLE_HOME/lib32/ldflags
[orat0@hpserver2 lib32]$ ls -l ldflags
lrwxrwxrwx 1 orat0 oinstall 52 Mar 19 17:21 ldflags -> /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags

再次link,问题解决:

[orat0@hpserver2 lib32]$ relink utilities
- Linking Import utility (imp)
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/imp
gcc -o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/imp -L/t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/s0impdrv.o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/defopt.o -ldbtools10 -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/imp /t0/orat0/app/oracle/product/10.2.0/db_1/bin/impO
mv /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/imp /t0/orat0/app/oracle/product/10.2.0/db_1/bin/imp
chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/imp
- Linking Export utility (EXP)
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/EXP
gcc -o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/EXP -L/t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/s0exudrv.o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/defopt.o -ldbtools10 -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/EXP /t0/orat0/app/oracle/product/10.2.0/db_1/bin/expO
mv /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/EXP /t0/orat0/app/oracle/product/10.2.0/db_1/bin/EXP
chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/EXP
.
.
.
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dgmgrl /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dgmgrlO
mv /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/dgmgrl /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dgmgrl
chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dgmgrl
- Linking tg4pwd utility
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/tg4pwd
gcc -o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/tg4pwd -L/t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/tg4pwd.o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/defopt.o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/homts.o -lagtsh -lpls10 -lplp10 -lpthread -lclntsh -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 /t0/orat0/app/oracle/product/10.2.0/db_1/lib/libgeneric10.a `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lvsn10
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/tg4pwd /t0/orat0/app/oracle/product/10.2.0/db_1/bin/tg4pwdO
mv /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/tg4pwd /t0/orat0/app/oracle/product/10.2.0/db_1/bin/tg4pwd
chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/tg4pwd
mkdir -p /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin
cp -f /t0/orat0/app/oracle/product/10.2.0/db_1/lib/libsqlplus.so \
/t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib/libsqlplus.so
/bin/chmod 755 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/helpins
/bin/chmod 755 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/pupbld
Linking /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus
gcc -o /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus -L/t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib/s0afimai.o -lsqlplus -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm -lpthread `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -lpthread -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib
/bin/chmod 755 /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/sqlplus
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus /t0/orat0/app/oracle/product/10.2.0/db_1/bin/sqlplus
/bin/chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/sqlplus
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib/libsqlplus.so
rm -rf /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus
make -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib/ins_sqlplus.mk newsqlplus LIBDIR=lib32 LDFLAGS='-m32 -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME) $(LDPATHFLAG)$(LIBHOME)stubs/' HYBRID_SUFFIX=32
make[1]: Entering directory `/t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib'
Linking /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus32
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus32
gcc -m32 -o /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus32 -L/t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib32/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib32/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib32/s0afimai.o -lsqlplus -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm -lpthread `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib32/sysliblist` -ldl -lm -lpthread -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib
/bin/chmod 755 /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus32
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/sqlplus32
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus32 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/sqlplus32
/bin/chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/sqlplus32
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib32/libsqlplus.so
rm -rf /t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/bin/sqlplus32
make[1]: Leaving directory `/t0/orat0/app/oracle/product/10.2.0/db_1/sqlplus/lib'
chmod 755 /t0/orat0/app/oracle/product/10.2.0/db_1/bin
rm -f wrap
Linking wrap
gcc -o wrap -L/t0/orat0/app/oracle/product/10.2.0/db_1/plsql/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/plsql/lib/s0plsw.o -lpsa10 -lpls10 -lplp10 -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm /t0/orat0/app/oracle/product/10.2.0/db_1/lib/libplc10.a -lpls10 -lclient10 -lnl10 -lnro10 -ln10 /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/kpudfo.o -lmm -lgeneric10 -lcommon10 -lslax10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lsql10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/wrap /t0/orat0/app/oracle/product/10.2.0/db_1/bin/wrapO
mv /t0/orat0/app/oracle/product/10.2.0/db_1/plsql/lib/wrap /t0/orat0/app/oracle/product/10.2.0/db_1/bin/wrap
chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/wrap
chmod 755 /t0/orat0/app/oracle/product/10.2.0/db_1/bin
rm -f oracle dbv tstshm maxmem orapwd dbfsize cursize genoci extproc extproc32 hsalloci hsots hsdepxa dgmgrl dumpsga mapsga osh sbttest expdp impdp imp exp sqlldr rman nid extjob extjobo genezi ikfod grdcscan /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/ksms.s /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/ksms.o
- Linking DB*Verify utility (dbv)
rm -f /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/dbv
gcc -o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/dbv -L/t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/ -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib/stubs/ /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/s0kudbv.o /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/defopt.o -ldbtools10 -lsnls10 -lunls10 -lnls10 -lclntsh `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/t0/orat0/app/oracle/product/10.2.0/db_1/lib -lm `cat /t0/orat0/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -L/t0/orat0/app/oracle/product/10.2.0/db_1/lib 
mv -f /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dbv /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dbvO
mv /t0/orat0/app/oracle/product/10.2.0/db_1/rdbms/lib/dbv /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dbv
chmod 751 /t0/orat0/app/oracle/product/10.2.0/db_1/bin/dbv
.
.
.

因此,ORACLE_HOME整体迁移后,还应该修改ORACLE_HOME中的链接才能确保迁移后可以正常工作。

Posted in ORACLE | Tagged , , | Leave a comment

ORACLE_HOME迁移后需要设置LD_LIBRARY_PATH环境变量

在10g以后,一般情况下环境变量中没有必要设置LD_LIBRARY_PATH,但是一旦将ORACLE_HOME迁移到其他目录,则环境变量中还需要添加这个变量。
Linux和Unix支持TAR方式迁移ORACLE_HOME,如果有需要将ORACLE_HOME放到其他路径下,那么一般都会使用tar的方式将整个路径拷贝到目标目录。
但是迁移后,如果直接尝试sqlplus启动,可能报错:

[orat3@hpserver2 ~]$ sqlplus / AS sysdba
sqlplus: error while loading shared libraries: libsqlplus.so: cannot OPEN shared object file: No such file OR directory

而设置LD_LIBRARY_PATH后,问题解决:

[orat3@hpserver2 ~]$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
[orat3@hpserver2 ~]$ sqlplus / AS sysdba
SQL*Plus: Release 10.2.0.4.0 - Production ON Sun Mar 18 16:10:57 2012
Copyright (c) 1982, 2007, Oracle. ALL Rights Reserved.
Connected TO:
Oracle DATABASE 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
WITH the Partitioning, OLAP, DATA Mining AND REAL Application Testing options
SQL>

还有一种类似的错误:

[orat0@hpserver2 ~]$ sqlplus / AS sysdba
SQL*Plus: Release 10.2.0.5.0 - Production ON Sun Mar 18 16:12:03 2012
Copyright (c) 1982, 2010, Oracle. ALL Rights Reserved.
oracleorcl10g: error while loading shared libraries: libskgxp10.so: cannot OPEN shared object file: No such file OR directory
ERROR:
ORA-12547: TNS:lost contact
Enter user-name: 
oracleorcl10g: error while loading shared libraries: libskgxp10.so: cannot OPEN shared object file: No such file OR directory
ERROR:
ORA-12547: TNS:lost contact
Enter user-name: 
oracleorcl10g: error while loading shared libraries: libskgxp10.so: cannot OPEN shared object file: No such file OR directory
ERROR:
ORA-12547: TNS:lost contact
SP2-0157: unable TO CONNECT TO ORACLE after 3 attempts, exiting SQL*Plus
[orat0@hpserver2 ~]$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
[orat0@hpserver2 ~]$ sqlplus / AS sysdba
SQL*Plus: Release 10.2.0.5.0 - Production ON Sun Mar 18 16:12:18 2012
Copyright (c) 1982, 2010, Oracle. ALL Rights Reserved.
Connected TO:
Oracle DATABASE 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
WITH the Partitioning, OLAP, DATA Mining AND REAL Application Testing options
SQL>

错误的表相虽然不同,但是解决方法是相同的。

Posted in ORACLE | Tagged , , , , , | Leave a comment

ORA-600(19004)错误

客户数据库出现ORA-600(19004)错误。
错误信息如下:

ORA-00600: internal error code, arguments: [19004], [], [], [], [], [], [], []

对应的详细TRACE为:

*** 2012-03-15 13:10:31.283
ksedmp: internal OR fatal error
ORA-00600: internal error code, arguments: [19004], [], [], [], [], [], [], []
CURRENT SQL statement FOR this SESSION:
SELECT DISTINCT loc.id AS col_0_0_, temp2_.id AS col_1_0_, bloc.routeIndex AS col_2_0_, loc.id AS id32_, loc.createdTime AS createdT2_32_, loc.CREATOR_ID AS CREATOR3_32_, loc.DOMAIN_ID AS DOMAIN4_32_, loc.lockVersion AS lockVers5_32_, loc.reMark AS reMark32_, loc.status_id AS status85_32_, loc.udf1 AS udf7_32_, loc.udf2 AS udf8_32_, loc.udf3 AS udf9_32_, loc.udf4 AS udf10_32_, loc.udf5 AS udf11_32_, loc.udf6 AS udf12_32_, loc.udf7 AS udf13_32_, loc.udf8 AS udf14_32_, loc.updatedTime AS updated15_32_, loc.UPDATOR_ID AS UPDATOR16_32_, loc.fixCreatedTime AS fixCrea17_32_, loc.fixCreatedTimeForDisp AS fixCrea18_32_, loc.fixExpiredTime AS fixExpi19_32_, loc.fixExpiredTimeForDisp AS fixExpi20_32_, loc.fixStatus_id AS fixStatus87_32_, loc.fixStatusForDisp AS fixStat21_32_, loc.lotAtt01 AS lotAtt22_32_, loc.lotAtt01ForDisp AS lotAtt23_32_, loc.lotAtt02 AS lotAtt24_32_, loc.lotAtt02ForDisp AS lotAtt25_32_, loc.lotAtt03 AS lotAtt26_32_, loc.lotAtt03ForDisp AS lotAtt27_32_, loc.lotAtt04 AS lotAtt28_32_, loc.lotAtt04ForDisp AS lotAtt29_32_, loc.lotAtt05 AS lotAtt30_32_, loc.lotAtt05ForDisp AS lotAtt31_32_, loc.lotAtt06 AS lotAtt32_32_, loc.lotAtt06ForDisp AS lotAtt33_32_, loc.lotAtt07 AS lotAtt34_32_, loc.lotAtt07ForDisp AS lotAtt35_32_, loc.lotAtt08 AS lotAtt36_32_, loc.lotAtt08ForDisp AS lotAtt37_32_, loc.lotAtt09 AS lotAtt38_32_, loc.lotAtt09ForDisp AS lotAtt39_32_, loc.lotAtt10 AS lotAtt40_32_, loc.lotAtt10ForDisp AS lotAtt41_32_, loc.lotAtt11 AS lotAtt42_32_, loc.lotAtt11ForDisp AS lotAtt43_32_, loc.lotAtt12 AS lotAtt44_32_, loc.lotAtt12ForDisp AS lotAtt45_32_, loc.lotHeader_id AS lotHeader89_32_, loc.asnTraceId AS asnTraceId32_, loc.cubicEach AS cubicEach32_, loc.cubicUom AS cubicUom32_, loc.customer_id AS customer86_32_, loc.grossWeightEach AS grossWe49_32_, loc.grossWeightUom AS grossWe50_32_, loc.inboundTime AS inbound51_32_, loc.location_id AS location83_32_, loc.manufacturer_id AS manufac88_32_, loc.netWeightEach AS netWeig52_32_, loc.netWeightUom AS netWeig53_32_, loc.org_id AS org82_32_, loc.packCode AS packCode32_, loc.priceEach AS priceEach32_, loc.priceUom AS priceUom32_, loc.qtyAllocatedEach AS qtyAllo57_32_, loc.qtyAllocatedUom AS qtyAllo58_32_, loc.qtyConfirmEach AS qtyConf59_32_, loc.qtyConfirmUom AS qtyConf60_32_, loc.qtyEach AS qtyEach32_, loc.qtyHold4PaEach AS qtyHold62_32_, loc.qtyHold4PaUom AS qtyHold63_32_, loc.qtyLendEach AS qtyLend64_32_, loc.qtyLendUom AS qtyLendUom32_, loc.qtyLockEach AS qtyLock66_32_, loc.qtyLockUom AS qtyLockUom32_, loc.qtyMendEach AS qtyMend68_32_, loc.qtyMendUom AS qtyMendUom32_, loc.qtyOnHoldEach AS qtyOnHo70_32_, loc.qtyOnHoldUom AS qtyOnHo71_32_, loc.qtyPickedEach AS qtyPick72_32_, loc.qtyPickedUom AS qtyPick73_32_, loc.qtyTempEach AS qtyTemp74_32_, loc.qtyTempUom AS qtyTempUom32_, loc.qtyUom AS qtyUom32_, loc.qtyUseEach AS qtyUseEach32_, loc.qtyUseUom AS qtyUseUom32_, loc.sku_id AS sku84_32_, loc.traceCode AS traceCode32_, loc.uom_id AS uom80_32_, loc.warehouse_id AS warehouse81_32_ FROM LOC loc, BLOC bloc, OD od, TEMP temp2_ WHERE loc.location_id=bloc.id AND od.id=temp2_.id AND loc.lotHeader_id=od.lotHeader_id AND (od.fixCreatedTime IS NULL OR od.fixCreatedTime=loc.fixCreatedTime) AND (od.fixExpiredTime IS NULL OR od.fixExpiredTime=loc.fixExpiredTime) AND (od.fixStatus_id IS NULL OR od.fixStatus_id=loc.fixStatus_id) AND (od.lotAtt01 IS NULL OR od.lotAtt01=loc.lotAtt01) AND (od.lotAtt02 IS NULL OR od.lotAtt02=loc.lotAtt02) AND (od.lotAtt03 IS NULL OR od.lotAtt03=loc.lotAtt03) AND (od.lotAtt04 IS NULL OR od.lotAtt04=loc.lotAtt04) AND (od.lotAtt05 IS NULL OR od.lotAtt05=loc.lotAtt05) AND (od.lotAtt06 IS NULL OR od.lotAtt06=loc.lotAtt06) AND (od.lotAtt07 IS NULL OR od.lotAtt07=loc.lotAtt07) AND (od.lotAtt08 IS NULL OR od.lotAtt08=loc.lotAtt08) AND (od.lotAtt09 IS NULL OR od.lotAtt09=loc.lotAtt09) AND (od.lotAtt10 IS NULL OR od.lotAtt10=loc.lotAtt10) AND (od.lotAtt11 IS NULL OR od.lotAtt11=loc.lotAtt11) AND (od.lotAtt12 IS NULL OR od.lotAtt12=loc.lotAtt12) AND CASE WHEN od.picLocation_id IS NULL THEN loc.location_id ELSE od.picLocation_id END=loc.location_id AND od.sku_id=loc.sku_id AND loc.uom_id=od.uom_id AND loc.warehouse_id=od.wh_id AND loc.customer_id=od.customer_id AND loc.qtyUseUom>0 ORDER BY loc.qtyUseUom DESC, bloc.routeIndex ASC, loc.id ASC
----- Call Stack Trace -----
calling              CALL     entry                argument VALUES IN hex      
location             TYPE     point                (? means dubious VALUE)     
-------------------- -------- -------------------- ----------------------------
ksedst()+31          CALL     ksedst1()            000000000 ? 000000001 ?
                                                   7FBFFF0300 ? 7FBFFF0360 ?
                                                   7FBFFF02A0 ? 000000000 ?
ksedmp()+610         CALL     ksedst()             000000000 ? 000000001 ?
                                                   7FBFFF0300 ? 7FBFFF0360 ?
                                                   7FBFFF02A0 ? 000000000 ?
ksfdmp()+21          CALL     ksedmp()             000000003 ? 000000001 ?
                                                   7FBFFF0300 ? 7FBFFF0360 ?
                                                   7FBFFF02A0 ? 000000000 ?
kgeriv()+176         CALL     ksfdmp()             000000003 ? 000000001 ?
                                                   7FBFFF0300 ? 7FBFFF0360 ?
                                                   7FBFFF02A0 ? 000000000 ?
kgesiv()+119         CALL     kgeriv()             0066876E0 ? 00673CEE0 ?
                                                   000000000 ? 000000000 ?
                                                   7FBFFF02A0 ? 000000000 ?
ksesic0()+209        CALL     kgesiv()             0066876E0 ? 00673CEE0 ?
                                                   000004A3C ? 000000000 ?
                                                   7FBFFF1080 ? 000000000 ?
kkejeq()+5152        CALL     ksesic0()            000004A3C ? 2A97403DB0 ?
                                                   0000000CA ? 2A97403DB0 ?
                                                   000000002 ? 000000000 ?
kkeEqJoinSel()+2602  CALL     kkejeq()             2A973C2930 ? 2A97403DB0 ?
                                                   000000000 ? 2A97403DB0 ?
                                                   000000002 ? 000000000 ?
kkepsl()+10561       CALL     kkeEqJoinSel()       7FBFFF1BB0 ? 7FBFFF1BD0 ?
                                                   7FBFFF1BC0 ? 7FBFFF1BE0 ?
                                                   2A971E68F8 ? 2A00000002 ?
kkeasl()+2125        CALL     kkepsl()             2A971E68F8 ? 7FBFFF2438 ?
                                                   000000002 ? 2A971EFB30 ?
                                                   2A971E68F8 ? 2A00000002 ?
kkeosl()+1447        CALL     kkeasl()             2A971E6970 ? 7FBFFF3DB8 ?
                                                   000000002 ? 000000000 ?
                                                   000000000 ? 2A971EFB30 ?
kkejcd()+1466        CALL     kkeosl()             2A971E6BF0 ? 7FBFFF4010 ?
                                                   000000002 ? 000000000 ?
                                                   000000000 ? 2A971EFB30 ?
kkojnp()+3920        CALL     kkejcd()             2A973CF670 ? 2A973D3628 ?
                                                   2A974407E8 ? 000000016 ?
                                                   2A973D5008 ? 000000003 ?
kkocnp()+166         CALL     kkojnp()             2A973D5008 ? 000000000 ?
                                                   2A974407E8 ? 000000016 ?
                                                   2A973D5008 ? 000000000 ?
kkooqb()+2258        CALL     kkocnp()             2A973D5008 ? 000000001 ?
                                                   2A974407E8 ? 000000016 ?
                                                   2A973D5008 ? 000000000 ?
kkoqbc()+2083        CALL     kkooqb()             000000000 ? 000000001 ?
                                                   0000007D0 ? 000000004 ?
                                                   2A00000000 ? 2A00000006 ?
apakkoqb()+170       CALL     kkoqbc()             7FBFFF7D80 ? 2A97393428 ?
                                                   0000007D0 ? 000000001 ?
                                                   2A00000000 ? 000000000 ?
apaqbdDescendents()  CALL     apakkoqb()           7FBFFF7D80 ? 2A97393428 ?
+399                                               1D23E4740 ? 000000001 ?
                                                   2A00000000 ? 000000000 ?
apaqbdListReverse()  CALL     apaqbdDescendents()  7FBFFF7D80 ? 2A97393428 ?
+68                                                1D23E4740 ? 000000001 ?
                                                   2A00000000 ? 000000000 ?
apadrv()+586         CALL     apaqbdListReverse()  7FBFFF7D80 ? 2A97393428 ?
                                                   1D23E4740 ? 000000001 ?
                                                   2A00000000 ? 000000000 ?
opitca()+1512        CALL     apadrv()             1D23E4740 ? 2A97393428 ?
                                                   1D23E4740 ? 000000001 ?
                                                   2A00000000 ? 000000000 ?
kksFullTypeCheck()+  CALL     opitca()             2A972335A8 ? 1D23E4740 ?
30                                                 1D23E4740 ? 000000001 ?
                                                   2A00000000 ? 000000000 ?
rpiswu2()+420        CALL     kksFullTypeCheck()   7FBFFF9328 ? 1D23E4740 ?
                                                   1D23E4740 ? 000000001 ?
                                                   2A00000000 ? 000000000 ?
kksLoadChild()+9500  CALL     rpiswu2()            1F736B950 ? 00000003A ?
                                                   1DFC84F24 ? 000000009 ?
                                                   1DFAD88E0 ? 10000003A ?
kxsGetRuntimeLock()  CALL     kksLoadChild()       0066876E0 ? 1FAB8C5C0 ?
+1353                                              7FBFFFA7C0 ? 000000000 ?
                                                   1DFC84DC0 ? 2A972335A8 ?
kksfbc()+15084       CALL     kxsGetRuntimeLock()  0066876E0 ? 2A972335A8 ?
                                                   7FBFFFA7C0 ? 000000000 ?
                                                   1DFC84DC0 ? 2A972335A8 ?
kkspsc0()+1548       CALL     kksfbc()             2A972335A8 ? 000000003 ?
                                                   000000108 ? 2A97203D18 ?
                                                   0000016A6 ? 000000000 ?
kksParseCursor()+14  CALL     kkspsc0()            2A97211788 ? 2A97203D18 ?
2                                                  0000016A6 ? 000000003 ?
                                                   E77100A400000006 ?
                                                   1E77100A4 ?
opiosq0()+1641       CALL     kksParseCursor()     7FBFFFB208 ? 2A97203D18 ?
                                                   0000016A6 ? 000000003 ?
                                                   E77100A400000006 ?
                                                   1E77100A4 ?
kpooprx()+315        CALL     opiosq0()            000000003 ? 00000000E ?
                                                   7FBFFFB3F8 ? 0000000A4 ?
                                                   E77100A400000006 ?
                                                   1E77100A4 ?
kpoal8()+799         CALL     kpooprx()            7FBFFFE5A4 ? 2A97203D18 ?
                                                   0000016A5 ? 000000001 ?
                                                   000000000 ? 1E77100A4 ?
opiodr()+984         CALL     kpoal8()             00000005E ? 000000017 ?
                                                   7FBFFFE5A0 ? 000000001 ?
                                                   000000001 ? 1E77100A4 ?
ttcpip()+1012        CALL     opiodr()             00000005E ? 000000017 ?
                                                   7FBFFFE5A0 ? 000000000 ?
                                                   0059B1310 ? 1E77100A4 ?
opitsk()+1322        CALL     ttcpip()             00668F3B0 ? 000000003 ?
                                                   7FBFFFE5A0 ? 000000000 ?
                                                   7FBFFFE098 ? 7FBFFFE708 ?
opiino()+1026        CALL     opitsk()             000000003 ? 000000000 ?
                                                   7FBFFFE5A0 ? 000000001 ?
                                                   000000000 ? 67502D200000001 ?
opiodr()+984         CALL     opiino()             00000003C ? 000000004 ?
                                                   7FBFFFF768 ? 000000000 ?
                                                   000000000 ? 67502D200000001 ?
opidrv()+547         CALL     opiodr()             00000003C ? 000000004 ?
                                                   7FBFFFF768 ? 000000000 ?
                                                   0059B0DC0 ? 67502D200000001 ?
sou2o()+114          CALL     opidrv()             00000003C ? 000000004 ?
                                                   7FBFFFF768 ? 000000000 ?
                                                   0059B0DC0 ? 67502D200000001 ?
opimai_real()+163    CALL     sou2o()              7FBFFFF740 ? 00000003C ?
                                                   000000004 ? 7FBFFFF768 ?
                                                   0059B0DC0 ? 67502D200000001 ?
main()+116           CALL     opimai_real()        000000002 ? 7FBFFFF7D0 ?
                                                   000000004 ? 7FBFFFF768 ?
                                                   0059B0DC0 ? 67502D200000001 ?
__libc_start_main()  CALL     main()               000000002 ? 7FBFFFF7D0 ?
+219                                               000000004 ? 7FBFFFF768 ?
                                                   0059B0DC0 ? 67502D200000001 ?
_start()+42          CALL     __libc_start_main()  000713988 ? 000000002 ?
                                                   7FBFFFF918 ? 005288D70 ?
                                                   000000000 ? 000000002 ?
--------------------- Binary Stack Dump ---------------------

这个SQL语句很长,查询了大量的列,且使用了DISTINCT,而且关联条件显得十分复杂,所以出现ORA-600错误也不奇怪。
检查MOS发现,问题和Bug 9022470 – Query optimization fails with OERI[19004] [ID 9022470.8]比较类似,除了当前的10204版本符合这个bug影响的版本外,堆栈信息错误完全符合这个bug的报错信息,而且在这个查询中,其中一个列确实在连接查询中出现了多次,这也同样符合bug的描述。
这个错误影响的版本包括10.2.0.4、11.1.0.7和11.2.0.1,Oracle在11.2.0.2中修复了这个bug。
对于这个错误,如果无法升级解决,那么只能通过修改SQL语法,或者尝试降低OPTIMIER_FEATURES_ENABLE的值来解决。

Posted in BUG | Tagged , , | Leave a comment