[English]
作者:
fuyuncat
来源:
www.HelloDBA.com
1. 安装ultra search组件
从Oracle网站上下载oracle10g companion安装。
重启数据库;
SQL> startup force2. 安装Oracle Text 10g
a) 创建Oracle Text对象
SQL> connect SYS/password as SYSDBA SQL> spool text_install.txt SQL> @?/ctx/admin/catctx.sql CTXSYS SYSAUX TEMP UNLOCK其中,CTSYS是用户CTSYS的密码,SYSAUX是其所在表空间,TEMP是其临时表空间,LOCK是CTSYS创建后是否锁住。
检查日至是否有错误,如果出错,卸载Oracle Text 10g(见),重启数据库,从第二步重新开始。
b) 安装Oracle Text语种支持
在$ORACLE_HOME/ctx/admin/defaults目录下有各种语种支持,选择正确的包安装。Drdefus.sql是美语。
SQL> connect CTXSYS/password SQL>@?/ctx/admin/defaults/drdefus.sql SQL> spool offc) 检查Oracle Text 10g是否安装正确
检查所有对象是否正确建立,版本是否正确。执行以下语句:
connect SYS/password as SYSDBAset pages 1000 col object_name format a40 col object_type format a20 col comp_name format a30 column library_name format a8 column file_spec format a60 wrap spool text_install_verification.log
-- check on setup select comp_name, status, substr(version,1,10) as version from dba_registry where comp_id = 'CONTEXT'; select * from ctxsys.ctx_version; select substr(ctxsys.dri_version,1,10) VER_CODE from dual;
select count(*) from dba_objects where owner='CTXSYS';
-- Get a summary count select object_type, count(*) from dba_objects where owner='CTXSYS' group by object_type;
-- Any invalid objects select object_name, object_type, status from dba_objects where owner='CTXSYS' and status != 'VALID' order by object_name;
spool off如果是10gR1,请确保结果如下:
SQL> select comp_name, status, substr(version,1,10) as version from dba_registry where comp_id = 'CONTEXT';
COMP_NAME STATUS VERSION ------------------------------ ----------- ------------------------------ Oracle Text VALID 10.1.0.2.0
SQL> select * from ctxsys.ctx_version;
VER_DICT VER_CODE ---------- ------------------------------ 10.1.0.2.0 10.1.0.2.0
SQL> select substr(ctxsys.dri_version,1,10) VER_CODE from dual;
VER_CODE ------------------------------ 10.1.0.2.0
SQL> select count(*) from dba_objects where owner='CTXSYS';
COUNT(*) ---------- 338
SQL> select object_type, count(*) from dba_objects where owner='CTXSYS' group by object_type;
OBJECT_TYPE COUNT(*) -------------------- ---------- FUNCTION 5 INDEX 46 INDEXTYPE 4 LIBRARY 1 LOB 1 OPERATOR 6 PACKAGE 71 PACKAGE BODY 58 PROCEDURE 3 SEQUENCE 3 TABLE 37 TYPE 42 TYPE BODY 7 VIEW 54
14 rows selected.
SQL> select object_name, object_type, status from dba_objects where owner='CTXSYS' and status != 'VALID' order by object_name;
no rows selected如果是10gR2,请确保结果如下:
SQL> select comp_name, status, substr(version,1,10) as version2 from dba_registry3 where comp_id = 'CONTEXT';COMP_NAME STATUS------------------------------ ---------------------------------VERSION------------------------------Oracle Text VALID10.2.0.1.0SQL> select * from ctxsys.ctx_version;VER_DICT VER_CODE---------- ------------------------------10.2.0.1.0 10.2.0.1.0SQL> select substr(ctxsys.dri_version,1,10) VER_CODE from dual;VER_CODE------------------------------10.2.0.1.0SQL>SQL> select count(*)2 from dba_objects where owner='CTXSYS';COUNT(*)----------339SQL>SQL> -- Get a summary countSQL> select object_type, count(*)2 from dba_objects where owner='CTXSYS'3 group by object_type;OBJECT_TYPE COUNT(*)-------------------- ----------SEQUENCE 3PROCEDURE 2OPERATOR 6PACKAGE 71PACKAGE BODY 58LOB 1LIBRARY 1TYPE BODY 7INDEX 46TABLE 37FUNCTION 5VIEW 54INDEXTYPE 4TYPE 4414 rows selected.SQL>SQL> -- Any invalid objectsSQL> select object_name, object_type, status2 from dba_objects3 where owner='CTXSYS'4 and status != 'VALID'5 order by object_name;no rows selected如果有问题,卸载重装。
3. 在Oracle 10g中重装、重载JVM
保险起见,先对数据库做一次冷备。
a) 确保以下条件:
Shared_pool_size最少24M;
Java_pool_size最少12M;
SYSTEM表空间最少有70M剩余空间;
回归段表空间最少有100M剩余空间;
b) 卸载JVM
关闭数据库,运行以下脚本:
spool full_rmjvm.logset echo onconnect / as sysdbastartup mountalter system set "_system_trig_enabled" = false scope=memory;alter system enable restricted session;alter database open;@?/rdbms/admin/catnoexf.sql@?/rdbms/admin/rmaqjms.sql@?/rdbms/admin/rmcdc.sql@?/xdk/admin/rmxml.sql@?/javavm/install/rmjvm.sqltruncate table java$jvm$status;select * from obj$ where obj#=0 and type#=0;delete from obj$ where obj#=0 and type#=0;commit;select owner, count(*) from all_objectswhere object_type like '%JAVA%' group by owner;select obj#, name from obj$where type#=28 or type#=29 or type#=30 or namespace=32;select o1.name from obj$ o1,obj$ o2where o1.type#=5 and o1.owner#=1 and o1.name=o2.name and o2.type#=29;shutdown immediateset echo offspool offexit确认结果日志是否正确(在drop对象时,报对象不存在的错误可以忽略)。特别注意:最后一个exit不能省略,确保后面的安装过程是在一个新的会话中。
c) 安装JVM
运行以下脚本安装JVM:
spool full_jvminst.log;set echo onconnect / as sysdbastartup mountalter system set "_system_trig_enabled" = false scope=memory;alter database open;select obj#, name from obj$where type#=28 or type#=29 or type#=30 or namespace=32;@?/javavm/install/initjvm.sqlselect count(*), object_type from all_objectswhere object_type like '%JAVA%' group by object_type;@?/xdk/admin/initxml.sqlselect count(*), object_type from all_objectswhere object_type like '%JAVA%' group by object_type;@?/xdk/admin/xmlja.sqlselect count(*), object_type from all_objectswhere object_type like '%JAVA%' group by object_type;@?/rdbms/admin/catjava.sqlselect count(*), object_type from all_objectswhere object_type like '%JAVA%' group by object_type;@?/rdbms/admin/catexf.sqlselect count(*), object_type from all_objectswhere object_type like '%JAVA%' group by object_type;shutdown immediateset echo offspool offexitd) 重启数据库,修正所有不可用对象
@?/rdbms/admin/utlrp.sql4. 安装Ultra Search
a) 安装
set echo onspool ultrasearch_inst.log@?/ultrasearch/admin/wk0install.sql SYS SYS wksys SYSAUX TEMP "" "" FALSEspool offexit其中,change_on_install是sys用户的密码;wksys指定为新创建用户wksys的密码;sysaux是其所在表空间;temp是其临时表空间;
第一个””在非RAC时为””,如果是RAC,就要指定为一个TNS字符串,如”<host name>:<port number>:<SID>”;第二个””是Portal用户,
没有portal时就为””;最后一个参数,当RAC使用聚簇文件系统(CFS)时为TRUE,否则为FALSE。
b) 检查
确保以上日至中无错误,否则卸载重装。
执行以下语句,确保结果相同(10gR1为351,10gR2为371)
SQL> SELECT COUNT(*) FROM DBA_OBJECTS2 WHERE OWNER = 'WKSYS';COUNT(*)----------371SQL> SELECT COUNT(*) FROM DBA_OBJECTS2 WHERE OWNER = 'WKSYS' AND STATUS = 'INVALID';COUNT(*)----------05. 确认Ultra Search配置是否正确
一般情况,Oracle已经自动配置好了。
检查文件$ORACLE_HOME/oc4j/j2ee/OC4J_Search/config/http-web-site.xml,确认是否包含以下内容:
<web-site port="5620" display-name="OC4J Java HTTP Web Site">
其中,5620是Ultra Search的端口。
检查文件$ORACLE_HOME/oc4j/j2ee/OC4J_Search/config/data-sources.xml,确认用户、密码、连接字符串配置是否正确。内容如下:
<?xml version="1.0" standalone='yes'?><!DOCTYPE data-sources PUBLIC "Orion data-sources" "http://xmlns.oracle.com/ias/dtds/data-sources-9_04.dtd"><data-sources><data-sourceclass="oracle.jdbc.pool.OracleConnectionCacheImpl"name="UltraSearchDS"location="jdbc/UltraSearchPooledDS"username="demo"password="demo"url="jdbc:oracle:thin:@huanged:1521:edgar"/></data-sources>
检查文件$ORACLE_HOME\ultrasearch\webapp\config\ultrasearch.properties。下面是一个配置好的例子:
# Install type can be "ocs", "ias", "rdbms"install_type=rdbms# If set, the jdbc connection specified here will override the dynamically# aquired one from OID. This setting is also used by the 9i query sample# (gsearch.jsp).## Example:# connection.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=# (PROTOCOL=tcp)(HOST=<host1>)(PORT=<tcp_port>)))(CONNECT_DATA=(SERVICE_NAME=# <service_name>)))"connection.url=jdbc:oracle:thin:@huanged:1521:edgarconnection.driver=oracle.jdbc.driver.OracleDriverdomain=corp.oocl.com# The oracle.net variables control the secure JDBC properties# and they are in effect only if using thin jdbc drivers as in example above# Refer to jdbc users guide for more information.oracle.net.encryption_client=REQUESTEDoracle.net.encryption_types_client=(RC4_56,DES56C,RC4_40,DES40C)oracle.net.crypto_checksum_client=REQUESTEDoracle.net.crypto_checksum_types_client=(MD5)6. 启动Ultra Search
执行:searchctl startm,结果如下:
C:\oracle\product\10.2.0\db_1\ultrasearch\admin>searchctl startCopyright (c) 2005 Oracle. All rights reserved.Starting Ultra Search midtier .... please wait.Ultra Search midtier started...Administration Tool -> http://<host>:5620/ultrasearch/admin/index.jspSearch page -> http://<host>:5620/ultrasearch/query/search.jsp7. 用wksys账号登陆管理
登陆http://<host>:5620/ultrasearch/admin/control/login.jsp
a) 给用户赋WKUSER角色
b) 创建实例:
8. 利用Ultra Search
进入一下地址使用Ultra Search
http://<host>:5620/ultrasearch/query/search.jsp
附录:
1. 卸载Ultra search
set echo onspool ultrasearch_deinst.log@?/ultrasearch/admin/wk0deinst.sql SYS SYS ""spool offexit2. 卸载JVM
见安装部分。
3. 卸载Oracle Text 10g
SQL> connect SYS/password as SYSDBA SQL> spool spool textdeinstall.log SQL>@?/ctx/admin/catnoctx.sql SQL> spool off