Erste Lösung:
Im einfachsten Fall einfach den Datenbank konfigurations Assistenten starten und die Option "Datenbank konfigurieren" auswählen. Einmal durchklicken, Passwörter neu vergeben, fertig. Evtl. erschein eine Fehlermeldung das die Konfiguratinsdateien nicht geschrieben werden konnten, dann den Vorgang nochmal wiederholen.
Zweite Lösung:
Die Oracle Datenbank aus dem OEM Control nehmen mit:
d:\> emca -x <SID>
1. Den Datenbank Konfigurations Assistenten DBCA starten
2. Datenbank Konfigurieren auswählen
3. Datenbank auswählen
4. Passörter neu eingeben
5. DBCA beenden
8. In portlist.ini in <oracle_home>\install folder prüfen ob die Portnummern stimmen
z.B.
Enterprise Manager Console HTTP Port (TEST) = 5501
Enterprise Manager Agent Port (TEST) = 1831
9. DB Console öffnen: http:/<hostname oder ip>:5501/em
Neue IP Adressen:
In der HOST Datei des Rechners (Windows:C:\Windows\System32\drivers\etc\hosts) die neues IP's mit dem Hostnamen verknüfen. Alternativ kann man natürlich auch ein ReverseDNS Eintrag machen aber das aktualisieren kann u.U. 2 Tage dauern.
Geht nicht:
from meintable
where contains(namede, '!meinesuche') > 0 order by score(0)
Es erscheint:
ORA-29908: missing primary invocation for ancillary operator
So geht's:
from meintable
where contains(namede, '!meinesuche',0) > 0 order by score(0)
Die Contains Abfrage benötigt die Referenz der Funktion Score!
Phonetische Suche mit Oracle Text war die Lösung
Ich habe etliches ausprobiert aber alles war zu langsam oder die Ergebnisse waren einfach nur grottenschlecht. SoundEx war schon sehr gut, leider nur bei englischen Items. Die Lösung war dann die Benutzung von Oracle Text. Oracle TEXT dient "von Haus aus" zur Indizierung und Volltextsuche in Textdokumenten, wie ich feststellte aber auch prima um eine linguistische bzw. phonetische Suche zu realisieren.
So mit der phonetischen Suche
Zunächst indizieren wir die Tabelle mit Oracle TEXT. Da in diesem Fall jedoch keine Textdokumente, sondern Adressen vorliegen, muss der Index vorher richtig parametrisiert werden.
[Macromedia][Oracle JDBC Driver][Oracle]ORA-01000: maximum open cursors exceeded
Die Fehlermeldung bekommt wohl jeder mal zu sehen der mit ColdFusion und Oracle arbeitet. Nach einigen Tests konnte ich eine Ursache ermitteln. Der Gebrauch von dem cfqueryparam Tag benötigt jeweils einen offenen Cursor. Hier ist ganz entscheidend wie im ColdFusion Administrator der Wert für „Max Pooled Statements“ eingestellt ist. Der Wert sollte kleiner sein als die Max Open Cursor bei Oracle, sonst läuft man Gefahr das Oracle die Fehlermeldung bringt. Ein guter Wert für beide Faktoren zu ermitteln wird mir sicherlich noch einiges an Zeit kosten.
Wer diese Fehlermeldung bekommt startet am besten den CF Server neu. Das Neustarten geht sehr schnell und danach kann man die Werte optimieren. Es kann unter Umständen ein paar Sekunden dauern bis die Cursoren aufgelöst werden.
SQL um offene Cursoren abzufragen:FROM V$SESSTAT v, V$SESSION s
WHERE v.statistic# = 3 and v.sid = s.sid
UPDATE 02.02.2007
Habe jetzt bei Oracle die Max_Open_Cursor auf 1024 gesetzt und in CF die "Max pooled statements" auf 300. Die Server laufen nun wieder stabil.
