프린트 하기 URL 복사

OS 환경 : Oracle Linux 9.6 (64bit)

 

DB 환경 : Oracle AI Database 23.26.2.0.0 ai

 

방법 : 오라클 26ai CDB, PDB에 Oracle Text 컴포넌트 설치

PDB에 Oracle Text 컴포넌트를 설치하기위해 dbca를 수행했지만 cdb에 Oracle Text가 없어서 아래 에러와 함께 pdb에도 설치가 안되었음
[DBT-12509] Option ORACLE_TEXT is enabled in the PDBs but not in the CDB.

참고로 Select AI 를 사용하기 위해선 Oracle Text 컴포넌트 설치가 필요함

 

 

본문에서는 dbca가 아닌 수동으로 Oracle Text 컴포넌트를 구성하는 방법을 설명함

 

 

cdb 접속

1
2
3
4
5
6
$ sqlplus / as sysdba
SQL> show con_name
 
CON_NAME
------------------------------
CDB$ROOT

cdb임

 

 

Oracle Text 구성 스크립트 수행

1
2
SQL> @$ORACLE_HOME/ctx/admin/catctx.sql oraclepw SYSAUX TEMP NOLOCK
(실행중)

oraclepw에는 text유저(CTXSYS) 패스워드를 입력하면됨

 

 

컴포넌트 확인

1
2
3
4
5
6
7
8
9
10
11
SQL>
set lines 200 pages 1000
col comp_id for a20
col comp_name for a20
col name for a20
SELECT (select name from v$containers where con_id = cr.con_id) name
, comp_id, comp_name, version, status FROM cdb_registry cr WHERE comp_id = 'CONTEXT';
 
NAME                 COMP_ID              COMP_NAME            VERSION                        STATUS
-------------------- -------------------- -------------------- ------------------------------ -----------
CDB$ROOT             CONTEXT              Oracle Text          23.0.0.0.0                     VALID

정상적으로 cdb에 text 컴포넌트가 설치됨

 

 

pdb 접속

1
2
3
4
5
6
7
8
9
SQL> alter session set container=oracle26pdb1;
 
Session altered.
 
SQL> show con_name
 
CON_NAME
------------------------------
ORACLE26PDB1

pdb에 접속됨

 

 

Oracle Text 구성 스크립트 수행

1
2
SQL> @$ORACLE_HOME/ctx/admin/catctx.sql oraclepw SYSAUX TEMP NOLOCK
(실행중)

oraclepw에는 text유저(CTXSYS) 패스워드를 입력하면됨

 

 

컴포넌트 확인

1
2
3
4
5
6
7
8
9
10
11
SQL>
set lines 200 pages 1000
col comp_id for a20
col comp_name for a20
col name for a20
SELECT (select name from v$containers where con_id = cr.con_id) name
, comp_id, comp_name, version, status FROM cdb_registry cr WHERE comp_id = 'CONTEXT';
 
NAME                 COMP_ID              COMP_NAME            VERSION                        STATUS
-------------------- -------------------- -------------------- ------------------------------ -----------
ORACLE26PDB1         CONTEXT              Oracle Text          23.0.0.0.0                     VALID

정상적으로 pdb에도 text 컴포넌트가 설치됨

 

 

참고1. cdb, 모든 pdb에 한번에 Oracle Text 컴포넌트 설치

1
2
3
4
5
6
7
8
9
10
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u SYS -d $ORACLE_HOME/ctx/admin -b catctx_out catctx.sql --p'oraclepw' --p'SYSAUX' --p'TEMP' --p'NOLOCK'
catcon::set_log_file_base_path: ALL catcon-related output will be written to [/home/oracle/catctx_out_catcon_319928.lst]
 
catcon::set_log_file_base_path: catcon: See [/home/oracle/catctx_out*.log] files for output generated by scripts
 
catcon::set_log_file_base_path: catcon: See [/home/oracle/catctx_out_*.lst] files for spool files, if any
 
Enter Password: <<-- SYS 패스워드 입력
(대기)
catcon.pl: completed successfully

Enter Password에는 SYS 패스워드를 입력하고
oraclepw에는 text유저(CTXSYS) 패스워드를 입력하면됨

 

 

참고2. cdb, 모든 pdb에 한번에 Oracle Text 컴포넌트 제거

1
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u SYS -d $ORACLE_HOME/ctx/admin -b catnoctx_out catnoctx.sql

 

 

결론 :
본문 방법으로 Oracle Text를 구성할 수 있음

참고로 Select AI 를 사용하기 위해선 Oracle Text 컴포넌트 설치가 필요함

 

 

참조 : 

Manual Deinstallation, Installation of Oracle Text in a Multitenant Database(KB138827)
Database option CONTEXT mismatch: PDB installed version 19.0.0.0.0. CDB installed ver PENDING version NULL(KB434407)
How To Install Oracle Text In PDB$SEED?(KB426962)
Creating A Container Database (CDB) With A Subset Of Options(KB127542)
Oracle Text Installation Steps For New 19c Installs(KB121962)
https://mikedietrichde.com/2017/03/02/install-components-in-multitenant-always-with-catcon-pl/