Oracle 18 XE - CarajanDB… über mich •Oracle Spezialist seit 1992 •1992: Presales bei Oracle...

Post on 25-Jun-2020

4 views 0 download

Transcript of Oracle 18 XE - CarajanDB… über mich •Oracle Spezialist seit 1992 •1992: Presales bei Oracle...

Oracle 18 XE

Johannes Ahrends

… über mich

• Oracle Spezialist seit 1992

• 1992: Presales bei Oracle in Düsseldorf• 1999: Projektleiter bei Herrmann & Lenz Services GmbH• 2005: Technischer Direktor ADM Presales bei Quest Software GmbH• 2011: Geschäftsführer CarajanDB GmbH

• 2011 → Ernennung zum Oracle ACE

• Autor der Bücher:

• Oracle9i für den DBA, Oracle10g für den DBA, Oracle 11g Release 2 für den DBA

• DOAG Themenverantwortlicher Datenbankadministration, Standard Edition

• Hobbies:

• Drachen steigen lassen (Kiting) draußen wie drinnen (Indoorkiting)• Motorradfahren (nur draußen)

www.carajandb.com 2

Funktionen und Optionen

Limitierungen

• Kostenlos

• 2 Cores

• Eine Installation pro Umgebung (z.B. VM)

• 12 GB Userdata

• 2 GB RAM

• 3 PDBs

• Datenmigration über Data Pump

• Ausnahme: nach Oracle EE über PDB Unplug / Plug

• Migration nach Oracle SE2 ist nicht supported!

www.carajandb.com 4

Features und Optionen

www.carajandb.com

• Oracle® Database Express Edition Licensing Information User Manual 18c E89902-01 October 2018

Feature Enhalten (Ja / Nein)

Oracle Multitenant - # of PDBs Ja (maximum 3 PDBs)

PDB Snapshot Carousel Nein

Refreshable PDB Ja

Refreshable PDB Switchover Nein

Oracle Sharding Nein

Oracle RAC Nein

Oracle Data Guard Nein

Online Index Rebuild Ja

Online Table Reorganization Ja

Online Datafile Move Nein

5

Features und Optionen (2)

Feature Enhalten (Ja / Nein)

Block Level Media Recovery Nein

Automatic Block Repair Nein

Flashback Table Ja

Flashback Database Ja

Flashback Transaction / Transaction Query Nein

Optimization for Flashback Data Archive Ja

Cross Platform Backup and Recovery Ja

Recovering Tables and Table Partitions from RMAN Backups Nein

Gateways Nein

Tuning / Diagnostic / Data Masking Pack Nein

Real Appliation Testing Nein

Database Resource Manager Nein

www.carajandb.com 6

Features und Optionen (3)

Feature Enhalten (Ja / Nein)

SQL Plan Management Nein

SQL Tuning Sets Nein

Oracle Connection Manager Nein

Client Side / Query / PL/SQL Function Result Cache Ja

Adaptive Execution Plans Ja

In-Memory Column Store Ja

In-Memory Aggregation Ja

Attribute Clustering Ja

Automatic Workload Management Nein

Column-Level Encryption Ja

Tablespace Encryption Ja (aber nicht Online)

Advanced Security Ja

www.carajandb.com 7

Features und Optionen (4)

Feature Enhalten (Ja / Nein)

Database Vault Ja

Label Security Ja

Enterprise User Security Nein

Centrally Managed Users Ja

Fine Grained Auditing Ja

Real Application Security Ja

Data Redaction Ja

Virtual Private Database Ja

Spatial und Graph Ja

Partitioning Ja

On-Line Analytical Processing (OLAP) Nein

Oracle Advanced Analytics Ja

www.carajandb.com 8

Features und Optionen (5)

Feature Enhalten (Ja / Nein)

Advanced Compression Ja

Advanced Index Compression Ja

Prefix Compression Ja

Hybrid Columnar Compression Nein

Heat Map Nein

