miércoles, 4 de noviembre de 2009

Disponibilidad en Oracle

Real appication clusters (Oracle RAC)

es una opción para Oracle Database 11g Enterprise Edition que se incluye con Oracle Database 11g Standard Edition (en clústeres con un máximo de 4 zócalos). Oracle RAC permite implantar una sola base de datos en un cluster de servidores, con un nivel insuperable de tolerancia a fallos, rendimiento y escalabilidad sin necesidad de ningún cambio en las aplicaciones. Los analistas valoran la creciente importancia de RAC entre la gran variedad de clientes de todos los sectores para aplicaciones de procesamiento de transacciones y almacenamiento de datos.
Ventajas
  1. Disponibilidad permanente-Tiempo de actividad ininterrumpido para las aplicaciones de base de datos.
  2. Escalabilidad bajo demanda-Mayor capacidad con sólo agregar servidores al cluster.
  3. Menos gastos de computación-Uso de hardware de consumo económico y menos costes por inactividad.
  4. Récord mundial de rendimiento-Funciona a más velocidad que el mainframe más rápido.
  5. Grid computing-Oracle RAC consituye los cimientos de la computación en paralelo (grid computing).

Data Guard

mejora la calidad de servicio al descargar las actividades con muchos recursos desde una base de datos de producción hacia una o más bases de datos standby sincronizadas. Oracle Active Data Guard permite el acceso de solo lectura a una base de datos standby física para consultas, clasificaciones, informes, acceso basado en la web, etc., mientras continuamente se aplican los cambios recibidos desde la base de datos de producción. Oracle Active Data Guard también mejora el uso de backups rápidos cuando se descargan backups en una base de datos standby, y puede ofrecer beneficios adicionales de alta disponibilidad y protección ante desastres en caso de cortes de servicio planificados o no planificados en el sitio de producción.

Beneficios

  1. Aumente el desempeño—Descargue el volumen de trabajo en una réplica actualizada de la base de datos de producción.
  2. Simplifique las operaciones—Elimine la complejidad de administración que se asocia a las soluciones de replicación tradicional
  3. Elimine el compromiso—La réplica de informes está actualizada y online en todo momento - no es posible con la tecnología tradicional para el espejamiento de almacenamiento.
  4. Reduzca los costos—Una base de datos standby física Active Data Guard también puede brindar recuperación ante desastres y/o servir como base de datos de prueba - no se requieren servidores ni almacenamiento adiciona.
  5. Recuperación ante desastres y alta disponibilidad -Mediante un failover automático y fácil de administrar que en segundos cambia el rol de las bases de standby a producción.
  6. La base standby database también provee una salvaguarda efectiva contra la corrupción de los datos y los erroresde los usuarios - Ya que daños físicos en la base de datos primaria no se propagan a la standby.
  7. La base standby puede ser utilizada para backups y reportes de sólo lectura - Reduciendo la carga de trabajo de las bases productivas ahorrando ciclosde CPU y de E/S.
  8. Flexibilidad en la protección de los datos - Balancea la disponibilidad con los requerimientos de performance.
  9. Protección ante fallas de comunicación - Si la conectividad de la red se pierde, por lo que no se pueden transmitir los datos entre las bases productivas y las standby, luego cuando se reestablece la misma, los datos perdidos son automáticamente detectados porData Guard y los logs de los archivos son transmitidos a las bases standby, lasque se resincronizan con las bases primarias, sin intervención manual del administrador.
  10. Administración simple y centralizada - La funcionalidad Data Guard Broker automatiza la administración y el monitoreo detodas las bases de datos.
  11. Economía -Ya que Data Guard está disponible como una característica integrada de la versión Enterprise Edition sin costo adicional.

Tecnologia Oracle Flashback

A partir de oracke9i, además de tener point-in-time restore y recovery de la base de datos, tenemos un grupo de funcionalidades conocidas como Oracle Flashback Technology que nos permite trabajar los datos con los valores que tenía en un pasado determinado.

La solución más básica ante cambios no deseados en la base de datos, es el database point-in-time recovery, en donde debemos restaurar la base de datos desde un backup y luego aplicar los redo logs para recrear todos los cambios hasta el momento (pont-in-time) anterior al cambio no deseado.

