DOAG Datenbank Kolumne: Oracle auf Windows

  • Erstellt von Elke Fritsch
  • Datenbank Kolumne, Oracle, Datenbank

Zugegebenermaßen ist Oracle auf Windows eher etwas für Masochisten, aber es gibt immer noch viele Datenbanken, vor allem kleinere, die auf Windows-Servern laufen.

2024 hatte ich für einen Vortrag auf der DOAG 2025 Konferenz und Ausstellung im November mal ausprobiert, wie das mit den AI-Features auf einer 23 ai Free-Edition (Version 6) auf Windows klappt und bin schon beim Laden des Language Models über die Prozedur DBMS_VECTOR.LOAD_ONNX_MODEL gescheitert. 

Die Fehlermeldung war "ORA-40216: Feature nicht unterstützt" und im Oracle Forum (forums.oracle.com/ords/apexds/post/ora-40216-feature-not-supported-on-23ai-windows-version-9728) fand ich tatsächlich "This feature is supported for Linux only".

Zwei der Fragensteller im Forum haben direkt gefragt, ob und wann das auch unter Windows möglich wird. Martin Bach von Oracle empfahl damals unter anderem, auf das Windows-Subsystem für Linux (WSL) oder eine VM, zum Beispiel die Free VirtualBox Appliance umzusteigen, ließ die Frage aber unbeantwortet.

Deshalb wollte ich mal nachsehen, ob das Problem bei der neuesten Version der Free Edition, 23.26.1.0.0 (Stand 2.2.2026), auf Windows immer noch besteht. Vor der Neuinstallation der Free Edition muss man auf Windows immer besonders gründlich aufräumen, weil der Uninstaller nicht alles beseitigt

  • Oracle-Free-Ordner löschen
  • ggf. Dienste löschen

           sc delete OracleJobSchedulerFREE

           sc delete OracleOraDB23Home1TNSListener

           sc delete OracleServiceFREE

           sc delete OracleVssWriterFREE

  • Registry-Key [HKEY_LOCAL_MACHINE\SOFTWARE\Oracle] löschen
  • Verzeichnis C:\Program Files\Oracle\Inventory löschen und alle Oracle-Pfade aus den Umgebungsvariablen

Ein Neustart nach diesen Aktionen schadet auch nicht.

Wie im Installationguide beschrieben, muss man die "Authentifizierten Benutzer" daran hindern, den Ziel-Ordner der Free Edition, hier e:\oracle_free zu manipulieren, sonst klappt die Installation nicht. 

C:\> icacls e:\oracle_free /inheritancelevel:d

C:\> icacls e:\oracle_free /remove:g *s-1-5-11
 

Nach der Installation sollte man die TNSNAMES.ora um einen Eintrag für die PDB erweitern

FREEPDB1 =

  (DESCRIPTION =

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

   (CONNECT_DATA =

      (SERVER = DEDICATED)

     (SERVICE_NAME = FREEPDB1)

    )

  )

Dann kann man loslegen.

Das Beispiel stammt aus dem Artikel "Getting started with vectors in 23ai" (blogs.oracle.com/coretec/post/getting-started-with-vectors-in-23ai) von Ulrike Schwinn und Stephane Duprat. Ich habe nur die Tabellen- und Spaltennamen geändert.

Die Zitate findet man unter objectstorage.eu-frankfurt-1.oraclecloud.com/n/fro8fl9kuqli/b/AIVECTORS/o/dataset_200K.txt

Das Language Model unter objectstorage.eu-frankfurt-1.oraclecloud.com/n/fro8fl9kuqli/b/AIVECTORS/o/all-MiniLM-L6-v2.onnx

 

Beide Files werden unter c:\temp gespeichert

conn sys@freepdb1 as sysdba

GRANT CONNECT, RESOURCE TO scott IDENTIFIED BY tiger;

 

-- für das Erstellen der Modelle nötig

GRANT CREATE MINING MODEL TO scott;

 

CREATE BIGFILE TABLESPACE vektor_ts DATAFILE 'e:\oracle_free\oradata\free\freepdb1\vektor_ts.dbf'

      SIZE 256M AUTOEXTEND ON MAXSIZE 2G;

 

ALTER USER scott DEFAULT TABLESPACE vektor_ts;

ALTER USER scott QUOTA UNLIMITED ON vektor_ts;

 

CREATE OR REPLACE DIRECTORY extern as 'c:\temp';

 

GRANT READ, WRITE ON DIRECTORY extern to scott;

 

conn scott@freepdb1

 

CREATE TABLE IF NOT EXISTS stage (

   zitat VARCHAR2(4000))

ORGANIZATION EXTERNAL (

  DEFAULT DIRECTORY extern

 ACCESS PARAMETERS

   (RECORDS DELIMITED BY NEWLINE

    READSIZE 100000000)

  LOCATION ('zitate.txt'))

  PARALLEL

  REJECT LIMIT UNLIMITED;

 

-- nach Anpassen des Zeilenende-Formats auf Windows (CR + LF)

SELECT COUNT(*) FROM stage;

 

  COUNT(*)

----------

    198986

 

-- mal sehen

BEGIN

  DBMS_VECTOR.LOAD_ONNX_MODEL(

        directory => 'EXTERN',

        file_name => 'all-MiniLM-L6-v2.onnx',

       model_name => 'doc_model');

END;

/

BEGIN

*

FEHLER in Zeile 1:

ORA-40216: Feature nicht unterstützt

ORA-06512: in "SYS.DBMS_VECTOR", Zeile 2455

ORA-06512: in "SYS.DBMS_DATA_MINING", Zeile 5767

ORA-06512: in "SYS.DBMS_VECTOR", Zeile 2450

ORA-06512: in Zeile 2

Hilfe: docs.oracle.com/error-help/db/ora-40216/

Wäre auch zu schön gewesen. Für viele, die Oracle auf Windows betreiben, dürften die KI-Features nicht wirklich lebenswichtig sein, aber nachdem der Fokus der neuen Version so auf KI liegt, hätte ich gehofft, dass Oracle an dieser Stelle nachbessert oder einfach erklärt, warum es unter Windows Probleme gibt.

Es bleibt zu hoffen, dass das Problem beim Erscheinen der Oracle Database 26ai on Premise für Windows gelöst ist (wann auch immer das sein mag).

Elke Fritsch

© kalhh auf Pixabay