Automatic Data Optimization Nein

Deferred Segment Creation Ja

Bitmapped Index / Join Index Ja

Parallel Query /DML Nein

Transportable Tablespaces (incl. Cross-Platform) Ja

Ull Transportable Export / Import Ja

Summary Management (Materialized Views) Ja

www.carajandb.com 9

Multitenant Lizenzierung

• SE2: Standard Edition Two

• EE: Enterprise Edition

• EE-ES: EE on Engineered Systems

• DBCS: Database Cloud Service

• EE-HP: DBCS EE High Performance

• EEE-EP: DBCS EE Extreme Performance

• ExaCS: Exadata Cloud Service

www.carajandb.com 10

Quelle: Database Licensing Information User Manual 18c E87202-07 October 2018

Installation

Download

• https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html

www.carajandb.com 12

Download

• Linux nur als rpm Paketoracle-database-xe-18c-1.0-1.x86_64.rpm

• Muss als Root-User installiert werden

• Internetanbindung erforderlich

• zusätzliches Preinstall Paket notwendig • oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm

• ORACLE_BASE=/opt/oracle

• ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE

www.carajandb.com 13

Installation

• Oracle Linux

www.carajandb.com 14

# yum localinstall oracle-database-xe-18c-1.0-1.x86_64.rpm

Examining oracle-database-xe-18c-1.0-1.x86_64.rpm: oracle-database-xe-18c-1.0-1.x86_64

Marking oracle-database-xe-18c-1.0-1.x86_64.rpm to be installed

Resolving Dependencies

--> Running transaction check

---> Package oracle-database-xe-18c.x86_64 0:1.0-1 will be installed

Installed:

oracle-database-xe-18c.x86_64 0:1.0-1

Dependency Installed:

bc.x86_64 0:1.06.95-13.el7

oracle-database-preinstall-18c.x86_64 0:1.0-1.el7

Complete!

Anpassungen

• Falls OS User „oracle“ schon existiert, wird dieser genommen

• Ansonsten angelegt mit User-ID 54321

• Falls OS Gruppe „dba“, „oinstall“ etc schon existieren, werden diese genommen• oinstall:54321

• dba:54322

• oper:54323

• backupdba:54324

• dgdba:54325

• kmdba:54326

• racdba:54330

www.carajandb.com 15

Datenbank Konfiguration

www.carajandb.com 16

# cat /etc/sysconfig/oracle-xe-18c.conf

#This is a configuration file to setup the Oracle Database.

#It is used when running '/etc/init.d/oracle-xe-18c configure'.

# LISTENER PORT used Database listener, Leave empty for automatic port assignment

LISTENER_PORT=1521

# EM_EXPRESS_PORT Oracle EM Express URL port

EM_EXPRESS_PORT=5500

# Character set of the database

CHARSET=AL32UTF8

# Database file directory

# If not specified, database files are stored under Oracle base/oradata

DBFILE_DEST=/u02/oradata

# SKIP Validations, memory, space

SKIP_VALIDATIONS=false

Ausführung 1

www.carajandb.com 17

[root@clapton ~]# /etc/init.d/oracle-xe-18c configure

Oracle Net Listener configured.

Specify a password to be used for database accounts. Oracle recommends that the

password entered should be at least 8 characters in length, contain at least 1

uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same

password will be used for SYS, SYSTEM and PDBADMIN accounts:

Confirm the password:

Configuring Oracle Listener.

Listener configuration succeeded.

Configuring Oracle Database XE.

[FATAL] [DBT-06103] The port (5,501) is already in use.

ACTION: Specify a free port.

Database configuration failed. Check logs under '/opt/oracle/cfgtoollogs/dbca'.

Fehlerursache

• Eintrag in /etc/hosts fehlt

www.carajandb.com 18

[root@clapton ~]# cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.99.101 clapton clapton.carajandb.local

Ausführung 2

www.carajandb.com 19