Oracle Flashback Technology provee varias alternativas para ver el estado pasado de los datos, “rebobinando” los datos hacia atrás y adelante sin necesidad de un restore de la base desde un backup.

De esta manera la tecnología Flashback puede revertir los cambios no deseados más rápidamente y con menos impacto en la disponibilidad del resto de la base de datos.

Aunque las ventajas de Flashback son muchas, tiene algunas limitaciones:
  1. Si la corrupción de la base de datos se da a nivel físico, no se puede usar Flashback como medio de recuperación.
  2. Es un producto pensado para volver atrás cambios no deseados realizados en un pasado cercano. Cuanto tiempo atrás uno puede ir, es configurable, pero limitado según la cantidad de transacciones que se realicen en la base y el espacio disponible para guardar las transacciones realizadas.

miércoles, 28 de octubre de 2009

¿ QUE ES UN PERFIL EN ORACLE ?

es un conjunto de limites de los recursos de la base de datos y constraseña de acceso a la base de datos, si no se espesifica ningun perfil, el usuario se le asigna un perfil determinado.

¿QUE ES UN ROL EN ORACLE Y PARA QUE SIRVE?

Un rol es una forma de agrupar permisos (o privilegios) para asignarlos luego a los usuarios.
Cada usuario puede tener varios roles.
El rol es asignado por default a un usuario. Un rol, puede ser asegurado de manera adicional, que por default, no trae seguridad alguna.

¿ Para que sirver un rol ?

los roles sirven para asignar un grupo de permisos a un usuario, y poder modificar este grupo de permisos sin tener que ir modificando todos los usuarios. Si asignamos un rol con 10 permisos a 300 usuarios, y posteriormente añadimos un permiso nuevo al rol, no será necesario ir añadiendo este nuevo permiso a los 300 usuarios, ya que el rol se encarga automáticamente de propagarlo. La sintaxis básica es:

CREATE ROLE nombre_rol { [NOT IDENTIFIED | IDENTIFIED [BY clave | EXTERNALLY]] };
Una vez que el rol ha sido creado será necesario añadirle permisos a través de instrucción GRANT.

Inicialmente Oracle tiene predefinidos los siguiente roles (entre otros):
|| Rol predefinido || Descripción ||
|| CONNECT || Todos los permisos necesarios para iniciar una sesión en Oracle ||
|| RESOURCE || Todos los permisos necesarios para tener recursos para la creación ||
|| || de objetos ||
|| DBA || Todos los permisos para un administrador de base de datos (DBA) ||
|| EXP_FULL_DATABASE || Permisos para poder exportar toda la base de datos. ||
|| IMP_FULL_DATABASE || Permisos para poder importar toda la base de datos. ||
Podemos decir que un usuarios normal, debe tener al menos los permisos de CONNECT (para conectarse) y de RESOURCE (para poder crear objetos).

Ejemplos:

CREATE ROL CONTROL_TOTAL; CREATE ROL BASICO; CREATE ROL ACCESO_CONTABILIDAD;






QUE ES UN PRIVILEGIO EN ORACLE

Un privilegio no es más que un permiso dado a un usuario para que realice cierta operación. Estas operaciones pueden ser de dos tipos:
Operación de sistema:
necesita el permiso de sistema correspondiente. ·
Operación sobre objeto:
necesita el permiso sobre el objeto en cuestión.

Privilegios
Es la capacidad de un usuario dentro de la base de datos a realizar determinadas operaciones o acceder a determinados objetos de otros usuarios.
Privilegios sobre los objetos
Nos permite acceder y realizar cambios en los datos de otros usuairo. Ejemplo: El privilegio de consultar la tabla de otro usuario es un privilegio sobre objetos.
ON= Especifica el objeto sobre el que se dan los privilegios.
TO= Identifica a los usuarios o roles a los que se conceden los privilegios.
ALL= Concede todos los privilegios sobre el objeto especificado.
WITCH GRANT OPTION= Permite que el receptor del privilegio o rol se lo asigne a otros usuarios o roles.
PUBLIC= Asigna los privilegios a todos los usuarios actuales y futuros: El propósito principal del grupo PUBLIC es garantizar el acceso a determinados objetos a todos los usuarios de la base de datos.
Privilegios de sistema
Dan derecho a ejecutar un tipo de comando SQL o a realzar alguna acción sobre objetos de un tipo especificado. Por ejemplo, el privilegio para crear TABLESPACES es un privilegio de sistema. Formato:

La siguiente sentencia permite identificar los roles y demas privilegios que fueron asignados al usuario de la sesion.

SELECT granted_role "Rol",
admin_option "Admin"
FROM user_role_privs;

SELECT privilege "Privilegio",
admin_option "Admin"
FROM user_sys_privs;

Si se desea hacer esta consulta para otros usuarios, se deberán utilizar la vista dba_role_privs

miércoles, 16 de septiembre de 2009

QUE ES UN INDICE BITMAP EN ORACLE?

Los indices B-Tree almacenan rowids en las hojas del arbol. Estos indices pueden llegar a utilizar grandes cantidades de espacio de almacenamiento. A diferencia de los indices B-Tree, los indices de tipo Bitmap utilizan una fraccion de espacio mucho menor representando los rowids como valores binarios (on/off).
Los indices Bitmap son aconsejables en situaciones en que los diferentes valores que puede tomar la columna son relativamente pocos. Ejemplos: sexo, estado civil, etc. Cuantos menos valores posibles, mejor. A medida que crece la cantidad de valores posibles, aumentara el tamaño del indice.

Curiosamente este es el articulo mas leido de SqlEficiente. Evidentemente hay poca informacion en español acerca de los indices bitmap. Por dicho motivo, estare agregando algunos apendices al proyecto, referidos a los indices bitmap. Los links a dichos apendices se iran agregando a este articulo a medida que los vaya publicando.

QUE ES INDICE B-TREE EN ORACLE ?

El indice B-tree es de tipo indice mas comun en una base de datos en oracle.
ES el indice defaul, es decir que si uno crea un indice sin especificar el tipo. Oracle lo creara de tipo B-TREE.
La estructura de un indice B-tree tiene la forma de un arbol invertido. Las estructuras superiores se llaman ramas y la estructura inferior constrituyen las hojas.
Generlamente los indices B-tree tienen uno o mas niveles de ramas cada rama un nivel y contiene informacion sobre otra rama del nivel inmediatamente inferior.

¿QUE ES UN INDICE B-TREE EN ORACLE?

QUE ES UN INDICE (index) ?
  • un indice es una estructura de memoria secunadaria que permite el acceso directo a las filas de una tabla (este o no agrupada).
  • Auamenta la velocidad de respuesta de la consulta, mejorando su remdimiento y optimizando su resultado.
  • su manejo se hace de forma inteligente. Es de propio Oracle quien decide que indice se necesita.

TIPO DE INDICE (INDEX)

LECTURA/ESCRITURA

  • B-tree(árboles binarios)
  • funcion Based
  • Reserve Key

SOLO LECTURA (read only)

  • Bimap
  • Bimap join
  • index orgamized table
  • Cluster y hash cluster

Domain


¿QUE ES Y PARA QUE SIRVE UN TABLESPACE DEL TIPO UNDO (UNDO TABLESPACE) ?

LOS TABLE ESPACE DE TIPO UNO
  1. Podemos tener varios tablespaces de "UNDO", pero solo uno de ellos estarà.
  2. No se pueden crear objetos sobre Tablespace de "UNDO".
  3. Al cambiar de Tablespace "UNDO" activo (con undo_tablespace), los segmentos de Rollback pasan a estar "ONLINE", mientras que los del tablespace anterior se ponen offline.

Los tablespace de tipo uno se crean de dos formas :

  • Mediante create database.
  • Medianate create tablespace: create undo tablespace undotbs02 datafile 'c:\oraclexe\oradata\ex\undo02.dbf' size 25m reuse autoextend on;
  • Para eliminar : Drop tablespace undotbs02;

