Empfehlungslisten für Initialisierungsparameter (bei APEX 3.2)

04.
Juli
2009
Veröffentlicht von: Marco Patzwahl

Bei manchen (äh fast allen) Applikationen gibt es die geliebten ReadMe (RTFM) Dateien. Jeder liest diese Dateien natürlich ordnungsgemäß komplett von vorne bis hinten durch. :-)

Sollten durch die Installation einer Applikation diverse Initialisierungsparameter auf bestimmte Werte gesetzt werden müssen, könnte man dem Benutzer folgenden kleinen SQL-Befehl (natürlich angepasst an Ihre Wünsche) mitgeben:

Bei manchen (äh fast allen) Applikationen gibt es die geliebten ReadMe (RTFM) Dateien. Jeder liest diese Dateien natürlich ordnungsgemäß komplett von vorne bis hinten durch. :-)

Sollten durch die Installation einer Applikation diverse Initialisierungsparameter auf bestimmte Werte gesetzt werden müssen, könnte man dem Benutzer folgenden kleinen SQL-Befehl (natürlich angepasst an Ihre Wünsche) mitgeben:


Beispielempfehlung für die Installation von Apex 3.2 mit dem EPG Gateway auf Oracle 10.2/11.1/11.2 Datenbanken:

SELECT * FROM (
                SELECT name, nvl(display_value,'NULL') as Wert, CASE
                WHEN name='db_create_file_dest'
                   THEN (select substr(name,1,instr(name,'\',-1)-1)
                FROM v$datafile where rownum=1)
                WHEN name='shared_servers'
                   THEN '>=5 bei EPG'
                WHEN name='max_shared_servers'
                   THEN '>=20 bei EPG'
                WHEN name='job_queue_processes'
                   THEN '>=10'
                WHEN name='session_cached_cursors'
                   THEN '>=50'
                WHEN name='sga_max_size'
                   THEN '>=350M'
                WHEN name='sga_target'
                   THEN '>=350M'
                WHEN name='dispatchers'
                   THEN (select'(PROTOCOL=TCP) (SERVICE='||value ||'XDB)
                         (DISPATCHERS=3)' from v$parameter where
                         name='instance_name')
                WHEN name='audit_trail'
                   THEN 'db,extended oder xml,extended'
                END as empfehlung
                FROM v$parameter)
                WHERE empfehlung IS NOT NULL;


Ausgabe:

NAME                   Wert   EMPFEHLUNG
---------------------- ------ ----------------------------------------
sga_max_size           440M   >=350M
sga_target             440M   >=350M
db_create_file_dest    NULL   C:\ORACLE\PRODUCT\10.2.0\ORADATA\O10G
dispatchers            NULL   (PROTOCOL=TCP)(SERVICE=o10gXDB)
                              (DISPATCHERS=3)
shared_servers         0      >=5 
max_shared_servers     NULL   >=20 
session_cached_cursors 20     >=50 
job_queue_processes    10     >5
audit_trail            NONE   db,extended oder xml,extended


Oder Sie basteln dem Benutzer ein Skript, das die Parameter gleich selber umsetzt:

SELECT * FROM (
                SELECT CASE
                WHEN name='db_create_file_dest'
                   THEN (select 'ALTER SYSTEM SET db_create_file_dest='
                         ||substr(name,1,decode(instr(name,'\'),0,
                         instr(name,'/',-,2),instr(name,'\',-1,2))-1)
                         ||';' from v$datafile where rownum=1)
                WHEN name='shared_servers'
                   THEN 'ALTER SYSTEM SET shared_servers=5;'
                WHEN name='max_shared_servers'
                   THEN 'ALTER SYSTEM SET max_shared_servers=20;'
                WHEN name='job_queue_processes'
                   THEN 'ALTER SYSTEM SET job_queue_processes=10;'
                WHEN name='session_cached_cursors'
                   THEN 'ALTER SYSTEM SET session_cached_cursors=50;'
                WHEN name='sga_max_size'
                   THEN 'ALTER SYSTEM SET sga_max_size=350M SCOPE=SPFILE;'
                WHEN name='sga_target'
                   THEN 'ALTER SYSTEM SET sga_target=350M SCOPE=SPFILE;'
                WHEN name='dispatchers'
                   THEN (select 'ALTER SYSTEM SET dispatchers=
                         (PROTOCOL=TCP)(SERVICE='|| value || 'XDB)
                         (DISPATCHERS=3) scope=spfile;' from v$parameter
                         where name='instance_name')
                WHEN name='audit_trail'
                   THEN 'ALTER SYSTEM SET audit_trail='||chr(39)||
                        'db,extended'||chr(39)||'scope=spfile;'
                END as empfehlung
                FROM v$parameter)
                WHERE empfehlung IS NOT NULL;


Ausgabe:

ALTER SYSTEM SET sga_max_size=350M SCOPE=SPFILE;
ALTER SYSTEM SET sga_target=350M SCOPE=SPFILE;
ALTER SYSTEM SET db_create_file_dest=/opt/oracle/oradata;
ALTER SYSTEM SET dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB) (DISPATCHERS=3) scope=spfile;
ALTER SYSTEM SET shared_servers=5;
ALTER SYSTEM SET max_shared_servers=20;
ALTER SYSTEM SET session_cached_cursors=50;
ALTER SYSTEM SET job_queue_processes=10;
ALTER SYSTEM SET audit_trail='db,extended' scope=spfile;


Natürlich können Sie die Parameterempfehlungen mit Ihren eigenen Wünschen optimieren.

Diese und noch viele weitere Tricks lernen Sie z.B. in unserem Opens internal link in current windowAPEX Kurs (PS: ab August 2009 zwei Kurse mit je 5 Tagen)

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.