[root@clapton ~]# /etc/init.d/oracle-xe-18c configure

Oracle Net Listener configured.

100% complete

Database creation complete. For details check the logfiles at:

/opt/oracle/cfgtoollogs/dbca/XE.

Database Information:

Global Database Name:XE

System Identifier(SID):XE

Look at the log file "/opt/oracle/cfgtoollogs/dbca/XE/XE.log" for further details.

Connect to Oracle Database using one of the connect strings:

Pluggable database: clapton.carajandb.local/XEPDB1

Multitenant container database: clapton.carajandb.local

Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database

XE

Automatischer Start

• Oracle Linux 6

• Oracle Linux 7

www.carajandb.com 20

[root@cohen ~]# systemctl daemon-reload

[root@cohen ~]# systemctl enable oracle-xe-18c

[root@cohen ~]# /sbin/chkconfig oracle-xe-18c on

[root@cohen ~]# /sbin/service oracle-xe-18c start

Oracle User

• Oracle User wird automatisch angelegt

• HOME von Oracle fehlt!

• oraenv, coranv, dbhome gehören „root“

www.carajandb.com 21

# mkdir –p /home/oracle

# chown oracle:oinstall /home/oracle

# cd /usr/local/bin

# chown oracle:oinstall *

Wichtige / nützliche Packages

• wget

• rlwrap

www.carajandb.com 22

# yum -y install wget

# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# rpm -Uvh epel-release-latest-7.noarch.rpm

# yum -y install rlwrap

Firewall und SE-Linux

• Firewall ausschalten

• SE-Linux ausschalten

• sudo root

www.carajandb.com 23

# systemctl stop firewalld

# systemctl disable firewalld

# cp -f /etc/selinux/config /etc/selinux/config.org

# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

# sed -i '$i oracle ALL=(ALL) NOPASSWD: ALL' /etc/sudoers

Login

• Profile

• oraenv

www.carajandb.com 24

cat $HOME/.bash_profile

ORACLE_SID=XE

ORAENV_ASK=NO

. oraenv

unset ORAENV_ASK

tail -12 /usr/local/bin/oraenv

#

if [ "$USER" != "root" ]; then

PS1="${USER}@`hostname -s`[${ORACLE_SID}]% "

else

PS1="${USER}@`hostname -s`[${ORACLE_SID}]# "

fi

export PS1

alias logdir='cd $ORACLE_BASE/`cd $ORACLE_BASE;adrci exec="show homes"|grep $ORACLE_SID`/trace'

alias sqlplus='rlwrap sqlplus'

alias rman='rlwrap rman'

Multitenant Database

• Demo PDB löschen

www.carajandb.com 25

SQL> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED

---------- ------------------------------ ---------- ----------

2 PDB$SEED READ ONLY NO

3 XEPDB1 READ WRITE NO

SQL> DROP PLUGGABLE DATABASE xepdb1 INCLUDING DATAFILES;

Für Oracle XE gibt es keine Patches!

Oracle Java Virtual Machine

• OJVM in der Datenbank

• Oracle Security Alert for CVE-2018-3110

www.carajandb.com 27

Oracle Java Virtual Machine

• OJVM in der Datenbank

• Oracle Security Alert for CVE-2018-3259

www.carajandb.com 28

Anpassung Optionen

• Löschen kritischer Komponenten:

• Oracle Java Virtual Machine

• Multimedia (Abhängigkeit)

• XMLDB

www.carajandb.com 29

cd $ORACLE_HOME/rdbms/admin

$ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -b catnojav -d $ORACLE_HOME/rdbms/admin catnojav.sql

$ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -b rmxml -d $ORACLE_HOME/xdk/admin rmxml.sql

$ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -b rmjvm -d $ORACLE_HOME/javavm/install rmjvm.sql

$ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -b rmctx -d $ORACLE_HOME/ctx/admin catnoctx.sql

$ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -b imrem -d $ORACLE_HOME/ord/im/admin imremdo.sql

$ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -e -b utlrp -d '''.''' utlrp.sql

Quellen: https://mikedietrichde.com/2017/08/07/javavm-xml-clean-oracle-database-11-2-12-2https://mikedietrichde.com/2017/08/01/oracle-multimedia-ordim-clean-oracle-database-11-2-12-2

Kontrolle

www.carajandb.com 30

SELECT con_id, comp_name, version, status, schema

FROM cdb_registry

ORDER BY con_id, comp_name;

CON_ID COMP_NAME VERSION STATUS SCHEMA

------ ---------------------------------------- ------------ ----------- ----------

1 JServer JAVA Virtual Machine 18.0.0.0.0 REMOVED SYS

1 OLAP Analytic Workspace 18.0.0.0.0 VALID SYS

1 Oracle Database Catalog Views 18.0.0.0.0 VALID SYS

1 Oracle Database Java Packages 18.0.0.0.0 REMOVED SYS

1 Oracle Database Packages and Types 18.0.0.0.0 VALID SYS

1 Oracle Database Vault 18.0.0.0.0 VALID DVSYS

1 Oracle Label Security 18.0.0.0.0 VALID LBACSYS

1 Oracle OLAP API 18.0.0.0.0 VALID OLAPSYS

1 Oracle Real Application Clusters 18.0.0.0.0 OPTION OFF SYS

1 Oracle Text 18.0.0.0.0 REMOVED CTXSYS

1 Oracle Workspace Manager 18.0.0.0.0 VALID WMSYS

1 Oracle XDK 18.0.0.0.0 REMOVED SYS

1 Oracle XML Database 18.0.0.0.0 VALID XDB

1 Spatial 18.0.0.0.0 VALID MDSYS

Anpassung Optionen

• Löschen Oracle Registry-Einträge

www.carajandb.com 31

cat > $HOME/xe/reg.sql <<EOF

delete from registry$ where status='99' and cid in ('XML','JAVAVM','CATJAVA','MULTIMEDIA','CONTEXT');

commit;

EOF

$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -b reg -d $HOME/xe reg.sql

CON_ID COMP_NAME VERSION STATUS SCHEMA

------ ---------------------------------------- ------------ ----------- ----------

1 OLAP Analytic Workspace 18.0.0.0.0 VALID SYS

1 Oracle Database Catalog Views 18.0.0.0.0 VALID SYS

1 Oracle Database Packages and Types 18.0.0.0.0 VALID SYS

1 Oracle Database Vault 18.0.0.0.0 VALID DVSYS

1 Oracle Label Security 18.0.0.0.0 VALID LBACSYS

1 Oracle OLAP API 18.0.0.0.0 VALID OLAPSYS

1 Oracle Real Application Clusters 18.0.0.0.0 OPTION OFF SYS

1 Oracle Text 18.0.0.0.0 VALID CTXSYS

1 Oracle Workspace Manager 18.0.0.0.0 VALID WMSYS

1 Oracle XML Database 18.0.0.0.0 VALID XDB

1 Spatial 18.0.0.0.0 VALID MDSYS

Context Leftovers

www.carajandb.com 32

oracle@cohen[XE]% cat ctx_leftovers.sql

DROP PROCEDURE sys.validate_context;

DROP PACKAGE xdb.dbms_xdbt;

DROP PROCEDURE xdb.xdb_datastore_proc;

DROP PUBLIC SYNONYM dbms_xdbt;

$ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -b rmctx -d $ORACLE_HOME/ctx/admin catnoctx.sql

$ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -e -b ctx_leftovers –d $HOME/xe ctx_leftovers.sql

Deinstallation

• Datenbank:

• Software

www.carajandb.com 33

oracle@cohen[XE]% sudo su -

# /etc/init.d/oracle-xe-18c delete

oracle@cohen[XE]% sudo su -

# yum remove oracle-database-xe-18c

ORA-12954

www.carajandb.com 34

