dba
Im Rahmen der durchgeführten Projekte haben wir oft DBA-Rollen übernommen. Dabei haben wir sowohl DBA-Tätigkeiten selber ausgeführt, als auch DBAs betreut und den Rechenzentrumsbetrieb unterstützt. Die Schwerpunkte unserer DBA-Tätigkeiten sind:
  • Überwachung der Datenbanken hinsichtlich Prozesse, Performance, Tablespaces etc. Dies kann je nach Fall mit Tools wie Oracle Enterprise Manager oder TOAD, oder mit eigenen Skripten, Ad-hoc Queries und DML-Statements erfolgen.

  • Backup & Recovery - eine der wichtigsten Aufgaben eines DBAs, insbesondere bei kritischen Systemen (bzgl. Datenintegrität oder Verfügbarkeit). Es gibt viele Methoden, den Backup einer Datenbank durchzuführen; es muß im konkreten Fall entschieden werden, welche Strategie am besten geeignet ist:
    • Offline (Cold Backup) oder Online (Hot Backup)
    • Kopieren der Tablespaces und ggf. der (Archived) Redo Logs oder Export/Import
    • direkt, mit eigenen Skripten oder mit Hilfe eines Tools, z.B. RMAN

  • Verwaltung der Tablespaces und Datafiles; Zuordnung der Objekte (Tabellen und Indizes) zu Tablespaces

  • Verwaltung der User und Schemata, Zuordnung der Tablespaces zu User, Zuweisung von Quotas etc.

  • Verwaltung der Rechte und Rollen:
    • minimales und möglichst redundanzfreies Erteilen von Rechten
    • korrekte Strukturierung der Rechte innerhalb von Rollen und korrekte Verschachtelung der Rollen

  • Einstellung der Datenbank-Parameter und Optimierung der Datenbank-Konfiguration (bzgl. pfile/spfile, Optimizer etc.)

  • Export und Import einer Datenbank, einzelner Schemata oder einzelner Objekte; Migration von Datenbanken auf andere Plattformen

  • Upgrade der Datenbank-Software, Einspielen von optionalen Paketen sowie von Patches und Hotfixes

  • Betrieb von Stand-By Datenbanken / Data Guards

  • Behebung oder Workarounds bei technischen Problemen, Zusammenarbeit mit dem Oracle Technical Support

  • Release Deployment (Development => QA => Prod)

  • . . .
DBA-Kenntnisse können durchaus auch im Entwicklungsprozeß nützlich sein. So führt die gleichzeitige Beherrschung der Datenbank-Administration und der Datenbank-Entwicklung zur Verbesserung der Ergebnisse und zur Erhöhung der Effizienz. Grund hierfür ist die Bündelung der Kompetenzen auf allen Ebenen, von der Logik, die in PL/SQL-Packages implementiert ist, bis zu den Parametern der Tablespaces, dem Parallelitätsgrad oder dem Einfluß der High Water Mark auf die Effizienz bestimmter Abfragen. Dadurch wird ein einheitliches Design, eine Reduzierung der Anzahl der Iterationen im Entwicklungsprozeß und eine durchgehende Performance-Optimierung ermöglicht.

Inbesondere Performance-Tuning sollte im Datenbank-Umfeld nicht als ein "Add-On", das von jemand anderem - also, von dem DBA - nach Abschluß der Entwicklung durchgeführt wird; vielmehr muß es mit der Entwicklung und weitestgehend bereits mit der Design-Phase eng verzahnt sein.

Dabei ist auch die Kenntnis des Inhaltes und der Semantik des Data Dictionaries wichtig und hilfreich. Zum einen liefert das Data Dictionary Informationen über die Objekte in der Datenbank und ermöglicht dadurch u.a. die generische Erzeugung von Objekten oder von Code. Zum anderen stellt es Informationen über die Datenbank selbst - wie Benutzung von Ressourcen, Performance etc. - bereit und ermöglicht dadurch die zeitnahe Überwachung der laufenden Prozesse sowie ein einfacheres Nachvollziehen der Verbindung zwischen Ursache und Effekt.