Skip to Main Content

Breadcrumb

Oracle 19.10 - Neuheiten

Mit dem Jan 2021 CPU für die Oracle 19c Datenbank gibt es einige neue Features und Instance Parameter, die teilweise von Oracle 20c/21c zurück portiert wurden. In diesem Artikel stellen wir diese kurz vor.

Blockchain Tabellen: blockchain_table_max_no_drop

Eine der interessanten, neuen Features in Oracle 20c sind die Blockchain Tabellen. Es handelt sich dabei um APPEND-ONLY Tabellen. Das bedeutet, dass lediglich ein INSERT möglich ist. Die Records können danach nicht mehr modifiziert werden. Lediglich das DROP der Tabelle bzw. ein DELETE der Daten sind möglich. Nachdem Oracle 20c lediglich in der Oracle Cloud (aber nicht für on Premise) zur Verfügung steht, hat Oracle dieses Feature in Oracle 19.10 eingebaut.

Mehr dazu finden Sie in der Oracle Dokumentation zum Thema Oracle Blockchain Table Konzept sowie Blockchain Table Implementierung.

Beim Erstellen der Tabelle gibt man, wie lange diese nicht gedroppt werden darf:

CREATE BLOCKCHAIN TABLE myblockchain .... NO DROP UNTIL 30 DAYS IDLE ...

Um Blockchain Tabellen in Oracle 19c nutzen zu können, gibt es folgende Voraussetzungen:

  • COMPATIBLE=19.10
  • Jan 2021 CPU ist eingespielt
  • Der Patch 32431413 muss einspielt sein

Jetzt kommen wir endlich zu dem Parameter blockchain_table_max_no_drop. Wie der Name schon suggeriert, definiert man die maximale Zeit, die man beim CREATE BLOCKCHAIN TABLE für die NO DROP UNTIL Clause verwenden darf. Weitere Details zu diesem Parameter findet man in der Oracle Dokumentation.

container_data

Mit diesem Parameter kann man steuern, ob man Object Store Shared Data innerhalb einer PDB auch aus der Application Root bzw der CDB$ROOT sehen darf. Der Parameter hat folgende Einstellungsmöglichkeiten:

  • ALL - die Query liefert Daten sowohl von der PDB als auch die Shared Daten aus der Application Root als auch aus der CDB$ROOT.
  • CURRENT - die Query liefert nur die Daten aus der PDB.
  • CURRENT_DICTIONARY - die Query liefert die Shared Daten aus der Application Root und der PDB, jedoch NICHT aus der CDB$ROOT.

Die Default Einstellung des Parameters ist ALL.

Real Time Statistics: optimizer_real_time_statistics

Ein weitere Oracle 20c/21c Funktionalität, die Oracle ab 19.10 bereit stellt, ist die Möglichkeit von Optimizer Real Time Statistiks - leider nur für Oracle Exadata Kunden. Wenn man den Parmeter auf true stellt, werden die Optimizer Statistiken durch normales DML aktualisiert. Beispielsweise werden die LOW_VALUE und HIGH_VALUE in DBA_TAB_COLUMNS aktualisiert. Damit kennt der CBO immer die aktuellen Grenzen für einen Wert wenn man Bereichscans durchführt.

Das kann man mit Hilfe zweier undokumentierter Parameter noch genauer einstellen:

  • _optimizer_use_stats_on_conventional_dml - ob diese Real Time Statistiken auch genutzt werden sollen.
  • _optimizer_gather_stats_on_conventional_dml - oder ob diese nur gesammelt werden sollen.

Database Resident Connection Pooling - Authentication Pool: min_auth_servers, max_auth_servers

Connection Pooling sollte von Applikations- oder WebServer eigentlich immer genutzt werden. Wenn das nicht möglich ist - meist weil es die Entwickler nicht einbauen, manchmal aber auch, weil es keine Connection Pool Unterstützung für die Programmiersprache gibt - kann man auf Database Resident Connection Pooling zurück greifen. Diese Funktionalität hat Oracle erstmalig mit Oracle 11g angeboten und über die Releases immer mehr erweitert und verbessert. Weitere Informationen dazu in der Oracle Dokumentation.

Die von Oracle 20c/21c in Oracle 19.10 zurückportierte Funktion ist die Möglichkeit mehrere Authentication Servers in einem Authentication Pool zu nutzen. Der Authentication Pool existiert parallel zum Connection Pool und dient - wie der Name schon vermuten läßt - zur Authentifizierung der Clients, wenn man den Parameter DRCP_DEDICATED_OPT=YES einstellt. Sofern man Pluggable Databases nutzt, sollte man den Parameter ENABLE_PER_PDB_DRCP=TRUE ebenfalls nutzen, damit die Connection Pools und Authentication Pools for PDB angelegt und gesteuert werden können.

  • min_auth_servers - Mindestanzahl für Authentication Server in einem Pool, Default = 1
  • max_auth_servers - Maximalanzahl für Authentication Server in einem Pool, Default = 25