dba
In the course of our projects, we have often acted in the DBA role. Thereby, we have executed DBA activities directly, as well as supported DBAs and administrators in Computing Centers. The main items of our DBA activities are:
  • Keeping the databases under surveillance regarding performance, tablespaces, etc. This goal can be achieved either by using tools, such as Oracle Enterprise Manager or TOAD, or by employing own scripts, ad-hoc queries, and DML statements.

  • Backup & Recovery - one of the most important tasks of a DBA, especially when dealing with critical systems (regarding data integrity or availability). There are several methods to create a backup of a database; the decision, which strategy is the most adequate, should be made on a per-case basis:
    • offline (cold backup) or online (hot backup)
    • copying tablespaces and possibly (archived) redo logs, or using export/import
    • directly, with own scripts, or by means of a tool, e.g., RMAN

  • Administrating tablespaces and datafiles; assigning objects (tables and indexes) to tablespaces

  • Administrating users and schemas, assigning tablespaces to users, assigning quotas, etc.

  • Administrating the rights and the roles:
    • privilege grants should be minimal and, as much as possible, redundancy-free
    • privileges should be structured correctly within roles; roles should be nested correctly within each other

  • Setting the database parameters and optimizing the database configuration (regarding pfile/spfile, optimizer, etc.)

  • Exporting and importing databases, single schemas, or single objects; migrating databases to other platforms

  • Upgrading the database software, running optional packages, as well as patches and hotfixes

  • Running stand-by databases / Data Guards

  • Fixing or finding work-arounds for technical problems; co-operating with the Oracle Technical Support

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

  • . . .
DBA know-how can be very helpful in the development process, too. Simultaneous possession of database administrator and database developer skills leads to an improvement of the results and to an increase of the performance. The reason is the unification of competencies on all levels, from the program logic, implemented in PL/SQL packages, down to the parameters of tablespaces, the degree of parallelism, or the influence of the High Water Mark on the performance of certain queries. Moreover, it enables straightforward design, reduction of the number of iterations in the development process, and unitary performance optimization.

Particularly performance tuning in the database context should not be regarded as an "add-on", done by somebody else - i.e., by the DBA - when the development is completed; it should rather be interleaved with the development, and to a great extent with the design phase.

Another important aspect is knowing the contents and the semantics of the data dictionary. On the one hand, the data dictionary supplies information about the objects in the database and thus enables generating new objects or code automatically. On the other hand, it provides information about the database itself - such as resource usage, performance, etc. - and allows real-time monitoring of the processes running, as well as determining the relationship between cause and effect.