ORA-12954: The request exceeds the maximum allowed database size of 12 GB.

SELECT s.con_id, s.owner, sum(s.bytes)/1024/1024 MByte

FROM cdb_segments s, cdb_users u

WHERE s.owner = u.username

AND s.con_id = u.con_id

AND u.oracle_maintained != 'Y'

GROUP BY s.con_id,s.owner

ORDER BY 1,2;

CON_ID OWNER MBYTE

---------- ---------- ----------

3 BASIS .9375

3 DEMO 6994.8125

4 BASIS .9375

4 DEMO 4898.8125

→ 11895.5 MB

Spotlight

• Root-Container

• User: c##spot

• CONTAINER_DATA=ALL

www.carajandb.com 35

Multitenant Database

Multitenant Database

• Multitenant Architektur

• Alternative Architektur ab Version 12.1.1 für alle Editionen

• Default bei Oracle 18 XE

• Multitenant Option

• Kostenpflichtig für die Enterprise Edition

• Bis zu 253 PDBs pro CDB (Exadata ab 12.2 4096 PDBs)

• Bis zu 3 PDBs in Oracle 18 XE

37

The non-CDB architecture was deprecated in Oracle Database 12c. It can be desupported and unavailable in a release after Oracle Database 12c Release 2.Oracle recommends use of the CDB architecture.

www.carajandb.com

CDB

Multitenant Database 18

38

…SMON PMON MMONRECO MMNL

Buffer Cache LogbufferShared Pool

… SGA

ParameterDatei

CKPT

Cntrlfiles

DBWn

. . .

SYSTEM SYSAUX TEMPUNDO

PDB$SEED

TEMP

SYSAUX

SYSTEMRedolog-Dateien

LGWR

PDB2TEMPUNDOAPPL2

SYSAUXSYSTEM

PDB3TEMPUNDOAPPL2

SYSAUXSYSTEM

PDB4TEMPUNDOAPPL2

SYSAUXSYSTEM

www.carajandb.com

XE und Multitenant

• Cloning

• 1:1 Kopie einer existierenden PDB in die gleiche oder eine andere CDB

• Proxy

• Zugriff auf eine entfernte PDB (z.B. in der Cloud) aus einer lokalen PDB

• Refreshable PDB

• Automatischer oder manueller Refresh einer PDB (Standby)

www.carajandb.com 39

Refreshable PDB

• Automatische Synchronisation zwischen Quell- und Ziel-PDB

• Gedacht für Test und Entwicklung

• Refreshmodes:

• None

• Manual

• Every n Minutes

• Ziel-PDB bleibt geschlossen

www.carajandb.com 40

Toad und Pluggable Databases

www.carajandb.com 41

Memory

SGA_TARGET – Versuch 1

• MEMORY = sga + pga

www.carajandb.com 43

SQL> show parameter sga_target

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

sga_target big integer 1536M

SQL> show parameter pga

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

pga_aggregate_limit big integer 2G

pga_aggregate_target big integer 512M

SGA_TARGET – Versuch 1

www.carajandb.com 44

SQL> ALTER SYSTEM SET sga_target=3000M SCOPE=spfile;

System altered.

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORA-56752: Oracle Database Express Edition (XE) memory parameter invalid or not

specified

ORA-01078: failure in processing system parameters

Lösung des Fehlers ORA-01078

www.carajandb.com 45

SQL> create pfile='/tmp/initx.ora' FROM spfile;

File created.

SQL> !vi /tmp/initx.ora

SQL> startup nomount pfile='/tmp/initx.ora';

ORACLE instance started.

SQL> create spfile from pfile='/tmp/initx.ora';

File created.

SQL> shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup

SGA_TARGET – Versuch 2

www.carajandb.com 46

SQL> ALTER SYSTEM SET pga_aggregate_target=100M;

System altered.

SQL> ALTER SYSTEM SET sga_target=1900M SCOPE=spfile;

