18
1 Copyright © Computer Aided Education, S.A. Propiedades de base de datos 1. TABLESPACES Y ARCHIVOS DE DATOS U na base de datos Oracle está constituida por una serie de archivos físicos que se almacenan en el sistema de archivos del equipo del servidor o en cualquier otro medio de almacenamiento configurado para ello. Existen tres tipos de archivos en una base de datos Oracle: archivos de datos, archivos de control y archivos redo log. En los archivos de datos es donde se almacena realmente la información de la base de datos. Sin embargo, el administrador no suele trabajar directamente con los archivos de datos, sino que lo hace con una estructura de carácter lógico llamada tablespace. Así pues, cuando creamos una tabla, un índice o cualquier otro objeto de esquema, nos encontramos con la posibilidad de indicar en qué tablespace queremos que se cree. Puede comprobar el conjunto de tablespaces de una base de datos a través del enlace Tablespaces de la página principal de administración. Cualquier base de datos Oracle consta, al menos, del tablespace SYSTEM, donde se almacenan todas las tablas y demás objetos de diccionario, que son objetos que permiten el buen funcionamiento de la base de datos.

Manual Oracle10g Lec17

Embed Size (px)

Citation preview

Page 1: Manual Oracle10g Lec17

1Copyright © Computer Aided Education, S.A.

Propiedades de base de datos

1. TABLESPACES Y ARCHIVOS DE DATOS

Una base de datos Oracle está constituida por una serie de archivos físicos que se almacenan en el sistema de archivos

del equipo del servidor o en cualquier otro medio de almacenamiento configurado para ello.

Existen tres tipos de archivos en una base de datos Oracle: archivos de datos, archivos de control y archivos redo log.

En los archivos de datos es donde se almacena realmente la información de la base de datos.

Sin embargo, el administrador no suele trabajar directamente con los archivos de datos, sino que lo hace con una estructura de carácter lógico llamada tablespace.

Así pues, cuando creamos una tabla, un índice o cualquier otro objeto de esquema, nos encontramos con la posibilidad de indicar en qué tablespace queremos que se cree.

Puede comprobar el conjunto de tablespaces de una base de datos a través del enlace Tablespaces de la página principal de administración.

Cualquier base de datos Oracle consta, al menos, del tablespace SYSTEM, donde se almacenan todas las tablas y demás objetos de diccionario, que son objetos que permiten el buen funcionamiento de la base de datos.

Page 2: Manual Oracle10g Lec17

2

Propiedades de bases de datos

Aunque podemos utilizar este tablespace para crear nuestros objetos, normalmente esto no es una buena idea, ya que es mejor que los objetos de usuario se almacenen en un tablespace distinto al de los objetos del sistema.

Nosotros siempre hemos creado objetos en el tablespace USERS, por lo que previamente tuvimos que asignarle una cuota en dicho tablespace al usuario TIENDA.

Como normalmente las bases de datos son creadas mediante el Asistente de Configuración de Base de Datos, es éste el que suele decidir qué tablespaces crear y con qué características. En este caso, el asistente creó el tablespace USERS por nosotros.

Veamos pues, las características de un tablespace.

Tablespace de archivo grande: activando esta característica, el tablespace constará únicamente de un archivo, que puede ser de gran tamaño, en lugar de varios archivos de datos más pequeños.

Este tipo tiene la ventaja de que sólo se maneja un archivo de datos por tablespace, por lo que minimiza el número de éstos, facilitando su administración.

Page 3: Manual Oracle10g Lec17

3Copyright © Computer Aided Education, S.A.

Propiedades de bases de datos

Como principal desventaja podemos indicar que el sistema de archivos tiene que disponer del suficiente espacio libre para permitir crecer el tablespace, ya que no podrá ser ampliado con la asignación de nuevos archivos de datos.

Gestión de extensiones: en esta sección podemos indicar si el espacio libre del tablespace debe ser gestionado localmente por el mismo tablespace o externamente en otra estructura almacenada en el diccionario de la base de datos.

Normalmente la gestión local del tablespace proporciona mejores prestaciones.