Paràmetro de inicializaciòn de los espacios de tablas de deshacer:

  • Undo_Management(valores MANUAL/AUTO).si auto se gestionarà de forma automàtica el espcacio de deshacer. No es dinàmico, cuando se cambia de estado se debe rearancar la isntalacia.
  • Undo_tablespace(MANUAL/AUTO). En entornos RAC(Real Application Clusters)

miércoles, 9 de septiembre de 2009

¿QUE ES UN EXTENSION EN ORACLE ?

Al crear o, mejor dicho, asignar una nueva extensión al segmento, se está reservando espacio en el disco para almacenar los nuevos datos de dicho segmento. Por lo tanto, al crear la nueva extensión está totalmente vacía y todo su espacio está disponible para almacenar los datos del segmento y, además, en el disco debe haber espacio libre para que Oracle reserve todo el tamaño que necesita la extensión, y lo formatea de forma especial para poder utilizarlo. A partir de ese momento, en esa extensión solamente se podrán almacenar datos del segmento al que pertenece.

Cuando se llenan todos los bloques de datos de una extensión, el segmento solicita una nueva extensión al sistema para poder seguir almacenando información.

¿Cómo podemos determinar el número de extensiones y su tamaño de un segmento?.

Para establecer el tamaño de las futuras extensiones que irá solicitando un segmento se utilizan varios parámetros a los que hay que dar valor en el momento de la creación de la tabla, índice o segmento de rollback. Estos parámetros se indican en la claúsula STORAGE de la sentencia que crea el segmento y son los siguientes:

Initial:

Indica el tamaño en bytes de la primera extensión que tendrá el segmento. Se puede indicar después del valor una "K" o "M" para que el valor sea interpretado como Kilobytes o Megabytes en lugar de bytes. Si no se pone explícitamente este parámetro en la creación del segmento, se hereda por defecto el valor que tenga este parámetro en el tablespace en el que se está creando el segmento y que, si no se ha indicado tampoco, por defecto son 5 bytes. Cuando se crea una extensión oracle redondea el tamaño indicado al siguiente múltiplo superior a 5 bloques de datos. Por lo tanto, si nuestros bloques son de 8192 bytes y creamos un segmento con un inital de 256Kbytes, realmente estamos creando un segmento de 32 bloques y oracle lo redondea a 35 bloques que es el primer múltiplo superior a 5 de 32. Por lo tanto, nuestra initial extent será de 35 * 8192 = 280 Kbytes.

Para comprobar estos datos se puede consultar la tabla dba_segments en la que tenemos un registro por cada segmento distinto:

Select segment_name, initial_extent, next_extent, pct_increase, min_extent,
max_extent from dba_segments;

Next:

Indica el tamaño que tendrá la próxima extensión que se cree cuando no quede más sitio en las extensiones que ya tiene asignadas el segmento. De igual manera que en el caso del parámetro initial, Oracle redondea a un múltiplo de 5 bloques este valor, a la hora de crear la extensión nueva. Cada vez que se crea una nueva extensión, se recalcula el valor de este parámetro en función del valor de pctincrease y se actualiza la vista dba_segments.

Pctincrease:

En el momento que se asigna una nueva extensión al segmento, se recalcula el valor que va a tener la próxima que se le asigne y que será, el tamaño de la extensión recién creada (el next que tenía el segmento) aumentado en el porcentaje indicado por pctincrease. Por lo tanto, si qeremos que todas las extensiones de nuestro segmento tengan el mismo tamaño, habrá que asignarles el pctincrease a 0. Oracle recomienda establecer por norma el pctincrease a 0 para evitar que se descontrolen los tamaños de los segmentos, especialmente los temporales, aunque, curiosamente, su valor por defecto es de 50%. No se puede modificar el pctincrease de los segmentos de rollback que es siempre 0.

Mostremos un ejemplo: tenemos un segmento que en el campo next_extent tiene como valor 262144 y en pct_increase tiene 50 y los bloques son de 8192 bytes. Cuando crezca el segmento y solicite una nueva extensión, ésta se creará del tamaño indicado en next_extent redondeándola al primer múltiplo de 5 bloques superior o igual a dicho valor. En nuestro caso 262144 son 32 bloques así que creará una extensión de 35 que son 286720 bytes. Además, recalcula el valor del siguiente next_extent aumentando en un 50% el valor del antiguo next_extent, es decir 262144 * 1,5 = 393216 bytes.

