Lange haben wir darauf gewartet, am 19.10.2018 war es dann endlich soweit: Oracle veröffentlichte seine neue XE 18c.
Es sind folgende Limitierungen enthalten:
- Maximal 2GB Hauptspeicher adressierbar (SGA + PGA)
- Maximal 12GB Nutzdaten können gespeichert werden
- Maximal 2 CPUs werden verwendet
- Maximal 1 Instanz pro Server
Folgende Funktionen kann die XE 18c mehr als eine 11g XE:
- Pluggable Database
- Online Index Rebuild
- Online Table Redefinition
- Online Table Reorg
- Trial Recovery
- Flashback Database
- Result Cache
- In Memory Column Store
- In Memory Aggregation
- Column Level Encryption
- Oracle Database Vault
- FineGrain Auditing
- Virtual Private Database
- Oracle Partitioning
- Advanced Index Compression
- Deferred Segment Creation
- Bitmap Index
- Transportable Tablespace
- Materialized View Query Rewrite
- einige weitere (unbedeutende) Funktionen sind verfügbar
Das vollmundige Versprechen, dass XE alle Funktionen der Enterprise Edition abdeckt, wurde nicht eingehalten. Unter anderem fehlen die folgenden Funktionen:
- PDB Snapshot Carousel
- Oracle Shardening
- Oracle RAC
- Oracle Data Guard
- Block Level Media Recovery
- Parallel Backup und Recovery
- Tablespace Point In Time Recovery
- Flashback Transaction
- Flashback Transaction Query
- Online Datafile Move
- Oracle Streams
- Data Masking
- Oracle Diagnostic Pack
- Oracle Tuning Pack
- Oracle Real Application Testing
- Database Resource Manager
- SQL Plan Management
- SQL Tuning Sets
Es fehlen noch viele weitere (unbedeutende) Optionen, die hier weggelassen wurden.
Nun aber zur Installation: Die verläuft zum Glück sehr einfach:
Alle Befehle hier werden als ROOT Benutzer ausgeführt.
Oracle Home Verzeichnis anlegen:
mkdir -p /home/oracle
chown oracle:oinstall /home/oracle
Software herunterladen (z.B. für Oracle Linux):
yum -y localinstall oracle-database*18c*
1. Wir (ICH) möchte(n) keine Container DB, deswegen werfen wie sie raus:
cp /etc/init.d/oracle-xe-18c /etc/init.d/oracle-xe-18c-noncdb
vi /etc/init.d/oracle-xe-18c-noncdb
2. In der Datei /etc/init.d/oracle-xe-18c-noncdb
export CREATE_AS_CDB=true in false ändern
oder, wenn Sie noch mehr Ballast rauswerfen möchten, ersetzen Sie:
$SU -s /bin/bash $ORACLE_OWNER -c "(echo '$ORACLE_PASSWORD'; echo '$ORACLE_PASSWORD'; echo '$ORACLE_PASSW
ORD') | $DBCA -silent -createDatabase -gdbName $ORACLE_SID -templateName $TEMPLATE_NAME -characterSet $CHARSET
-createAsContainerDatabase $CREATE_AS_CDB -numberOfPDBs $NUMBER_OF_PDBS -pdbName $PDB_NAME -sid $ORACLE_SID -
emConfiguration DBEXPRESS -emExpressPort $EM_EXPRESS_PORT -J-Doracle.assistants.dbca.validate.DBCredentials=fa
lse -sampleSchema true $SQLSCRIPT_CONSTRUCT $DBFILE_CONSTRUCT $MEMORY_CONSTRUCT"
durch
$SU -s /bin/bash $ORACLE_OWNER -c "(echo '$ORACLE_PASSWORD'; echo '$ORACLE_PASSWORD'; echo '$ORACLE_PASSWORD') | $DBCA -silent -createDatabase -gdbName $ORACLE_SID -templateName $TEMPLATE_NAME -characterSet $CHARSET
-sid $ORACLE_SID -J-Doracle.assistants.dbca.validate.DBCredentials=false -sampleSchema false $SQLSCRIPT_CONSTRUCT $DBFILE_CONSTRUCT $MEMORY_CONSTRUCT"
3. Nun kann man die Installation starten:
/etc/init.d/oracle-xe-18c-noncdb configure
4. Dadurch, dass wir die Container DB rausgeworfen haben, ist die DB etwas beleidigt und quittiert das mit:
Fehler:
[WARNING] ORA-65090: Vorgang nur in einer Containerdatenbank zulässig
[WARNING] ORA-65090: Vorgang nur in einer Containerdatenbank zulässig
[WARNING] ORA-04080: Trigger 'SECURE_EMPLOYEES' ist nicht vorhanden
Weitere Einzelheiten finden Sie in der Logdatei "/opt/oracle/cfgtoollogs/dbca/XE/XE.log".
Database configuration failed. Check logs under '/opt/oracle/cfgtoollogs/dbca'.
Das hatte aber bei uns bisher keine nennenswerten Auswirkungen.
Wenn die Oracle XE 18c Datenbank beim Start des Linux Rechners auch gleich mitstarten soll, kann man das mit folgenden Befehlen einrichten:
systemctl daemon-reload
systemctl enable oracle-xe-18c
Seit Dezember sind nun auch die Instant Client Produkte via Repository downloadbar (ggf vorher yum aktualisieren)
cd
/etc/yum.repos.d
mv
public-yum-ol7.repo public-yum-ol7.repo.bak
wget http://yum.oracle.com/public-yum-ol7.repo
yum install
-y yum-utils
yum-config-manager --enable
ol7_oracle_instantclient
:
yum list oracle-instantclient*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.checkdomain.de
* epel: mirror.wiuwiu.de
* extras: mirror.ratiokontakt.de
* updates: centosmirror.netcup.net
ol7_UEKR5 | 1.2 kB 00:00
ol7_latest | 1.4 kB 00:00
ol7_oracle_instantclient | 1.2 kB 00:00
(1/2): ol7_oracle_instantclient/x86_64/updateinfo | 145 B 00:00
(2/2): ol7_oracle_instantclient/x86_64/primary | 2.2 kB 00:00
ol7_oracle_instantclient 7/7
Available Packages
oracle-instantclient18.3-basic.x86_64 18.3.0.0.0-2 ol7_oracle_instantclient
oracle-instantclient18.3-basiclite.x86_64 18.3.0.0.0-2 ol7_oracle_instantclient
oracle-instantclient18.3-devel.x86_64 18.3.0.0.0-2 ol7_oracle_instantclient
oracle-instantclient18.3-jdbc.x86_64 18.3.0.0.0-2 ol7_oracle_instantclient
oracle-instantclient18.3-odbc.x86_64 18.3.0.0.0-2 ol7_oracle_instantclient
oracle-instantclient18.3-sqlplus.x86_64 18.3.0.0.0-2 ol7_oracle_instantclient
oracle-instantclient18.3-tools.x86_64 18.3.0.0.0-2 ol7_oracle_instantclient
Bei unseren Speichertests konnten wir nie mehr als 2GB für SGA und PGA adressieren, sonst endete der Start mit:
ORA-56752: Oracle Database Express Edition (XE) memory parameter invalid or not specified
ORA-01078: Fehler beim Verarbeiten der Systemparameter
Witzigerweise konnten wir aber noch 500M Result Cache dazu allokieren :-)
In einem weiteren Post, räumen wir mal gewaltig in der Oracle XE 18c Datenbank auf und löschen einige (meiner Meinung nach) unnötge Benutzer raus.
Viel Spaß beim Eimsatz der Oracle XE. Bei Bedarf können wir Ihnen helfen eine Oracle XE bei sich einzurichten. Sprechen Sie uns gerne einfach an.