Tipo: aquí indicaremos si el tablespace se ha creado con el propósito de almacenar datos (tipo permanente) o como espacio para resultados temporales de consultas, operaciones de ordenación, etc.

Al crear un usuario se indica tanto el tablespace predeterminado (en el que creará objetos) como el tablespace temporal (donde se almacenarán sus resultados intermedios).

Un tercer tipo de tablespace es el Deshacer. Este tipo de tablespace se crea como espacio de almacenamiento para la información necesaria a la hora de deshacer operaciones en la base de datos. Por ejemplo, cuando se ejecuta el comando ROLLBACK para cancelar una transacción.

Estado: en este apartado el administrador puede establecer o modificar el estado del tablespace. Las opciones son:

Online o disponible.Offline o deshabilitado.Sólo lectura o disponible sólo para la consulta, no para la modificación de los datos.

Por ejemplo, el administrador podría poner en offline un tablespace para realizar alguna operación de mantenimiento, como realizar una copia de seguridad o restaurar una copia anterior.

También podría poner un tablespace en modo de sólo lectura para que nadie pueda modificar la información almacenada en él.

Page 4: Manual Oracle10g Lec17

4

Propiedades de bases de datos

El único tablespace que no puede ponerse nunca en offline es el tablespace SYSTEM.

El tablespace SYSTEM siempre está online, ya que en él se almacena la información del diccionario de la base de datos, información que es necesaria para el buen funcionamiento de ésta.

Cuando un tablespace se pone offline, online o en modo sólo lectura, se está haciendo lo propio para todos sus archivos de datos.

En la sección Archivos de datos vemos los archivos que constituyen el tablespace.

Un archivo de datos sólo puede pertenecer a un tablespace, aunque un tablespace puede estar formado por varios archivos de datos. Aquí encontraremos su ubicación o directorio del sistema de archivos del servidor, el tamaño con el que se creó y el espacio utilizado actualmente.

Editando un archivo de datos podremos comprobar que se pueden poner offline de forma individual. Esto significa que podríamos habilitar parcialmente un tablespace.

Todo esto debe conocerlo para poder solucionar los problemas que encontrará. Así, imagine que el disco duro donde reside este archivo de datos se está quedando si espacio.

Una posible solución para permitir que el tablespace siga creciendo para almacenar los datos, sería crear otro archivo de datos en un disco duro diferente. Para ello, agregaríamos el nuevo archivo en la lista Archivos de Datos.

En la ficha Almacenamiento del tablespace encontramos los detalles técnicos de cómo se asigna el espacio necesario para el tablespace; si las operaciones efectuadas sobre él deben quedar almacenadas en los archivos de registro y el tamaño del bloque del disco.

Normalmente, este último detalle coincide con el del sistema operativo.

Por ejemplo, en un tablespace temporal no tiene sentido activar la opción de registro, ya que las operaciones que se realizan en él no tiene por qué ser canceladas para volver a un estado coherente de los datos.

Page 5: Manual Oracle10g Lec17

5Copyright © Computer Aided Education, S.A.

Propiedades de bases de datos

Finalmente, en la ficha Umbrales se establecen los umbrales, sobrepasados los cuales, se generarán alertas en cuanto al espacio libre disponible en el tablespace.

Por ejemplo, la configuración de la figura siguiente indica que se creará una alerta para el administrador cuando el espacio ocupado en el tablespace alcance el 85% del mismo. Se puede establecer este umbral de advertencia y de mensaje crítico utilizando porcentajes o valores absolutos.

Page 6: Manual Oracle10g Lec17

6

Propiedades de bases de datos

Todas estas opciones son las que se establecen al crear un tablespace y sus correspondientes archivos de datos.

En resumen, debemos entender que el administrador trabaja principalmente con tablespaces, aunque éstos pueden estar constituidos físicamente por uno o varios archivos de datos.

Al trabajar con tablespaces, es mucho más cómodo realizar operaciones habituales, como poner offline u online los datos, realizar copias de seguridad y su restauración, etc.