Minextents:

Se indica el número de extensiones que se deben reservar a la vez para un determinado segmento en el momento de su creación. Por defecto es una excepto en los segmentos de rollback que son dos. Puede que las extensiones no estén contiguas. Por supuesto, si en la cláusula storage en la créación del objeto se indican valores para next y pctincrease, las extensiones iniciales que se crean se recalculan para cumplir lo indicado en estos parámetros.

Por ejemplo, creamos un segmento con minextents = 4, con un initial de 262144, next de también 262144, bytes y con un pctincrease del 50%, el resultado será la creación de 4 extensiones de tamaños, 286720, 286720, 409600, 614400 y de un next extent de 884736. Estos tamaños vienen de redondear 32, 48 y 72 a múltiplos de 5 y el next extent es 108 bloques que es el 50% de 72 bloques.

Maxextents:

Es el numero máximo de extensiones que se pueden crear en ese objeto, contando también la primera. Se puede especificar UNLIMITED con lo que pueden crecer indefinidamente. No se recomienda que a los segmentos de rollback se les asigne unlimited maxextents ya que con operaciones complejas podrían aumentar excesivamente de tamaño y llenarían el disco. Así que hay que tener cuidado a la hora de crear rollback segments, sobretodo porque heredan por defecto el valor del parámetro que tenga asignado el tablespace en el que se crean.

Desasignación de Extensiones

Las extensiones que han sido reservadas por un segmento no son devueltas a Oracle para que se las pueda signar a otro segmento del mismo tablespace hasta que se elimina el objeto mediante la instrucción DROP. Por lo tanto, cuando tenemos una tabla que nos ocupa varias extensiones, a pesar de que borremos todas sus filas, esa tabla seguirá teniendo reservadas las extensiones aunque eso si, estarán vacías.

Existen algunas excepciones. Se pueden devolver todas las extensiones de una tabla excepto las min_extents haciendo un truncate de la misma. Hay que ser muy cuidadoso con esta instrucción ya que se eliminan todos los datos de la tabla y, no hay rollback posible. En los segmentos de rollback, si tienen puesto el parámetro optimal, oracle periódicamente puede desasignarle las extensiones que no usa hasta que vuelve a tener el tamaño óptimo. Finalmente, existe una sentencia que también desasigna las extensiones que no se usan en una tabla:

Alter table nombre_de_table deallocate unused; 

En cuanto se ha desasignado una extensión del segmento al que pertenecía, Oracle ya la puede volver a reclamar para que la puedan utilizar otros segmentos del mismo tablespace. Por lo tanto, cuando un nuevo objeto solicite una nueva extensión, si Oracle no encuentra espacio libre suficiente para crear una nueva, y entre las que ha ido desasignando tampoco encuentra ninguna suficientemente grande como para asignarla, puede unir varias de estas extensiones hasta conseguir una lo suficientemente grande como para poder asignársela al segmento. A esta operación se le llama COALESCE de extensiones.


¿QUE ES UN SEGMENTO DE ORACLE?

En una base de datos Oracle, los tablespaces son los contenedores logicos que almacenan estructuras logicas. Oracle provee cuatro tipo de estructuras logicas, llamadas segmentos, que se pueden almacenar dentro de un tablespace: segmentos de datos, segmentos de indices, segmentos de undo y segmentos temporales.
Es muy importante saber que un segmento pertenece a un solo tablespace.
Segmentos de Datos
El espacio del diccionario de datos se suele mantener mas o menos constante, aunque es critico que tenga suficiente espacio

para crecer en el espacio de tablas SYSTEM. Asi, hay que tener cuidado de colocar las tablas de usuario, los indices, segmentos

temporales y los segmentos de rollback en otros espacios de tablas. Ademas, es recomendable que el espacio de tablas

