-- 혀니 님이 쓰신 글:
>> 오라클 815,816기준
>>
>> 기본적으로 오라클을 설치하면 intermedia text 패키지들이 설치가 됩니다.
>> 패키지가 설치 되었는지 검사 하기
>> #sqlplus ctxsys/ctxsys 로 접속이 되어야 합니다
>> 즉 ctxsys라는 사용자가 있어야 설치가 된겁니다.
>>
>> intermedia text관련 라이브러리가 설치되었는지 검사
>>
>> SQL>select library_name,file_spec,dynamic,status from user_libraries;
>>
>> LIBRARY_NAME FILE_SPEC D STATUS
>> ------------ ---------------------------------------- - -------
>> DR$LIBX /oracle/db/dev118/ctx/lib/libctxx8.so Y VALID
>>
>> 위가 같은 내용이 검색된다면 intermedia 관려 패키지들이 설치가 된겁니다..
>>
>>
>> [1]만약 설치가 되어 있지 않다면 아래의 순서대로 설치해주시면 됩니다..
>> 1-1) SYS사용자로 접속을 합니다
>> SQL>@$ORACLE_HOME/ctx/admin/dr0csys.sql ctxsys패스워드 디폴트테이블스페이스 템프로리테이블스패이스
>> (EX SQL>@$ORACLE_HOME/ctx/admin/dr0csys.sql ctxsys system temp)
>>
>> 1-2) cxtsys사용자로 접속을 합니다
>> SQL>connect ctxsys/ctxsys
>>
>> 1-3) 관련 라이브러리를 설치합니다.
>> SQL>@$ORACLE_HOME/ctx/admin/dr0inst.sql $ORACLE_HOME/ctx/lib/libctxx8.so
>>
>> 1-4) 한글 랙서(Lexer)를 설치 합니다.
>> SQL>@$ORACLE_HOME/ctx/admin/defaults/drdefko.sql
>>
>> 만약 기존에 설치되어 있는 intermedia text를 제거 하고자 한다면 아래 순서대로 하시면 됩니다..
>> (권하고 싶은 방법이 아닙니다 이렇게 제거하고 다시 설치하려다 안돼서 오라클을 다시 설치한 경험이 있습니다
>> 그러나 이방법으로 제거한후 다시 설치하는것이 맞습니다 )
>>
>> 2-1) ctxsys사용자로 접속해 intermedia text라이브러리를 제거 합니다.
>> SQL>@$ORCLE_HOME/ctx/admin/dr0drop.sql
>> 2-2) sys 사용자로 접속해 ctxsys사용자를 제거 합니다.
>> SQL>@$ORACLE_HOME/ctx/admin/dr0dsys.sql
>>
>> [2] Net8 세팅하기
>> 기본적으로 오라클 816은 intermadia text설치한다면 Net8설정이 오라클 설치시 세팅이 됩니다.
>> 세팅이 되어 있지 않거나 아래와 내용이 다른 경우 세로 세팅을 하시면 됩니다.
>>
>> $ORACLE_HOME/network/admin/listener.ora
>> ($ORACLE_HOME이 /home/oracle이라고 가정)
>> 만약 intermedia text세팅이 되어 있지 않다면
>> LISTENER =
>> (DESCRIPTION_LIST =
>> (DESCRIPTION =
>> (ADDRESS_LIST=
>> (ADDRESS= (PROTOCOL=tcp) (HOST=xxx.xxx.co.kr) (PORT=1521))
>> )
>> )
>> )
>>
>> SID_LIST_LISTENER =
>> (SID_DESC =
>> (GLOBAL_DBNAME = ORCL)
>> (ORACLE_HOME = /home/oracle)
>> (SID_NAME = ORCL)
>> )
>> )
>>
>> 이렇게만 되어 있을 겁니다.
>> LISTENER =
>> (DESCRIPTION_LIST =
>> (DESCRIPTION =
>> (ADDRESS_LIST =
>> (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC))
>> (ADDRESS = (PROTOCOL = TCP) (HOST = xxx.xxx.co.kr) (PORT = 1521))
>> )
>> )
>> )
>>
>> SID_LIST_LISTENER =
>> (SID_LIST =
>> (SID_DESC =
>> (SID_NAME = PLSExtProc)
>> (ORACLE_HOME = /home/oracle)
>> (ENVS = 'LD_LIBRARY_PATH=/home/oracle/ctx/lib')
>> (PROGRAM = extproc)
>> )
>> (SID_DESC =
>> (GLOBAL_DBNAME = ORCL)
>> (ORACLE_HOME = /home/oracle)
>> (SID_NAME = ORCL)
>> )
>> )
>> 위와 같이 바꾸어 줍니다.
>> 즉
>> LISTENER에서
>> (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC))를 추가하고
>>
>> SID_LIST_LISTENER 에서
>> SID_DESC =
>> (SID_NAME = PLSExtProc)
>> (ORACLE_HOME = /home/oracle)
>> (ENVS = LD_LIBRARY_PATH = /home/oracle/ctx/lib)
>> (PROGRAM = extproc)
>> 추가 하는 겁니다..
>>
>>
>> $ORACLE_HOME/network/admin/tnsnames.ora
>> intermedia text가 세팅되어 있지 않았다면
>> DBCON =
>> (DESCRIPTION =
>> (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.co.kr)(PORT = 1521)))
>> (CONNECT_DATA = (SERVICE_NAME = ORCL))
>> )
>> 이렇게만 되어 있을 겁니다.
>>
>> DBCON =
>> (DESCRIPTION =
>> (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.co.kr)(PORT = 1521)))
>> (CONNECT_DATA = (SERVICE_NAME = ORCL))
>> )
>> EXTPROC_CONNECTION_DATA.XXX.CO.KR =
>> (DESCRIPTION =
>> (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)))
>> (CONNECT_DATA = (SID = PLSExtProc)(PRESENTATION = RO))
>> )
>> 위와 같이 EXTPROC_CONNECTION_DATA.XXX.CO.KR 의 내용을 추가 합니다..
>> EXTPROC_CONNECTION_DATA는 반드시 적어주어야 합니다.
>> XXX.CO.KR은 $ORACLE_HOME/network/admin/sqlnet.ora 파일에 있는 NAMES.DEFAULT_DOMAIN = XXX.CO.KR의
>> XXX.CO.KR을 적어주셔야 합니다.
>>
>> 만약 sqlnet.ora파일에 NAMES.DEFAULT_DOMAIN 없다면 반드시 세팅해 주셔야 합니다
>>
>> Net8세팅이 다되었다면 리스너를 재실행 합니다.
>> lsnrctl stop -> lsnctl start
>>
>> 다음 intermedia text서비스가 시작 되었는지 체크합니다
>>
>> #lsnrctl status
>>
>> LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 21-APR-01 11:02:01
>>
>> (c) Copyright 1998 Oracle Corporation. All rights reserved.
>>
>> Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
>> STATUS of the LISTENER
>> ------------------------
>> Alias LISTENER
>> Version TNSLSNR for Linux: Version 8.1.5.0.0 - Production
>> Start Date 21-APR-01 09:13:14
>> Uptime 0 days 1 hr. 48 min. 46 sec
>> Trace Level off
>> Security OFF
>> SNMP OFF
>> Listener Parameter File /home/oracle/network/admin/listener.ora
>> Listener Log File /home/oracle/network/log/listener.log
>> Services Summary...
>> PLSExtProc has 1 service handler(s)
>> ORCL has 1 service handler(s)
>> The command completed successfully
>>
>> 위의 내용과 같이
>> Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC))
>> PLSExtProc has 1 service handler(s)
>> 이런 이런내용들이 확이 되어야 합니다..
>>
>> tnsping으로도 확인 해봅니다..
>> #tnsping EXTPROC_CONNECTION_DATA.XXX.CO.KR
>> TNS Ping Utility for Linux: Version 8.1.5.0.0 - Production on 21-APR-01 11:05:58
>>
>> (c) Copyright 1997 Oracle Corporation. All rights reserved.
>>
>> Attempting to contact (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC))
>> OK (0 msec)
>>
>> OK가 되었다면 Net8세팅이 정상적으로 되었다고 보시면 됩니다..
>>
>> 새로운 사용자를 만들고 테스트를 해보겠습니다
>> SQL>Create user ctxtest identified by ctxtest;
>> SQL>Grant connect, resource, ctxapp to ctxtest;
>> ctxtest라는 사용자에게 ctxapp라는 권한이 반드시 있어야 합니다
>>
>> SQL>connect ctxtest/ctxtest
>> SQL>Create table test(num number primary key, text long);
>>
>> SQL>Insert into test values (1,'테스트');
>> SQL>Insert into test values (2,'InterMedia text 입력테스트');
>>
>> SQL>Create index test_idx_text on test(text) indextype is ctxsys.context;
>>
>> SQL>Select num,text from test where contains (text,'%입력%') > 0;
>> NUM TEXT
>> --- ----------------------------------------------
>> 2 InterMedia text 입력테스트
>>
>> CONTEXT INDEX의 경우 입력될때마다 자동으로 인덱스 생성이 되지 않기 때문에..
>> ctxsrv를 쉘상에서 기동시켜주어야 합니다..
>> #ctxsrv -user ctxsys/ctxsys -logfile ctxsrv.log &
>>
>> 그럼 행운을 빕니다..
>>
>> PS)
>> 질문은 http://dr.moira.co.kr의 QandA에서 받겠습니다..
>> 제가 아는 만큼만 알려 드리겠습니다.
님이 하라는 대로 하구요. lsnrctl status,tnsping테스트도 이상없이 나오거든요. 근데 인덱스만 생성시킬려면 이런에러가 나요.
명령 :
create index test_idx_text on test(text) indextype is CTXSYS.CONTEXT
에러 :
*
1행에 오류:
ORA-29855: ODCIINDEXCREATE 루틴을 수행하는데 오류가 발생했습니다
ORA-20000: interMedia Text 오류:
DRG-10700: 환경설저이 존재하지 않습니다: CTXSYS.DEFAULT_LEXER
ORA-06512: "CTXSYS.DRUE", 줄 126에서
ORA-06512: "CTXSYS.TEXTINDEXMETHODS", 줄 78에서
ORA-06512: 줄 1에서
참고로 전 win2000서버를 쓰고 있구요, oracle817ee를 사용하고 있습니다.
도와주세요........
|