System altered.

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 1996485680 bytes

Fixed Size 8897584 bytes

Variable Size 520093696 bytes

Database Buffers 1459617792 bytes

Redo Buffers 7876608 bytes

Database mounted.

Database opened.

In-Memory

Spalten gegen Zeilenorientierung

• Optimierung für Transaktionen und Query Performance

Zeile• Transaktionen sind schneller bei Zeilenverarbeitung

• Schnell bei wenigen Zeilen und vielen Spalten• Beispiel: Einfügen oder Abfragen von Aufträgen

Spalte

AUFTRAG

AUFTRAEGE

R

E

G

I

O

N

• Analysen sind schneller bei Spaltenorientierung• Schnell bei wenigen Spalten und vielen Zeilen• Beispiel: Report für die Auftragssumme pro Region

AUFTRAEGE

www.carajandb.com 48

In-Memory Datenbank für beide Formate

• BEIDE Formate (Zeile und Spalte) für die selbe Tabelle

• Gleichzeitig aktiv und transaktionskonsistent

• Analysen und Reports benutzen das NEUE Spaltenformat

• OLTP benutzt das Zeilenformat

Spalten

Format

Memory

Zeilen

Format

Memory

AnalysenOLTPAuftraege Auftraege

www.carajandb.com 49

Oracle In-Memory Spalten Technologie

• Reines In-Memory Format mit Nologging

• Fast kein Overhead bei Änderungen

• Memoryoptimierte Komprimierung (2x bis 10x)

• Daten werden bei Startup oder erstenZugriff geladen

• Bei In-Memory wird ca. 90% des Speichers für das Zeilenformat benutzt

Memory

Reine Spaltenorientierung

www.carajandb.com 50

Extrem schnelle Verarbeitung

• Jede CPU scant lokale In-memory Spalten

• Scans verwenden SIMD VectorInstruktionen

• Milliarden Spalten pro Sekunde pro CPU Core

SIMD

Compare all

values in 1

cycle

Vergleich

der Werte

in einer

Instruktion

Laden

von Mill.

Regions-

werten Vecto

r R

eg

iste

r

In-Memory Column Store

RegionAuftraege

“NRW”

>100X Schneller

CPU

www.carajandb.com 51

Anwendung

• Größe des Speichers definieren (spfile)

• Bereich wird von der SGA abgezogen

• Kein Cache sondern statisch

• Instanz muss neu gestartet werden

• Tabelle, Partition oder Spalte(n) für In-Memory Benutzung definieren

• Weitere Optionen für das Laden, Komprimieren, Ein- oder Ausschließen

• Ev. Indizes löschen, die früher für Analysen verwendet wurden

SQL> ALTER SYSTEM SET inmemory_size= xGB SCOPE=spfile;

SQL> ALTER TABLE <tabelle> COLUMN (<spalte>,<spalte>) … INMEMORY;

www.carajandb.com 52

Starten der Datenbank

• Ändern der Datenbank Parameter

• StartupORACLE instance started.

Total System Global Area 1996485680 bytes

Fixed Size 8897584 bytes

Variable Size 469762048 bytes

Database Buffers 436207616 bytes

Redo Buffers 7876608 bytes

In-Memory Area 1073741824 bytes

Database mounted.

Database opened.

SQL> ALTER SYSTEM SET inmemory_size=1G scope=spfile;

www.carajandb.com 53

Ändern der Tabelle → inMemory

• Tabelle direkt ins Memory laden

• Laden dauert eine gewisse Zeit

SQL> ALTER TABLE umsaetze INMEMORY PRIORITY CRITICAL;

SQL> SELECT populate_status, inmemory_size, bytes, bytes_not_populated,

inmemory_compression

FROM v$im_segments

WHERE segment_name = 'UMSAETZE';

POPULATE_STAT INMEMORY_SIZE BYTES BYTES_NOT_POPULATED INMEMORY_COMPRESS

------------- ------------- ---------- ------------------- -----------------