SYSTEM esta al 50% o 75% de su espacio disponible. Finalmente, asegurarse que los usuarios no tienen privilegios de escritura
en el espacio de tablas SYSTEM

Segmentos de indice
Los indices crecen en tamaño en mayor proporcion que las tablas asociadas si los datos en la tabla son modificados
frecuentemente. La gestion del espacio es mejor si se mantienen los indices de tablas grandes en espacios de tablas separados.

Segmentos de Rollback

Los segmentos de rollback almacenan la imagen anterior a una modificacion de un bloque. La informacion en el segmento de
rollback se utiliza para asegurar la consistencia en lectura, el rollback (el valor en el segmento de rollback se copia en el bloque de datos) y la recuperacion.

Segmentos Temporales

Los segmentos temporales se crean cuando se efectuan las siguientes operaciones:

* Create Index
* Select con distinct, order by, union, intersect y minus.
* uniones no indexadas.
* Ciertas subconsultas correlacionadas.

Si las tablas a ordenar son pequeñas la ordenaciin se realiza en memoria principal, pero si la tabla es grande se realiza en disco.

El parametro SORT_AREA_SIZE determina el lugar donde se hace la ordenaciòn. Incrementandole se reduce la creacion de
segmentos temporales.



miércoles, 19 de agosto de 2009

¿QUE ES UN PGA ?

Los PGA fueron medidas automáticamente para que la carga de trabajo del sistema brindara
el mejor desempeño y todo los grupos de memoria en la memoria compartida fueran ajustados
de manera similar para que tuviera un desempeño òptimo. Solo se requeria que el usuario especifique la dimension de objetivos de PGA y SGA y Oracle asignaria adecuadamente la memoria dentro de estos parametros para proporcionar el mejor desempeño posible

¿QUE ES UN PGA

¿Cuales son los provesos de Background?

* Database Writer (DBWR)
* Log Writer (LGWR)
* Checkpoint (CKPT)
* System Monitor (SMON)
* Process Monitor (PMON)
* Archiver (ARCH)
* Recoverer (RECO)
* Lock (LCKn)
* Snapshot Refresh (Snnn)
* Shared Server (Snnn)
* Dispatcher (Dnnn)
* Parallel Query (Pnnn)

¿ QUE ES SGA ?

SGA (System Global Area)
Es una zona de memoria compartida que contiene todo los datos y la informacion
de control de un sistema. Cuando una base de datos es arrancada, una SGA es reservada y los procesos asociados a oracle arrancan. Esta combinacion de proceso y buffers de memoria es lo que constituye una instancia oracle.

¿cuales son los roles y funciones de un administrador de base de datos ?

las funsiones de un administrador de base de datos:
.-Recuperacion.(Crear y probar Respaldos )
.-Integridad. (Verificar o ayudar a la verificación en la integridad de datos)
.-Concurrencia.
.-Seguridad. (Definir y/o implementar controles de acceso a los datos )
.-Disponibilidad.(Asegurarse del mayor tiempo de encendido)
.-Desempeño - Asegurarse del máximo desempeño incluso con las limitaciones
.-Desarrollo y soporte a pruebas - Ayudar a los programadores e ingenieros a utilizar eficientemente la base de datos.
.-Manejo Eficiente de los datos.
.-Optimizacion de Consultas.

Funciones del Administrador de Bases de Datos

Definir el esquema conceptual:

es tarea del administrador de datos decidir con exactitud cual es la información que debe mantenerse en la base de datos, es decir, identificar las entidades que interesan a la empresa y la información que debe registrarse acerca de esas entidades. Este proceso por lo general se denomina diseño lógico –a veces conceptual- de bases de datos. Cuando el administrador de datos decide el contenido de la base de datos en un nivel abstracto, el DBA crea a continuación el esquema conceptual correspondiente, empleando el DDL conceptual. El DBMS utilizará la versión objeto (compilada) de ese esquema para responder a las solicitudes de acceso. La versión fuente sin compilar servirá como documento de referencia para los usuarios del sistema.

