Oracle Standard Edition Datenbanken Instanz Konfiguration

Abgesehen davon, dass viele DBAs noch den Fehler machen und mit dem DBCA beim Anlegen einer Standard Edition Datenbank eines der Templates mit inkludiertem Enterprise Edition Datenbankfiles nutzen, statt mit Hilfe des Custom Database Templates eine saubere Standard Edition Datenbank mit nur den benötigten Optionen anlegen, gibt es noch einige Nacharbeiten, die man unbedingt umsetzen sollte.

Viele der Default Instance Parameter sind für Enterprise Edition Datenbanken gedacht. Oracle selbst bietet kein Set an Instance Parameter für Standard Edition Datenbanken an. Auch viele Defaults für Instance Parameter berücksichtigen die Standard Edition Limitationen nicht.

Oracle hat in den letzten Jahren zwar nachgebessert und verhindert die Nutzung von einigen Enterprise Edition Funktionalitäten mit der Standard Edition Datenbank, allerdings ist das nicht immer klar und sauber ersichtlich. Aus diesem Grund empfehlen wir, die Konfiguration von einigen Instance Parametern, um sicher zu gehen, dass keine unbeabsichtigten Oracle Lizenzverletzungen erfolgen können.

Die folgenden Instance Parameter muss man für Standard Edition Datenbanken unbedingt setzen um etwaige Lizenzverletzungen zu verhindern:

alter system set DEFERRED_SEGMENT_CREATION=FALSE scope=spfile;
alter system set query_rewrite_enabled=FALSE scope=both;
alter system set optimizer_adaptive_plans=FALSE scope=both;
alter system set control_management_pack_access=NONE scope=spfile;
alter system set resource_manager_plan = 'DEFAULT_PLAN'  scope=spfile; 
alter system set client_result_cache_size = 0  scope=spfile; 
alter system set result_cache_max_size = 0  scope=spfile;
alter system set optimizer_use_sql_plan_baselines = FALSE  scope=spfile; 

Die folgenden Einstellungen sind nicht zwingend notwendig, da diese entweder den Defaults entsprechen, oder seitens Oracle schon korrekt unterbunden sind. Es macht aber durchaus sinn diese trotzdem zu setzen – und sei es nur um zu dokumentieren, dass die Nutzung dieser Funktionalitäten nicht gewünscht ist.

alter system set inmemory_size=0 scope=spfile;
alter system set optimizer_inmemory_aware=FALSE scope=spfile;
alter system set HEAT_MAP=off scope=spfile;
alter system set enable_ddl_logging=false scope=spfile;
alter system set star_transformation_enabled = FALSE  scope=spfile;

Hinweis: Damit alle diese Einstellungen gültig werden, muss die Datenbank Instanz neu gestartet werden.

Zusätzlich gibt es bei Oracle noch automatische Jobs, die in der Nacht laufen und für die Oracle Standard Edition nicht sinnvoll sind:

-- disable AUTOMATIC MAINT JOBS
exec dbms_auto_task_admin.disable('sql tuning advisor',null,null);
exec dbms_auto_task_admin.disable('auto space advisor',null,null);
exec dbms_auto_task_admin.disable('Auto STS Capture Task',NULL,NULL);

Last but not least, sollte man die AWR-Snapshots deaktivieren, da man diese sowieso nicht nutzen darf (gehört zum Diagnostic Pack) und Oracle bei einer Standard Edition Datenbank sowieso nur einen Bruchteil sammelt:

-- disable AWR Snapshotting
exec dbms_workload_repository.modify_snapshot_settings(interval=>0);

Mit diesen Einstellungen reduziert man Overheads, die nur für Enterprise Edition Datenbanken relevant sind, und stellt sicher, dass es zu keinen unabsichtlichen Lizenzverletzungen kommt.