Skip to Main Content

 

Auswahl  

Oracle XE 18c Installation (Windows) 

Oracle
DBA
RDBMS 11.x
25.02.19 (MP)
05.07.23(MD)
Oracle XE, Oracle 18c, Installation

Passende Schulungen zum Thema

Nach 4 Monatiger Verspätung gegenüber der Linux Version war es am 20.2.2019 endlich so weit, das neue Oracle XE Release ist zum Download verfügbar.

Folgende Limitierungen weist die Version 18c XE auf:

  • Maximal 12 GB an Daten können in den Tablespaces gespeichert werden
  • Maximal 1 Instanz pro Server
  • Maximal 2GB an Hauptspeicher sind nutzbar
  • Maximal 2 Cores werden genutzt
  • 3 Pluggable Datenbanken (PDB´s) können verwendet werden:
    • CDB$ROOT
    • PDB$SEED
    • XEPDB1

Leider kann man bei der Erstinstallation nur die Pluggable Database Version installieren.

Es gibt aber einen Trick, das wieder rückgängig zu machen:

1. man installiert die Version laut den Default Vorgaben

a, Auspacken der Datei OracleXE184_Win64.zip in einen eigenen Ordner.
b, Starten der Datei setup.exe
c, Weiter klicken
d, Ich stimme zu ... klicken
e, Pfad ändern oder weiter klicken
f, Passwort für Benutzer SYS zweimal angeben
g, Installieren klicken
h, Bei der Rückfrage der Firewall die Kommunikation gestatten "Zugriff zulassen"
i, ca. 20 Min später .. "Fertigstellen"

Update vom 12.06.2019:
Wenn Sie schnell sind (sie haben ca. 2 Minuten Zeit) können Sie die Installation der CDB Datenbank mit einem Trick abbrechen lassen. Gehen Sie dazu wie folgt vor:
Bei Schritt (g) legt der Installer tausende Dateien ins Zielverzeichnis.
Gehen Sie (sobald vorhanden) in die Datei <ORACLE_HOME>\dbhomeXE\assistants\dbca\templates\XE_Datbase.dbc
Ersetzen Sie dort in Zeile 49 die Zeile

 <SourceDBName cdb="true">xe</SourceDBName>

durch

 <SourceDBName cdb="false">xe</SourceDBName>

der Installer bricht dann nach ca 3,3 Minuten ab und Sie können dann direkt eine NON-CDB Datenbank mittels dbca installieren. Sie sparen dadurch ca 20 Minuten ein!

Alternative: Silent Installation
Bei der Oracle Silent Installation können Sie alle relevanten Parameter bereits in einer Datei hinterlegen, die Installation kommt dann ohne weitere Interaktion aus.

Die Datei heisst XEInstall.rsp und wird im Zip File mitgeliefert.
Die Datei könnte dann z.B so editiert werden:

#c:\temp\OracleXE184_Win64\setup.exe /s /v"RSP_FILE=c:\temp\OracleXE184_Win64\XEInstall.rsp" /v"/L*v c:\temp\OracleXE184_Win64\setup.log" /v"/qn"
#Do not leave any parameter with empty value
#Install Directory location, username can be replaced with current user
INSTALLDIR=C:\oracle\product\18.0.0\
#Database password, All users are set with this password, Remove the value once installation is complete
PASSWORD=sys2019#
#If listener port is set to 0, available port will be allocated starting from 1521 automatically
LISTENER_PORT=0
#If EM express port is set to 0, available port will be used starting from 5550 automatically
EMEXPRESS_PORT=0
#Specify char set of the database
CHAR_SET=AL32UTF8

Der Aufruf lautet dann in einem DOS-Fenster (mit Administrationsrechten)

SET ORA_INSTALL_TMP=c:\temp\OracleXE184_Win64

%ORA_INSTALL_TMP%\setup.exe /s /v"RSP_FILE=%ORA_INSTALL_TMP%\XEInstall.rsp" /v"/L*v %ORA_INSTALL_TMP%\setup.log" /v"/qn"

Achtung Sie bekommen den Prompt sofort zurück und man denkt die Installation hat nicht geklappt. Jedoch können Sie im Logfile den Installations Fortschritt der Oracle XE 18c Datenbank schön beobachten:-)

In einer der letzten Zeilen im Logfile sieht man dann den Aufruf des DBCA :