Aunque la información se almacena en los archivos de datos, existen dos tipos más de archivos necesarios para el buen

funcionamiento de la base de datos: los archivos de control y los redo log.

Utilizará el enlace Archivos de Control de la página principal de administración para trabajar con los primeros.

Toda base de datos tiene, al menos, un archivo de control, que se utiliza tanto en el momento de iniciar la base de datos como durante su uso.

En los archivos de control Oracle realiza un seguimiento de la estructura física de la base de datos, por lo que cualquier cambio en los archivos de datos o archivos redo log, que después veremos, es registrado en los archivos de control.

2. ARCHIVOS DE CONTROL Y REDO LOGS

Page 7: Manual Oracle10g Lec17

7Copyright © Computer Aided Education, S.A.

Propiedades de bases de datos

Entre otras cosas, en un archivo de control se almacena información como:

El nombre de la base de datos. El momento de su creación. El nombre y ubicaciones de los archivos de datos y archivos

redo log. Información referente a los tablespaces. Información sobre copias de seguridad y recuperación.

Oracle recomienda crear más de un archivo de control en cada base de datos y aconseja que estén en discos duros distintos ante posibles problemas en alguno de ellos.

Es el servidor el que se encarga de mantener las copias idénticas de los archivos de control. Esto significa que si el archivo de control en uso sufre algún problema, será el propio servidor (sin intervención del administrador) el que utilizará otra de las copias disponibles.

En la figura anterior vemos que la base de datos dispone de tres archivos de control y comprobamos su ubicación.

Desde Enterprise Manager no podemos crear nuevos archivos de control, sino que esto se trata de un detalle que se establece ente los parámetros de inicialización de la base de datos.

Por otra parte, Oracle utiliza otro tipo de archivos: los archivos redo log. Estos archivos se utilizan ante posibles errores de funcionamiento del servidor de base de datos o del propio hardware.

Utilizará el enlace a Grupo de Redo Logs de la página principal de administración para trabajar con estos archivos.

Como en el caso de los archivos de control, Oracle recomienda crear más de un archivo redo log. Además, es el propio servidor el que se encarga de mantener las copias idénticas de todos ellos.

La principal función de un archivo redo log es registrar todos los cambios realizados sobre los datos.

Por ejemplo, si ocurre un corte del flujo eléctrico durante la realización de una transacción, Oracle utiliza el archivo redo log activo para poder recuperar la información de la transacción o transacciones que se estaban realizando justo en ese momento.

Page 8: Manual Oracle10g Lec17

8

Propiedades de bases de datos

Desde esta página podremos crear más archivos redo log. Como en el caso de los archivos de control, sería interesante que se guardaran en discos duros distintos.

Para poder acceder a la información almacenada en una base de datos Oracle, no sólo es necesario disponer de los distintos

archivos que la constituyen, sino que es necesario crear una serie de procesos y disponer de memoria en el servidor.

Esta memoria reservada para atender las solicitudes de acceso por parte de usuarios y aplicaciones, así como los proceso que se crean para ello, se conoce como instancia de la base de datos.

Si la instancia no se ha iniciado, los datos seguirán estando disponibles físicamente, pero no se podrá acceder a ellos de ninguna forma.

Por lo tanto, es tarea del administrador conocer qué parámetros de memoria y procesos utiliza Oracle y saber cómo modificarlos si es necesario.

Para ello, utilizará el enlace Parámetros de memoria del apartado Configuración de la Base de Datos de la página principal de administración.

3. MEMORIA Y PROCESOS

Page 9: Manual Oracle10g Lec17

9Copyright © Computer Aided Education, S.A.

Propiedades de bases de datos

La memoria que utiliza la instancia se clasifica en dos tipos:

Memoria SGA (Área Global del Sistema): o también conocida como área de memoria compartida, ya que es una zona de memoria a la que acceden los procesos de todos los usuarios conectados a la base de datos.

Memoria PGA (Área Global de Programas): es la memoria que se reserva particularmente para cada proceso de usuario.

La memoria SGA es un área en la que se almacena una serie de componentes con el propósito de mejorar las prestaciones del servidor ante las peticiones de los procesos de usuario.

