Posts

Es werden Posts vom September, 2012 angezeigt.

PL/SQL Unit testing

Datenbank unit testing best practise: Eine private Datenbank Instanz für jeden Developer. Beim Entwickeln von Tests für Datenbanken ist sehr wichtig, dass der Zustand von dem Datenbank Schema und Daten während der Entwicklung sich nicht verändert. Deswegen, in Projekten mit mehreren Entwicklern, sollte jeder Entwickler in eigener privater Instanz arbeiten, um Konflikten mit anderen Entwicklern oder Programmen zu vermeiden. Tests müssen unabhängig von Resultaten der anderen Tests sein. Am einfachsten kann man das erreichen, indem man vor jedem Test die Datenbank in initialen Zustand versetzt. Als mögliche Lösung kann man nach jedem Test die Datenbank Schema vollständig aufräumen, oder einfach keine Test Daten und Ergebnisse speichern (Rollback nach jedem Test). Eine Cleanup Funktion. Es ist oft nötig oder unvermeidlich (automatisches commit beim DDL Operationen in Oracle), dass während der Test-Ausführung, Daten in der Datenbank gespeichert werden. Man sollte für diese Fälle

Datenbankobjekte komprimieren

In einem aktuellen Artikel der DOAG gibt es einen guten Überblick über die Komprimierungsmöglichkeiten mit Oracle: Datenbankobjekte komprimieren, aber wie? Oracle Hybrid Columnar Compression, Advanced Compression und Basic Compression im Vergleich http://www.doag.org/home/aktuelle-news/article/datenbankobjekte-komprimieren-aber-wie-oracle-hybrid-columnar-compression-advanced-compression-un.html

spfile - Änderungen bei fehlerhaftem Parameter vornehmen

... da ist es nun doch mal passiert: Die Oracle-Datenbank (11.2) startet nicht mehr! Fehlermeldung: ORA-00119: invalid specification for system parameter ... D.h. offensichtlich ist ein init-Parameter falsch/fehlerhaft. Früher kein Problem: pfile finden, ändern - fertig! Inzwischen (seit Oracle 10? oder schon Version 9???) wird nicht mehr mit einem Textfile, sondern mit einem Binärfile (spfile.ora) gearbeitet - die Folge ist: Änderungen können erstmal nur noch z.B. per SQLPlus vorgenommen werden: ALTER SYSTEM SET =80 SCOPE=SPFILE; (oder SCOPE= MEMORY, oder SCOPE=BOTH) Das klappt aber nur, wenn die Datenbank verfügbar ist. Wenn bereits das Starten scheitert ... SQL> startup nomount ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00132: syntax error or unresolved network name 'LISTENER_ABC' ... hilft nur noch 1) aus dem spfile ein pfile zu erstellen.   create pfile='d:\app\fs1_pfile.ora' from spfile; 2) pfile manuell anzupas