奇趣技术网 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 技术论坛
中华网络安全联盟 >> 数据库 >> Oracle >> 在UNIX服务器上设置Oracle8i全文检索
数据库
Access
SQL Server
MySQL
DB2
Oracle
Sybase
  • Linux下安装支持ssl连

  • 在同一台机运行多个My

  • 我的MYSQL安装笔记拿出

  • 写了个简单的数据库自

  • Oracle 10g中新型层次

  • ORACLE回滚段管理(下

  • ORACLE回滚段管理(上

  • Oracle大文本在ASP中存

  • 在UNIX服务器上设置Oracle8i全文检索
    字体:

    中华网络安全联盟    作者:佚名    来源:网络转载    时间:2006-3-23

    由于工作需要,笔者在HP UX, Soralis 上面设置了Oracle Intermedia来实现全文检索。目前已经投入实际使用。设置过程中有许多问题和经验,拿来和大家交流。本文依据的是Oracle 8.1.6 和8.1.7两个版本,不能保证适用于其他版本。 

    目前全文检索功能几乎所有主流数据库都支持。此前笔者曾在sql server 2000上实现,感觉非常简单,方便,但创建全文检索索引的时间比较长,通常要十几个小时。Oracle 的全文检索建立和维护索引都要快得多,笔者的65万记录的一个表建立索引只需要20分钟,同步一次只需要1分钟。但设置就要复杂得多。 

    一.设置过程 

    1.首先,检查你的数据库是否安装了intermedia 

    这可以通过检查是否有ctxsys用户和ctxapp角色(role). 如果没有这个用户和角色,意味着你的数据库创建时未安装intermedia功能。你必须修改数据库以安装这项功能。 

    修改过程: 

    运行 $ORACLE_HOME/bin/dbassist, 选择'modify database', 然后在选择数据库功能时将j server 和 intermedia 都选上(安装intermedia必须同时安装jserver).强烈建议你在做这个改动前先备份整个数据库。 



    2.设置extproc 

    Oracle 是通过所谓的‘外部调用功能’(external procedure)来实现intermedia的,因此正确地设置extproc是关键一步。 

    首先要配置listener 使它能监听intermedia 调用的请求。你可以通过运行$ORACLE_HOME/bin/netassit 来进行配置,也可以手工修改配置文件:$ORACLE_HOME/network/admin/listener.ora ,然后重新启动listener。下面以一个例子来讲述如何手工修改配置文件。 

    打开listener.ora文件,在修改前,通常有如下内容(假定使用缺省listener): 

    LISTENER = 

    (DESCRIPTION = 

    (ADDRESS = (PROTOCOL = TCP)(HOST = MYDATABASE)(PORT = 1521)) 





    SID_LIST_LISTENER = 

    (SID_DESC = 

    (GLOBAL_DBNAME = mydatabase.world) 

    (ORACLE_HOME = /u01/app/oracle/product/8.1.6) 

    (SID_NAME = mydatabase) 





    这个listener还没有配置extproc, 因此,需要为它增加对extproc的监听,办法就是分别增加description 和 sid_desc. 修改后的listner.ora 如下: 

    LISTENER = 

    (DESCRIPTION_LIST = 

    (DESCRIPTION = 

    (ADDRESS = (PROTOCOL = TCP)(HOST = MYDATABASE)(PORT = 1521)) 



    (DESCRIPTION = 

    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) 







    SID_LIST_LISTENER = 

    (SID_LIST = 

    (SID_DESC = 

    (GLOBAL_DBNAME = mydatabase.world) 

    (ORACLE_HOME = /u01/app/oracle/product/8.1.6) 

    (SID_NAME = mydatabase) 



    (SID_DESC = 

    (PROGRAM = extproc) 

    (SID_NAME = PLSExtProc) 

    (ORACLE_HOME = /u01/app/oracle/product/8.1.6) 







    注意上面的host, global_dbname,sid_name,oracle_home应填写你的数据库的实际值,但program一项必须填写extproc. 

    其次,要配置服务器端的tnsnames.ora文件。该文件的位置在$ORACLE_HOME/network/admin下面。同样可以通过运行netasst来进行配置。 

    在tnsnames.ora文件中需要增加如下一项: 

    EXTPROC_CONNECTION_DATA,EXTPROC_CONNECTION_DATA.WORLD = 

    (DESCRIPTION = 

    (ADDRESS_LIST = 

    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) 



    (CONNECT_DATA = 

    (SID = PLSExtProc) 





    注意其中,KEY 和SID必须与listener.ora中的key 和sid_name对应相同。 

    修改完成后,重新启动listener (先用lsnrctl stop, 然后 lsnrctl start), 然后,使用tnsping 来测试一下是否配置正确: 

    tnsping extproc_connection_data 或者 

    tnsping extproc_connection_data.world,如果配置正确,会显示: 

    Attempting to contact (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)) OK(140毫秒) 

    否则请检查你的上述两个文件,并注意,在修改后一定要重新启动listener,但并不需要重新启动数据库。  




      
    字体:
     
    设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
    Copyright©2006-2008 中华网络安全联盟 All rights reserved.