Por ejemplo, el componente Pool compartido se utiliza para mantener una caché con las últimas consultas PL/SQL realizadas.

Esto significa que consiguientes consultas podrían aprovechar la información almacenada en la SGA, sin necesidad de volver a leer los datos físicos de la base de datos.

Oracle simplifica muchísimo la tarea del administrador en esta versión de su base de datos, ya que proporciona la Gestión Automática de Memoria Compartida.

Esto quiere decir que es el propio servidor el que se encarga de establecer el tamaño y umbrales óptimos en cada caso.

Page 10: Manual Oracle10g Lec17

10

Propiedades de bases de datos

Sin embargo, si el administrador desea experimentar o cambiar estos valores, aquí lo puede hacer.

Por ejemplo, si ha añadido memoria RAM al equipo servidor, tal vez desee ampliar la memoria SGA o solicitar que Oracle vuelva a revisar este aspecto con el botón Consejo.

En cuanto a la memoria PGA, indicaremos las características de la memoria que se utiliza cada vez que se crea un proceso para atender una solicitud de un usuario o aplicación cliente.

Durante la creación de estos procesos en el servidor, se asigna memoria desde la reservada como PGA. El total que queremos poner a disposición del servidor con este propósito es el valor que aparece aquí.

Oracle cambia dicha cantidad en función de la carga que recibe el servidor.

Como consejo fundamental, Oracle recomienda disponer de suficiente memoria RAM física para cubrir la suma de la memoria compartida o SGA más la memoria total PGA.

Y es que, si el servidor se ve obligado a utilizar memoria virtual, las prestaciones disminuirán considerablemente.

Finalmente, debemos estudiar la parte de los procesos de una instancia de base de datos.

Oracle crea un proceso en el servidor tanto para ejecutar el código propio del servidor como para las conexiones realizadas por usuarios o aplicaciones cliente.

Page 11: Manual Oracle10g Lec17

11Copyright © Computer Aided Education, S.A.

Propiedades de bases de datos

Sin embargo, puede hacerlo de dos formas distintas, en función del modo de servidor elegido para las conexiones.

Servidor Dedicado: en este modo, para cada conexión se crea un proceso independiente en el servidor.

Servidor Compartido: en este modo, varios procesos de usuario pueden compartir un número reducido de procesos del servidor. Cada proceso de servidor puede, por lo tanto, atender varios procesos de usuario.

Este modo de funcionamiento puede mejorar las prestaciones de un servidor que atiende muchas solicitudes simultáneas incluso sin necesidad de ninguna ampliación de hardware.

Una forma de decidirse por un modo de funcionamiento u otro es pensar si las conexiones establecidas con el servidor estarán continuamente intercambiando datos o puede producirse períodos de espera.

Si se pueden producir períodos en que la conexión realmente no se utiliza, puede ser conveniente utilizar el modo servidor compartido, ya que en esos períodos, el servidor atenderá otras conexiones.

Page 12: Manual Oracle10g Lec17

12

Propiedades de bases de datos

Finalizamos este recorrido demostrativo de lo que es una base de datos y una instancia de Oracle estudiando los parámetros

que se utilizan durante el proceso de inicialización de la instancia en el servidor.

Estos parámetros pueden venir proporcionados en un archivo de texto que el administrador crea para configurar adecuadamente el servicio de Oracle (archivo PFILE), o en formato binario, que el administrador no puede editar directamente, pero sí con herramientas como Enterprise Manager (archivo SPFILE).

Para acceder al conjunto de parámetros de inicialización, pulse en el enlace Todos los Parámetros de Inicialización de la página principal de administración de Enterprise Manager.

Utilizando los filtros que encontramos en la parte superior de la página, podremos limitar la lista de parámetros a aquellos que nos interesa consultar o modificar en un momento dado.

Por ejemplo, podríamos consultar los parámetros de inicialización referentes a la memoria reservada para el área SGA y para cada proceso o PGA. Para ello, elegiríamos la categoría Memoria.