INFO: cmd.exe /c "c:\oracle\product\18.0.0\dbhomeXE\bin\dbca.bat -silent -createDatabase -gdbName XE -templateName XE_Database.dbc -characterSet AL32UTF8 -createAsContainerDatabase true -numberOfPDBs 1 -pdbName XEPDB1 -sid XE -emConfiguration DBEXPRESS -emExpressPort 5500 -sampleSchema true -initParams sga_target=1536M,pga_aggregate_target=512M -customScripts c:\oracle\product\18.0.0\dbhomeXE\assistants\dbca\postdb_creation.sql -oui_internal -maskPasswords FALSE"

Die Vorlagen-Datei XE_DB_Muso.dbc sieht dabei so aus:

<?xml version = '1.0'?>
<DatabaseTemplate name="XE DB Muniqsoft 2020" description=" " version="18.0.0.0.0">
   <CommonAttributes>
      <option name="OMS" value="true" includeInPDBs="true"/>
      <option name="JSERVER" value="true" includeInPDBs="true"/>
      <option name="SPATIAL" value="false" includeInPDBs="true"/>
      <option name="IMEDIA" value="false" includeInPDBs="true"/>
      <option name="ORACLE_TEXT" value="true" includeInPDBs="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="SAMPLE_SCHEMA" value="false" includeInPDBs="false"/>
      <option name="CWMLITE" value="true" includeInPDBs="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="APEX" value="false" includeInPDBs="false"/>
      <option name="DV" value="true" includeInPDBs="true"/>
      <option name="NET_EXTENSIONS" value="true" includeInPDBs="true"/>
   </CommonAttributes>
   <Variables/>
   <CustomScripts Execute="false"/>
   <InitParamAttributes>
      <InitParams>
         <initParam name="db_name" value="xe"/>
         <initParam name="dispatchers" value="(PROTOCOL=TCP) (SERVICE={SID}XDB)"/>
         <initParam name="audit_file_dest" value="{ORACLE_BASE}\admin\{DB_UNIQUE_NAME}\adump"/>
         <initParam name="compatible" value="18.0.0"/>
         <initParam name="remote_login_passwordfile" value="EXCLUSIVE"/>
         <initParam name="undo_tablespace" value="UNDOTBS1"/>
         <initParam name="control_files" value="(&quot;{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\control01.ctl&quot;, &quot;{ORACLE_BASE}\fast_recovery_area\{DB_UNIQUE_NAME}\control02.ctl&quot;)"/>
         <initParam name="diagnostic_dest" value="{ORACLE_BASE}"/>
         <initParam name="audit_trail" value="db"/>
         <initParam name="db_block_size" value="8" unit="KB"/>
         <initParam name="open_cursors" value="600"/>
      </InitParams>
      <MiscParams>
         <databaseType>MULTIPURPOSE</databaseType>
         <maxUserConn>20</maxUserConn>
         <percentageMemTOSGA>40</percentageMemTOSGA>
         <customSGA>true</customSGA>
         <dataVaultEnabled>false</dataVaultEnabled>
         <archiveLogMode>true</archiveLogMode>
         <initParamFileName>{ORACLE_BASE}\admin\{DB_UNIQUE_NAME}\pfile\init.ora</initParamFileName>
      </MiscParams>
      <SPfile useSPFile="true">{ORACLE_HOME}\database\spfile{SID}.ora</SPfile>
   </InitParamAttributes>
   <StorageAttributes>
      <DataFiles>
         <Location>{ORACLE_HOME}\assistants\dbca\templates\XE_Seed_Database.dfb</Location>
         <SourceDBName cdb="false">xe</SourceDBName>
         <Name id="3" Tablespace="SYSAUX" Contents="PERMANENT" Size="400" autoextend="true" blocksize="8192" con_id="1">{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\XE_SYSAUX01.DBF</Name>
         <Name id="1" Tablespace="SYSTEM" Contents="PERMANENT" Size="820" autoextend="true" blocksize="8192" con_id="1">{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\XE_SYSTEM01.DBF</Name>
         <Name id="4" Tablespace="UNDOTBS1" Contents="UNDO" Size="25" autoextend="true" blocksize="8192" con_id="1">{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\XE_UNDOTBS01.DBF</Name>
         <Name id="7" Tablespace="USERS" Contents="PERMANENT" Size="5" autoextend="true" blocksize="8192" con_id="1">{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\XE_USERS01.DBF</Name>
      </DataFiles>
      <TempFiles>
         <Name id="1" Tablespace="TEMP" Contents="TEMPORARY" Size="20" con_id="1">{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\TEMP01.DBF</Name>
      </TempFiles>
      <ControlfileAttributes id="Controlfile">
         <maxDatafiles>100</maxDatafiles>
         <maxLogfiles>16</maxLogfiles>
         <maxLogMembers>3</maxLogMembers>
         <maxLogHistory>1</maxLogHistory>
         <maxInstances>8</maxInstances>
         <image name="control01.ctl" filepath="{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\"/>
         <image name="control02.ctl" filepath="{ORACLE_BASE}\fast_recovery_area\{DB_UNIQUE_NAME}\"/>
      </ControlfileAttributes>
      <RedoLogGroupAttributes id="1">
         <reuse>false</reuse>
         <fileSize unit="MB">256</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="xe_redo01.log" filepath="{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="2">
         <reuse>false</reuse>
         <fileSize unit="MB">256</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="xe_redo02.log" filepath="{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="3">
         <reuse>false</reuse>
         <fileSize unit="MB">256</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="xe_redo03.log" filepath="{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\"/>
      </RedoLogGroupAttributes>
   </StorageAttributes>
</DatabaseTemplate>

 

2. nun startet man den DBCA als Administrator! und löscht die installierte Datenbank Version XE
a, "Datenbank löschen"
b, Kennwort für SYS eintragen und "Weiter"
c, "Weiter"
d, "Fertig stellen"
e, "Ja"
3. Danach kann man die XE Version erneut installieren (als NON CDB)
Update vom 12.6.2019. Seit neuestem, wird nur noch ein CDB Template mit ausgeliefert. Wir konnten durch kopieren des Templates in den Template Ordner weiterhin
eine NON CDB Datenbank erstellen.smiley
a, "Datenbank erstellen"
b, Globaler Datenbankname: XE
[ ] Als Containerdatenbank erstellen ABWÄHLEN.
Beachten Sie aber, dass die Speichergrößen von PGA und SGA 2 GB nicht übersteigen dürfen. Der Installer prüft das nicht und fällt erst bei 70% der Installation auf die Nase und man kann von vorne beginnen. Deswegen nehmen wir die "Erweiterte Konfiguration" "Weiter"
c, Weiter
d, Globaler Datenbankname: XE.<ihre-Domain>
SID: XE
e, Weiter
f, Fast Recovery Area Größe nach eigenen Wünschen anpassen (Min 8GB)
[x] Archivierung aktivieren
g, Listenerauswahl Weiter
h, Database Vault und Label Security nicht anwählen => Weiter
i, SGA 1500MB, PGA 500MB, Prozesse auf 200 setzen
j, EM "Weiter"
k, Passwörter eintragen und Weiter
l, Datenbank erstellen und/oder ein Skript zur Erstellung erzeugen. "Fertigstellen"

Hier wäre unsere Vorlage, das ganze ein Template einzuspielen:

<?xml version = '1.0'?>
<DatabaseTemplate name="XE 18C NONCDB" description="XE 18c ohne Container Datenbank" version="18.0.0.0.0">
   <CommonAttributes>
      <option name="OMS" value="true" includeInPDBs="true"/>
      <option name="JSERVER" value="true" includeInPDBs="true"/>
      <option name="SPATIAL" value="true" includeInPDBs="true"/>
      <option name="IMEDIA" value="true" includeInPDBs="true"/>
      <option name="ORACLE_TEXT" value="true" includeInPDBs="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="SAMPLE_SCHEMA" value="false" includeInPDBs="false"/>
      <option name="CWMLITE" value="true" includeInPDBs="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="APEX" value="false" includeInPDBs="false"/>
      <option name="DV" value="true" includeInPDBs="true"/>
      <option name="NET_EXTENSIONS" value="true" includeInPDBs="true"/>
   </CommonAttributes>
   <Variables/>
   <CustomScripts Execute="false"/>
   <InitParamAttributes>
      <InitParams>
         <initParam name="db_name" value="xe"/>
         <initParam name="db_domain" value="ad.muniqsoft-training.de"/>
         <initParam name="dispatchers" value="(PROTOCOL=TCP) (SERVICE=xeXDB)"/>
         <initParam name="audit_file_dest" value="c:\oracle\product\18.0.0\admin\xe\adump"/>
         <initParam name="compatible" value="18.0.0"/>
         <initParam name="remote_login_passwordfile" value="EXCLUSIVE"/>
         <initParam name="sga_target" value="1500" unit="MB"/>
         <initParam name="processes" value="640"/>
         <initParam name="local_listener" value="LISTENER_XE"/>
         <initParam name="undo_tablespace" value="UNDOTBS1"/>
         <initParam name="control_files" value="(&quot;c:\oracle\product\18.0.0\oradata\XE\control01.ctl&quot;, &quot;c:\oracle\product\18.0.0\fast_recovery_area\XE\control02.ctl&quot;)"/>
         <initParam name="diagnostic_dest" value="c:\oracle\product\18.0.0"/>
         <initParam name="db_recovery_file_dest" value="c:\oracle\product\18.0.0\fast_recovery_area\XE"/>
         <initParam name="audit_trail" value="db"/>
         <initParam name="log_archive_format" value="%t_%s_%r.dbf"/>
         <initParam name="nls_territory" value="GERMANY"/>
         <initParam name="db_block_size" value="8192"/>
         <initParam name="open_cursors" value="300"/>
         <initParam name="nls_language" value="GERMAN"/>
         <initParam name="db_recovery_file_dest_size" value="8576" unit="MB"/>
         <initParam name="pga_aggregate_target" value="500" unit="MB"/>
      </InitParams>
      <MiscParams>
         <databaseType>MULTIPURPOSE</databaseType>
         <maxUserConn>20</maxUserConn>
         <percentageMemTOSGA>40</percentageMemTOSGA>
         <customSGA>false</customSGA>
         <dataVaultEnabled>false</dataVaultEnabled>
         <characterSet>AL32UTF8</characterSet>
         <nationalCharacterSet>AL16UTF16</nationalCharacterSet>
         <archiveLogMode>true</archiveLogMode>
         <initParamFileName>{ORACLE_BASE}\admin\{DB_UNIQUE_NAME}\pfile\init.ora</initParamFileName>
      </MiscParams>
      <SPfile useSPFile="true">{ORACLE_HOME}\database\spfile{SID}.ora</SPfile>
   </InitParamAttributes>
   <StorageAttributes>
      <DataFiles>
         <Location>{ORACLE_HOME}\assistants\dbca\templates\XE_Seed_Database.dfb</Location>
         <SourceDBName cdb="true">xe</SourceDBName>
         <Name id="3" Tablespace="SYSAUX" Contents="PERMANENT" Size="400" autoextend="true" blocksize="8192" con_id="1">c:\oracle\product\18.0.0\oradata\XE\SYSAUX01.DBF</Name>
         <Name id="1" Tablespace="SYSTEM" Contents="PERMANENT" Size="820" autoextend="true" blocksize="8192" con_id="1">c:\oracle\product\18.0.0\oradata\XE\SYSTEM01.DBF</Name>
         <Name id="4" Tablespace="UNDOTBS1" Contents="UNDO" Size="25" autoextend="true" blocksize="8192" con_id="1">c:\oracle\product\18.0.0\oradata\XE\UNDOTBS01.DBF</Name>
         <Name id="7" Tablespace="USERS" Contents="PERMANENT" Size="5" autoextend="true" blocksize="8192" con_id="1">c:\oracle\product\18.0.0\oradata\XE\USERS01.DBF</Name>
      </DataFiles>
      <TempFiles>
         <Name id="1" Tablespace="TEMP" Contents="TEMPORARY" Size="20" con_id="1">c:\oracle\product\18.0.0\oradata\XE\TEMP01.DBF</Name>
      </TempFiles>
      <ControlfileAttributes id="Controlfile">
         <maxDatafiles>100</maxDatafiles>
         <maxLogfiles>16</maxLogfiles>
         <maxLogMembers>3</maxLogMembers>
         <maxLogHistory>1</maxLogHistory>
         <maxInstances>8</maxInstances>
         <image name="control01.ctl" filepath="c:\oracle\product\18.0.0\oradata\XE\"/>
         <image name="control02.ctl" filepath="c:\oracle\product\18.0.0\fast_recovery_area\XE\"/>
      </ControlfileAttributes>
      <RedoLogGroupAttributes id="1">
         <reuse>false</reuse>
         <fileSize unit="KB">204800</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo01.log" filepath="c:\oracle\product\18.0.0\oradata\XE\"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="2">
         <reuse>false</reuse>
         <fileSize unit="KB">204800</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo02.log" filepath="c:\oracle\product\18.0.0\oradata\XE\"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="3">
         <reuse>false</reuse>
         <fileSize unit="KB">204800</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo03.log" filepath="c:\oracle\product\18.0.0\oradata\XE\"/>
      </RedoLogGroupAttributes>
   </StorageAttributes>
</DatabaseTemplate>

 

Geschafft !

Jetzt schauen wir mal, welche Version installiert wurde :-) ?

select comp_name,version_full,status from dba_registry;

COMP_NAMEVERSION_FULLSTATUS
Oracle Database Catalog Views18.4.0.0.0VALID
Oracle Database Packages and Types18.4.0.0.0VALID
Oracle Real Application Clusters18.4.0.0.0OPTION OFF
JServer JAVA Virtual Machine18.4.0.0.0