Parameter-Änderungen dokumentieren. Immer. Bitte.

27. November 2021 Aus Von Markus Flechtner

Vor einiger Zeit stand bei einem Kunden wieder mal ein Datenbank-Upgrade an. Und wie in so einem Fall üblich, schaut man sich die aktuellen Werte der diversen Instanz-Parameter an. Und entdeckt diverse Nicht-Standard-Parameter, d.h. Parameter, die eher selten verwendet werden. Oder „Standard-Parameter“ haben „Nicht-Standard-Werte“. Oder es werden undokumentierte „_“-Parameter genutzt. Und bei einem Upgrade stellt sich dann die Frage: warum wurde dieser Parameter gesetzt und brauchen wir ihn in dem Ziel-Release noch?

Und dann beginnt die Suche: in den Installationsanleitungen der Anwendungshersteller, in Support-Notes und in alten Service-Request. Oder man nutzt die bevorzugte Suchmaschine.

Dabei könnte das Leben auch einfacher sein: denn man kann Parameter (und damit auch Parameteränderungen) auch dokumentieren.

Also:

SQL> alter system set "TARGET_PDBS"=10 comment='# of PDBs (planned) - MOS-Note 2644243.1' scope=spfile;
System altered.

SQL> alter system set "_datafile_write_errors_crash_instance"=false comment='MOS-Note 1604135.1' scope=spfile;
System altered.

SQL> alter system set "_exclude_seed_cdb_view"=false comment='Please see https://mikedietrichde.com/2019/04/15/why-you-should-set-_exclude_seed_cdb_viewfalse/' scope=spfile;
System altered.

SQL> alter system set cursor_sharing=force comment'2021-11-27 - Flechtner - Vendor requirement - software XYZ' scope=spfile;
System altered.

SQL> Alter system Set  "_b_tree_bitmap_plans"=false Comment= 'SR 3-12345678901 Workaround Bug 12345678 12.2.0.1' SID= '*' Scope= spfile;
System altered.

Die letzte Zeile ist der MOS-Note 2524119.1 entnommen, d.h. auch Oracle empfiehlt dieses Vorgehen bei besonderen Einstellungen – in diesem Fall bei „_“-Parametern.

Über die Spalte „UPDATE_COMMENT“ in V$PARAMETER (aktuelle Einstellung) bzw. V$SPPARAMETER (Spfile) kann man die Kommentare dann abfragen:

SQL> column name format a30
SQL> column value format a10
SQL> column name format a40
SQL> column update_comment format a50
SQL> set linesize 120
SQL> select name,value,update_comment from v$spparameter where update_comment is not null;

NAME					 VALUE	    UPDATE_COMMENT
---------------------------------------- ---------- --------------------------------------------------
_datafile_write_errors_crash_instance	 FALSE	    MOS-Note 1604135.1
target_pdbs				 10	    # of PDBs (planned) - MOS-Note 2644243.1
_exclude_seed_cdb_view			 FALSE	    Please see https://mikedietrichde.com/2019/04/15/w
                            hy-you-should-set-_exclude_seed_cdb_viewfalse/

Noch schöner wäre es natürlich, wenn der SQL*Plus oder sqlcl bei dem Befehl „show parameter“ auch den Kommentar mit anzeigen würden. Leider ist das nicht der Fall.

 

P.S. Mir ist natürlich klar, dass dieser Blog-Post nur ein frommer Wunsch ist. DBAs sind da meiner Erfahrung nach nicht besser als Entwickler – keiner von beiden dokumentiert gerne 🙂

 

Amazon-Partner Link