En la lista de parámetros disponemos de varias columnas de información:

Nombre: nombre del parámetro, tal como aparece en el archivo de inicialización.

4. PARÁMETROS DE INICIALIZACIÓN

La principal ventaja de utilizar un

archivo SPFILE es que los

cambios efec-tuados durante

el funciona-miento de la

instancia que-dan guardados

y se aplican en posteriores

inicios de la misma. Esto no

ocurre con un archivo PFILE, que es de sólo lectura duran-

te el funcio-namiento del

servidor.

Page 13: Manual Oracle10g Lec17

13Copyright © Computer Aided Education, S.A.

Propiedades de bases de datos

Ayuda: ayuda descriptiva del parámetro. Valor: valor actual. Si aparece en un campo editable, quiere

decir que se puede cambiar dinámicamente; si no, quiere decir que la instancia tiene que ser reiniciada para ello.

Comentarios Tipo: tipo de datos del valor. Básico: representa un valor establecido durante la creación de

la base de datos. Modificado: si se ha modificado alguna vez desde la creación

de la base de datos. Dinámico: si puede cambiarse sin necesidad de reiniciar la

instancia. Categoría: categoría en la que está clasificado el parámetro.

Por ejemplo, vemos que el parámetro sga_target tiene el valor actual de 584 megabytes, que es la memoria reservada para el área SGA.

Vemos que se trata de un valor dinámico, es decir, que podríamos cambiar aquí y el efecto se aplicaría inmediatamente, sin necesidad de reiniciar la instancia.

En la página siguiente puede ver los parámetros NLS, que establecen las características de globalización de la instancia.

Los ajustes nls_language y nls_territory determinan la mayoría de detalles que aplica el servidor o instancia cuando introducimos valores de fecha, moneda, numéricos, etc.

Page 14: Manual Oracle10g Lec17

14

Propiedades de bases de datos

Vemos que la instancia tiene establecido nls_language y nls_territory en valores adecuados para el idioma español y España. Esto quiere decir, entre otras cosas:

- Que las fechas se interpretarán como dd/mm/aaaa, es decir, primero dos dígitos para el día, después dos dígitos más para el mes y, finalmente, cuatro dígitos para el año.- Que el punto se tomará como separador de miles y la coma como indicador de parte decimal en los valores numéricos.- El orden que se aplica en la cláusula WHERE de las consultas es adecuado para el idioma español.

Sin embargo, aunque estos dos parámetros permiten establecer rápidamente toda esta configuración, disponemos de todas esas características, de forma independiente, como otros parámetros.

Por ejemplo, modificando el parámetro nls_date_format podríamos especificar un formato predeterminado con el que queremos que se muestren e interpreten las fechas.

Tenga en cuenta que todos estos parámetros que se muestran aquí son parámetros de la instancia de la base de datos. Las aplicaciones que se conectan con la instancia pueden determinar otros parámetros, conocidos como parámetros de sesión, y éstos serán los que se apliquen en dicha conexión.

Vemos, por lo tanto, que se dispone de tres conjuntos de parámetros (indicados aquí de menor a mayor preferencia):

Parámetros de base de datos: los establecidos durante la creación de la base de datos.

Parámetros de instancia: los establecidos para la instancia en particular.

Parámetros de sesión: establecidos para la conexión en particular.

Page 15: Manual Oracle10g Lec17

15Copyright © Computer Aided Education, S.A.

Propiedades de bases de datos

Como se ha comentado al principio, estos parámetros se leen durante la inicialización de la instancia y pueden modificarse dinámicamente en algunos casos.

Sin embargo, cuando la instancia se cierra, los cambios se pierden si no se han guardado en un archivo SPFILE.

Para que así sea, en lugar de cambiar el valor en la ficha Actual de esta página, deberá hacerlo en la ficha SPFile.

Cualquier valor que se modifique en esta última ficha será almacenado en el archivo SPFile, que Oracle busca durante la inicialización de la instancia.

SPFILE es un archivo binario, lo que quiere decir que no puede ser editado directamente sino mediante esta ficha de Enterprise Manager.