STARTED 476315648 3795492864 3040034816 FOR QUERY LOW

POPULATE_STAT INMEMORY_SIZE BYTES BYTES_NOT_POPULATED INMEMORY_COMPRESS

------------- ------------- ---------- ------------------- -----------------

OUT OF MEMORY 733413376 3795492864 2638405632 FOR QUERY LOW

www.carajandb.com 54

Versuch 2

• Tabelle direkt ins Memory laden

• Laden dauert eine gewisse Zeit

SQL> ALTER TABLE umsaetze INMEMORY MEMCOMPRESS FOR QUERY HIGH PRIORITY CRITICAL;

SELECT populate_status, inmemory_size, bytes, bytes_not_populated,

inmemory_compression

FROM v$im_segments

WHERE segment_name = 'UMSAETZE';

POPULATE_STAT INMEMORY_SIZE BYTES BYTES_NOT_POPULATED INMEMORY_COMPRESS

------------- ------------- ---------- ------------------- -----------------

OUT OF MEMORY 465108992 3795492864 0 FOR QUERY HIGH

www.carajandb.com 55

Ladevorgang

• Critical → wird sofort nach dem Starten der Datenbank geladen

• High → wenn Critical fertig ist und noch Platz vorhanden

• Medium → wenn High fertig ist und noch Platz vorhanden

• Low → wenn Medium fertig ist und noch Platz vorhanden

• None → wenn das Objekt das erste Mal benutzt wird und noch Platz vorhanden (Default)

www.carajandb.com 56

InMemory Compression

• NO MEMCOMPRESS

• keine Komprimierung

• MEMCOMPRESS FOR DML

• Minimale Komprimierung für Abfragen und DML (OLTP Datenbanken)

• MEMCOMPRESS FOR QUERY LOW (Default)

• Normale Komprimierung für Abfragen

• MEMCOMPRESS FOR QUERY HIGH

• Hohe Komprimierung für Abfragen

• MEMCOMPRESS FOR CAPACITY LOW

• Normale Komprimierung mit sehr schneller Dekomprimierung speziell für Oracle Datenbanken

• MEMCOMPRESS FOR CAPACITY High

• Höchste Komprimierung mit langsamer Dekomprimierung

www.carajandb.com 57

Test 1: mit Hint

www.carajandb.com 58

Test 2: ohne Hint → InMemory

www.carajandb.com 59

Spotlight

www.carajandb.com 60

Sonstiges

Hocherfügbarkeit und Windows

• Oracle 12.2. mit Release Update 180717 (Juli 2018)

• Bug 26430323 : ORA-07445[KKQGBPCHECKVALIDITYDP] WHEN SELECTING FROM DUAL

• “As you are running your 12.2.0.1 version on Windows platform, one off patches are not available for Windows. On Windows bug fixes are released in quarterly patch bundles. The bug will be fixed in Windows although cannot give you a timeframe when this will happen.”

www.carajandb.com 62

CarajanDB

• Experten mit über 30 Jahren Datenbank Erfahrung

• Spezialisten für

• Datenbank Administration (Oracle und PostgreSQL)• Hochverfügbarkeit (RAC, Data Guard, Replication, etc.)• Migrationen (Unicode, PostgreSQL)• Performance Optimierung• Monitoring (OEM, Foglight, CheckMK, PEM)

• Fernwartung

• Schulung und Workshops

• PostgreSQL• Oracle• Toad

www.carajandb.com 64

Kontakt

• E-Mail: johannes.ahrends@carajandb.com

• Homepage: www.carajandb.com

• Adresse:• CarajanDB GmbH

Siemensstraße 2550374 Erftstadt

• Telefon:• +49 (22 35) 1 70 91 84• +49 (1 70) 4 05 69 36

• Twitter: carajandb

• Facebook: johannes.ahrends

• Blogs: • blog.carajandb.com• www.toadworld.com

65www.carajandb.com