Definir el esquema interno: el DBA debe decidir también como se representará la información en la base de datos almacenada. A este proceso suele llamársele diseño físico de la base de datos. Una vez hecho esto el DBA deberá crear la definición de estructura de almacenamiento correspondiente (es decir el esquema interno) valiéndose del DDL interno. Además deberá definir la correspondencia pertinente entre los esquemas interno y conceptual. En la práctica, ya sea el DDL conceptual o bien el DDL interno incluirán seguramente los medios para definir dicha correspondencia, pero las dos funciones (crear el esquema, definir la correspondencia) deberán poder separarse con nitidez. Al igual que el esquema conceptual, el esquema interno y la correspondencia asociada existirán tanto en la versión fuente como en la versión objeto

Vincularse con los usuarios: el DBA debe encargarse de la comunicación con los usuarios, garantizar la disponibilidad de los datos que requieren y escribir - o ayudar a los usuarios a escribir- los esquemas externos necesarios, empleando el DDL externo aplicable. Además, será preciso definir la correspondencia entre cualquier esquema externo y el esquema conceptual. En la práctica, el DDL externo incluirá con toda probabilidad los medios para especificar dicha correspondencia, pero en este caso también el esquema y la correspondencia deberán poder separarse con claridad. Cada esquema externo y la correspondencia asociada existirán en ambas versiones fuentes y objeto. Otros aspectos de la función de enlace con los usuarios incluyen las consultas sobre diseño de aplicaciones, la impetración de instrucción técnica, la ayuda en la localización y resolución de problemas, y otros servicios profesionales similares relacionados con el sistema.

Definir las verificaciones de seguridad e integridad: las verificaciones de seguridad y de integridad pueden considerarse parte del esquema conceptual. El DDL conceptual incluirá los medios para especificar dichas verificaciones.

Definir procedimientos de respaldo y recuperación: cuando una empresa se decide a utilizar un sistema de base de datos, se vuelve dependiente en grado sumo del funcionamiento correcto de ese sistema. En caso de que sufra daño cualquier porción de la base de datos – por causa de un error humano, digamos, o una falla en el equipo o en el sistema que lo apoya – resulta esencial poder reparar los datos implicados con un mínimo de retraso y afectando lo menos posible el resto del sistema. En teoría, por ejemplo la disponibilidad de los datos no dañados no debería verse afectada. El DBA debe definir y poner en practica un plan de recuperación adecuado que incluya, por ejemplo una descarga o "vaciado" periódico de la base de datos en un medio de almacenamiento de respaldo, y procedimientos para cargar otra vez la base de datos a partir de vaciado más reciente cuando sea necesario.

Supervisar el desempeño y responder a cambios en los requerimientos: es responsabilidad del DBA organizar el sistema de modo que se obtenga el desempeño que sea "mejor para la empresa", y realizar los ajustes apropiados cuando cambien los requerimientos.

Funciones del Administrador de Bases de Datos (KORTH)
Definición del esquema: el esquema original de la base de datos se crea escribiendo un conjunto de definiciones que son traducidas por el compilador de DDL a un conjunto de tablas que son almacenadas permanentemente en el DICCIONARIO DE DATOS.
Definición de la estructura de almacenamiento y del método de acceso: estructuras de almacenamiento y métodos de acceso adecuados se crean escribiendo un conjunto de definiciones que son traducidas por el compilador del lenguaje de almacenamiento y definición de datos.

Modificación del esquema y de la organización física: las modificaciones, tanto al esquema de la base de datos como a la descripción de la organización física de almacenamiento, aunque relativamente poco comunes, se logran escribiendo un conjunto de definiciones que son usadas bien por el compilador del DDL o bien por el compilador del lenguaje de almacenamiento y definición de datos para generar modificaciones a las tablas internas apropiadas del sistema (por ejemplo, el diccionario de datos).

Concesión de autorización para el acceso a los datos: la concesión de diferentes tipos de autorización permite al administrador de la base de datos regular qué partes de la base de datos van a poder ser accedidas por varios usuarios.

Especificación de las restricciones de integridad: las restricciones de integridad se mantienen en una estructura especial del sistema que consulta el gestor de la base de datos cada vez que tiene lugar una actualización en el sistema.