Mit der View DBA_REGISTRY können alle Komponenten und ihr zugehöriger Status angezeigt werden, die in das Verzeichnis der Datenbank geladen sind. Hier wird auf die COMP_ID CONTEXT abgefragt, um den Status zu Oracle Text zu evaluieren.
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 11.2.0.1.0
Danach wird die Version des CTXSYS Data Dictionaries und die Code Versionsnummer ausgegeben.
SQL> SELECT * FROM ctxsys.ctx_version;
VER_DICT VER_CODE
---------- ----------
11.2.0.1.0 11.2.0.1.0
SQL> SELECT ctxsys.dri_version VER_CODE FROM dual;
VER_CODE
--------------------------------------------------------------------------------
11.2.0.1.0
Im nächsten Schritt wird überprüft, ob alle Objekte im CTXSYS Schema angelegt sind, keine invaliden Objekte vorhanden sind und keine CTXSYS-Objekte im SYS Schema enthalten sind. Das Ergebnis sollte dann folgendermassen aussehen.
SQL> SELECT count(*) FROM dba_objects WHERE owner='CTXSYS';
COUNT(*)
----------
366
SQL> SELECT object_type, count(*) FROM dba_objects
WHERE owner='CTXSYS' GROUP BY object_type;
OBJECT_TYPE COUNT(*)
------------------- ----------
SEQUENCE 3
PROCEDURE 2
OPERATOR 6
LOB 2
LIBRARY 1
PACKAGE 73
PACKAGE BODY 62
TYPE BODY 6
INDEX 56
TABLE 47
VIEW 71
FUNCTION 2
INDEXTYPE 4
TYPE 31
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
SQL> SELECT owner, object_name, object_type, status FROM dba_objects
WHERE owner = 'SYS' AND (object_name like 'CTX_%' or object_name like 'DRI%')
ORDER BY 2,3;
no rows selected
Soweit ist alles in unserer Installation in Ordnung... Möchte man diese und weitere Überprüfungen zu den existierenden Textindizes automatisch durchführen, eignet sich das kleine Health Check Skript aus Note 823649.1. Nun wollen wir in einer anderen Umgebung Oracle Text Release 11gR2 nachinstallieren. Dazu werden zwei Skripte benötigt. Das Skript catctx.sql im Verzeichnis $ORACLE_HOME/ctx/admin erzeugt das Oracle Text Dictionary und das Schema CTXSYS. Als SYS eingeloggt werden dabei zu Beginn die Einstellungen zu User CXTSYS - wie Passwort, Default und Temporary Tablespace und LOCK oder UNLOCK Status - abgefragt. Danach werden die entsprechenden Dictionary Objekte angelegt.
SQL> connect / as sysdba
SQL> spool text_install.txt
SQL> @?/ctx/admin/catctx.sql
Enter value for 1: oracle
Enter value for 2: SYSAUX
Enter value for 3: TEMP
Enter value for 4: NOLOCK
...creating user CTXSYS
old 2: identified by &pass default tablespace &tbs temporary tablespace &ttbs
new 2: identified by oracle default tablespace SYSAUX temporary tablespace TEMP
User created.
Grant succeeded.
Grant succeeded.
...
Nach wenigen Minuten ist das Dictionary angelegt. Nun werden im zweiten Schritt die Sprach-spezifischen Default Präferenzen erzeugt. Es existieren Skripte für die unterschiedlichen Sprachen im $ORACLE_HOME/ctx/admin/defaults Verzeichnis. Die Skripte heissen drdef(sprachkuerzel).sql. Das Sprachkürzel D steht beispielsweise für deutsche, US für englische, F für französische Spracheinstellungen. Im folgenden legen wir eine deutsche Umgebung an, dazu loggen wir uns als CTXSYS ein und starten das Skript dr0defin.sql mit Parameter GERMAN, das automatisch das korrekte Spracheinstellungs-Skript ausführt.
SQL> connect ctxsys/oracle
SQL> @dr0defin.sql "GERMAN"
old 1: SELECT DECODE('&nls_language',
new 1: SELECT DECODE('GERMAN',
L
-
d
Creating lexer preference...
PL/SQL procedure successfully completed.
Creating wordlist preference...
PL/SQL procedure successfully completed.
Creating stoplist...
PL/SQL procedure successfully completed.
Creating default policy...
PL/SQL procedure successfully completed.
SQL>
Nach ein paar Sekunden ist dies auch erledigt. Zum Abschluss können wir die zu Beginn beschriebenen Skripte starten, um nun eine Validierung dieser Installation durchzuführen.