La ventaja de utilizar este tipo de archivo y no los archivos de texto tradicionales, es que los cambios que se efectúen durante el uso normal de la base de datos se aplicarán en futuros reinicios de la instancia.

Si los cambios se efectúan sobre parámetros dinámicos, no será necesario reiniciar la instancia; si son parámetros estáticos, sí que deberemos hacerlo.

Vale la pena, ahora que tenemos muchos más conocimientos sobre Oracle, volver a utilizar la herramienta Asistente de

Configuración de Bases de Datos.

De esta forma, entenderemos que el asistente nos realiza preguntas, durante la creación de una base de datos, que afectan a todos estos parámetros y que después determinan cómo funcionará la instancia de la base de datos.

Así, el tipo o plantilla que deseamos utilizar para crear la base de datos ya puede determinar algunas características que afectarán al posterior funcionamiento de la instancia de base de datos.

Por ejemplo, los ajustes de inicialización no son los mismos para una base de datos especializada en operaciones transaccionales (OLTP) que para tareas de análisis (OLAP).

5. ASISTENTE DE CONFIGURACIÓN DE BASES DE DATOS

Page 16: Manual Oracle10g Lec17

16

Propiedades de bases de datos

En otro paso indicaremos dónde queremos que se almacenen los archivos de la base de datos. Ahora ya sabemos que hay de distintos tipos, por lo que podríamos indicar una ubicación específica para después realizar fácilmente las copias de seguridad.

El Área de Recuperación de Flash es el lugar predeterminado para las copias de seguridad de la base de datos. En otro paso podríamos indicar dónde queremos que se almacenen los archivos redo log, así como su tamaño.

En el paso 10, que muestra la figura siguiente, podremos establecer varios ajustes ahora que conocemos mejor la arquitectura de una base de datos Oracle.

En el apartado Memoria podríamos configurar los valores iniciales para el área SGA y PGA, así como si queremos que la administración de la memoria sea manual o automática (recomendado).

En el apartado Tamaño podremos establecer el tamaño del bloque o unidad mínima de asignación de espacio en disco y el número máximo de procesos de usuario que se pueden conectar simultáneamente a la base de datos.

En el apartado Juego de Caracteres podemos indicar si queremos crear una base de datos Unicode, es decir, que toda la información textual se almacene con el juego de caracteres AL32UTF8 o con un juego de caracteres distinto.

Page 17: Manual Oracle10g Lec17

17Copyright © Computer Aided Education, S.A.

Propiedades de bases de datos

Por defecto, se utiliza el juego de caracteres del sistema operativo.

Es importante entender que si elegimos la segunda opción, es decir, AL32UTF8, toda la información se almacena en Unicode en la base de datos, aunque no utilicemos un tipo de datos Unicode.

En este caso, los campos o variables de tipo CHAR, VARCHAR2 o CLOB guardarían el texto en Unicode, codificación UTF-8.

En cualquier caso, la lista Juego de Caracteres Nacional hace siempre referencia al formato utilizado para los tipos de datos que empiezan por una N (national), como NCHAR, NVARCHAR2 o NCLOB.

En una base de datos Oracle, podemos elegir entre UTF-8 y UTF-16 para estos tipos de datos.

Vemos que aquí también podemos indicar el idioma y el formato de fecha por defecto. Aunque ya conocemos que éstas son características que se establecen mediante los parámetros de inicialización NLS.

Finalmente, en la ficha Modo de Conexión indicaremos qué modo de funcionamiento queremos aplicar para las conexiones con la nueva base de datos: servidor dedicado o servidor compartido.

La experiencia es un grado muy importante para un administrador de bases de datos.

Cree bases de datos Unicode

siempre que pueda inte-ractuar con

aplicaciones de distintos

idiomas.

Page 18: Manual Oracle10g Lec17

18

Propiedades de bases de datos

Está claro que usted no puede (ni debe) retener toda esta información. Sin embargo, ahora tiene los conocimientos necesarios para acudir a las herramientas adecuadas y solicitar la información que necesita en cada caso.