Oracle Warehouse Builder (OWB) 是 Oracle 的一个综合工具,它提供了易用的图形环境,从而可以快速设计、部署和管理业务智能系统。
在一台已经安装了Oracle 10g的64位Linux下安装10.0.1版本OWB软件时,碰到了两个错误,后来查了些资料解决了,记录一下。
首先是OWB需要有自己的ORACLE_HOME,建议建立一个单独的路径来安装OWB,在安装到一半的时候会报调用isqlldr的错,日志信息如下:
INFO: /u01/app/oracle/oracle/product/10.2.0/db_1/owb/rdbms/lib/ins_rdbms.mk:2: /u01/app/oracle/oracle/product/10.2.0/db_1/owb:/u01/app/oracle/oracle/product/10.2.0/db_1:/rdbms/lib/env_rdbms.mk: No such file or directory
INFO: /u01/app/oracle/oracle/product/10.2.0/db_1/owb/rdbms/lib/ins_rdbms.mk:23: target `ksms.s' given more than once in the same rule.
INFO: make: *** No rule to make target `/u01/app/oracle/oracle/product/10.2.0/db_1/owb:/u01/app/oracle/oracle/product/10.2.0/db_1:/rdbms/lib/env_rdbms.mk'. Stop.
INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: makeException Name: MakefileException
Exception String: Error in invoking target 'isqlldr' of makefile '/u01/app/oracle/oracle/product/10.2.0/db_1/owb/rdbms/lib/ins_rdbms.mk'. See '/u01/app/oracle/oraInventory/logs/installActions2010-03-12_02-44-34PM.log' for details.
Exception Severity: 1
这个错误的解决办法就是编辑ins_rdbms.mk文件,增加一行指定OWB自身的ORACLE_HOME的配置:
# Entering /ade/aime_rdbms_9819/oracle/rdbms/install/cus_rdbms.mk
ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1/owb
include $(ORACLE_HOME)/rdbms/lib/env_rdbms.mk
安装完成后,要建立资料库,可以调用安装目录下owb/unix/reposinst.sh脚本建立资料库和用户,但是在创建过程中会报ora-01919: role 'JAVAIDPRIV' does not exist错误,这时需要在目标数据库中重建JVM环境,操作步骤如下:
SQL> @?/javavm/install/rmjvm
SQL> shutdown immediate
SQL> startup
SQL> @?/javavm/install/initjvm
SQL> @?/xdk/admin/initxml
SQL> @?/xdk/admin/xmlja
SQL> @?/rdbms/admin/catjava
虽然前面创建资料库失败,但是用户和一些角色已经创建在数据库中了,我们可以删除这些用户和OWB开头的角色,类似如下SQL:
select * from dba_users
drop user BIUSER cascade
select * from dba_roles where role like 'OWB%'
drop roles OWB_BIUSER
然后再重新创建即可成功。