Cerrar

Enviar mensaje

twitter FaceBook You Tube Git Hub Docs.com Enviar email

Manual de Administración de Bases de Datos

[4]
Configuración de Oracle Database

Publicidad

[4.1] elementos de gestión de servidores de Oracle

En la configuración y gestión de SistemasOracle Database tenemos diversos elementos a tener en cuenta:

Database Control es parte del Oracle Eterprise Manager, es una consola gráfica que permite gestionar bases de datos Oracle independientes (que no funcionan de forma distribuida).

Normalmente Database Control está disponible en

https://localhost:1158/em

Si no se ha arrancado, el comando de arranque es:

emctl start dbconsole

El comando para detener Database Control es:

emctl stop dbconsole

El comado para ver el estado de Database Control es:

emctl status dbconsole 

[4.1.2]acceso mediante SQL*Plus

Desde la línea de comandos, en el servidor, disponemos del comando sqlplus. Lo normal es conectar en modo anónimo:

# sqlplus /nolog

Pero podemos conectar indicando usuario y contraseña. Posibilidades:

También es posible, tras conectar con Oracle, cambiar de usuario con el comando connect. Este comando tiene las mismas posibilidades:

SQL*Plus admite lanzar scripts, código SQL, al conectar. Ejemplo:

sqlplus hr/hr @inicio.sql

Este comando conecta con el usuario hr (su contraseña también es hr) y lanza las instrucciones SQL contenidas en el archivo inicio.sql.

Si ya estamos dentro de SQL*Plus:

SQL>@inicio.sql

[4.2] manejo de la instancia de la
base de datos

[4.2.1]estados de arranque

Una base de datos Oracle puede estar en uno de estos cuatro estados:

Para iniciar la base de datos se usa el comando STARTUP seguido del nombre del estado deseado. Por ejemplo:

STARTUP MOUNT

Sin indicar estado alguno (escribiendo STARTUP, a secas), se inicia Oracle en modo OPEN.

El comando ALTER DATABASE seguido del estado permite cambiar de estado (solo podremos cambiar hacia estados superiores). Ejemplo:

ALTER DATABASE OPEN;

1modo de sesión restringida

Es un modo especial de trabajo en el que la base de datos está abierta, pero solo se permite el acceso a usuarios con permiso RESTRICTED (lo poseen los administradores) para hacer tareas especiales de administración. Uso:

STARTUP RESTRICTED

Si la instancia ya estaba abierta es:

ALTER SYSTEM ENABLE RESTRICTED SESSION;

Y si lo que queremos es desactivar el modo restringido para pasar a modo normal:

ALTER SYSTEM DISABLE RESTRICTED SESSION;

[4.2.3]parada

Una instancia cuando es arrancada, hasta estar disponible atraviesa todos los estados anteriores.

El comando de apagado de la instancia es SHUTDOWN, su sintaxis:

SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT]

Las opciones son:

Requiere de estos comandos

[1]Necesitamos cortar la instancia actual:

SHUTDOWN IMMEDIATE;

[2]Iniciar la base de datos en modo MOUNT

STARTUP MOUNT EXCLUSIVE RESTRICT;

[3]Borrar

DROP DATABASE;

Borrar una base de datos requiere de muchísima prudencia, ya que no se puede deshacer y podemos hacer desparecer cantidades enormes de datos importantes.

Otra opción (más fácil) es usar el asistente dbca para eliminar la base de datos. Basta lanzarlO con el comando dbca y después elegir la base de datos a borrar y seguir los pasos.

[4.3] parámetros de Oracle

Oracle dispone de una serie (muy extensa) de parámetros que sirven para configurar la base de datos y la instancia de Oracle. Los parámetros se almacenan en archivos especiales que son leídos por la instancia de Oracle antes de iniciarse, para así hacerlo con la configuración que indica el archivo (o archivos) de parámetros.

El archivo de parámetros puede ser:

Por defecto Oracle utiliza un archivo binario al arrancar. Es la recomendación actual en Oracle Database desde la versión 11g. La razón es que se les considera más rápidos y la información que contienen es menos accesible.

El problema es que los SPFILE no son editables de forma independiente a Oracle. Por lo que si cometimos un error en un parámetro y Oracle no arranca, no podremos modificar el parámetro directamente en el archivo.

[4.3.1]ubicación del archivo de parámetros

En Oracle 11g el archivo de parámetros SPFile (que es el que se usa por defecto), está en:

En el caso de no disponer de SPFile, Oracle puede utilizar un archivo de texto PFILE para almacenar parámetros. Su ubicación sería:

En los archivos de texto PFILE la información se almacena de esta forma:

nombreParámetro = valor

Si es un parámetro que puede contener varios valores su sintaxis es:

nombreParámetro = (valor1 [,valor2 [,…]])

O bien podemos repetir el parámetro y asignar un valor en cada línea. Ejemplo:

control_files=’/u01/app/oracle/oradata/centora/control01.ctl’
control_files=’/u02/app/oracle/oradata/centora/control02.ctl’
control_files=’/aux/back/control03.ctl’

El código anterior asigna tres archivos de control a la base de datos.

En los archivo PFILE los comentarios se ponen con el símbolo #.

Los archivos de tipo PFILE permiten su modificación directa en el archivo. Pero hay que tener un extremo cuidado al hacerlo ya que un solo error podría provocar que dicho archivo quedara inutilizable como archivo de parámetros.

Independientemente del tipo de archivo utilizado para almacenar los parámetros, los valores de los parámetros pueden ser distintos en el archivo respecto al valor que la base de datos utiliza en cada momento. El contenido de los archivos se ejecuta al iniciar la base de datos, pero luego durante la ejecución se pueden modificar.

[4.3.2]gestión de los archivos de parámetros

Como hemos comentado se usa normalmente un archivo binario SPFILE para contener los parámetros. Pero es lógico disponer de una copia en formato PFILE para el caso en el que el sistema no arranque y necesitemos modificar directamente el archivo de parámetros.

Por ello Oracle nos permite estas posibilidades con los archivos de parámetros:

1arranque con un archivo PFILE

Como se ha comentado Oracle Database arranca usando un archivo SPFILE. Pero si necesitamos arrancar usando un archivo de texto PFILE, podemos arrancar Oracle usando la sintaxis:

STARTUP PFILE=’ruta’

[4.3.3]cargar parámetros en el arranque de la base de datos

Por defecto Oracle busca los archivos de parámetros por defecto según el nombre y ruta explicados en el apartado anterior. Concretamente partiendo de la ruta habitual para los archivos de parámetros (ORACLE_HOME/dbs o ORACLE_HOME/database) el orden de carga es;

[1]Archivo SPFILE de nombre spfileSID.ora

[2]Archivo SPFILE de nombre spfile.ora

[3]Archivo PFILE de nombre initSID.ora

[4]Archivo PFILE de nombre init.ora

Pero podemos forzar a que se cargue un archivo PFILE que nosotros indiquemos. Para ello basta arrancar con:

STARTUP PFILE=rutaArchivoPFILE

No podemos arrancar forzando a usar un archivo concreto SPFILE, siempre se usa el SPFILE de la ruta por efecto (si deseamos otro habrá que sustituirle).

[4.3.4]funcionamiento de los parámetros

1tipos de parámetros

2parámetros de inicialización

Estos parámetros determinan como funcionará la instancia de base de datos y sus valores se usan durante el arranque de la base de datos. Hay dos tipos:

A la hora de modificar parámetros, tenemos dos posibilidades:

Los parámetros de sistema se modifican con:

ALTER SYSTEM SET parámetro=valor
	[COMMENTS = comentarios][DEFERRED]
	[SCOPE={SPFILE | MEMORY | BOTH }];

SCOPE controla cuando se produce el efecto del parámetro:

Ejemplo:

ALTER SYSTEM SET sessions=200 SPFILE;

En este caso dejamos el límite de sesiones concurrentes a 200; pero tendrá vigor cuando reiniciemos la base de datos ya que hemos indicado que esta modificación se grabe en el archivo y no se aplique ahora mismo.

En el caso de modificar parámetros con ALTER SESSION, no posee las cláusulas MEMORY, BOTH, SPFILE ni DEFERRED, ya que no tienen sentido para modificar los parámetros de una sesión.

[4.3.6]mostrar valor de los parámetros

Tenemos las siguientes posibilidades:

opción

uso

SHOW PARAMETER nombre

En SQL*Plus, nos muestra los parámetros referentes a la sesión actual

SHOW SPPARAMETER nombre

En SQL*Plus nos enseña los valores de los parámetros almacenados en el SPFILE

SELECT * FROM V$PARAMETER WHERE
UPPER(name) LIKE ‘%
nombre%’

Vista del diccionario de datos con los valores actuales de los parámetros

SELECT * FROM V$SPPARAMETER WHERE
UPPER(name) LIKE ‘%
nombre%’

Vista del diccionario de datos con los valores de los parámetros en el SPFILE

SELECT * FROM
V$SYSTEM_PARAMETER
WHERE
UPPER(name) LIKE ‘%
nombre%’

Valores de los parámetros que afectan a la instancia actual de la base de datos

El comando SHOW PARAMETER muestra los parámetros que actúan en la sesión actual; SHOW SPPARAMETER muestra los del archivo SPFILE que sea el actual. La vista V$PARAMETER contiene los parámetros actuales de la sesión, V$SYSTEM_PARAMETER contiene los parámetros del sistema y V$SPFILE los del archivo SPFILE se usen o no.

[4.3.7]algunos parámetros

1información global

parámetro

valor

DB_NAME

Nombre de la base de datos.

DB_DOMAIN

Dominio al que pertenece la base de datos.

DB_UNQ_NAME

Nombre único de base de datos. Se usa para diferenciar instancias con el mismo nombre de base de datos en sistemas distribuidos.

COMPATIBLE

Versión de Oracle Database compatible con la instancia de base de datos

CONTROL_FILES

Ruta a los archivos de control (pueden ser varios valores)

DIAGNOSTIC_DEST

Ruta, por defecto, inicial a los archivos log y de traza.

LOG_ARCHIVE_DEST_N

Ruta en la que se almacenará el archivo histórico redo log nº n

DB_RECOVERY_FILE_DEST

Ruta al directorio de recuperación de la base de datos

DB_RECOVERY_FILE_DEST_SIZE

Tamaño del área Flash de recuperación

DB_CREATE_FILE_DEST

Ruta para los archivos de datos gestionados por Oracle. Por defecto vale NULL y la ruta será la habitual (según el modelo OFA).

DB_FILES

Máximo número de archivos de base de datos que pueden ser abiertos por Oracle

DB_FLASH_CACHE_FILE

Ruta al archivo del área Flash de recuperación

DB_FLASH_CACHE_SIZE

Tamaño del archivo anterior

SESSIONS

Máximo número de sesiones concurrentes permitidas

PROCESSES

Máximo número de procesos que puede lanzar la base de datos

SHARED_SERVERS

Número de procesos servidores a crear al iniciar la instancia.

LOG_CHECKPOINT_INTERVAL

Contiene el número de bloques máximos que se escriben en los redo log antes de que se produzca un checkpoint

LOG_CHECKPOINT_TIMEOUT

Intervalo en segundos máximo que se deja sin que se produzca un checkpoint.

LOG_CHECKPOINT_TO_ALERT

Indica si los checkpoints se graban en el archivo de alertas

MAX_DUMP_FILE_SIZE

Tamaño máximo en bloques del sistema operativo de los archivos de traza

BACKGROUND_DUMP_DEST

Destino del archivo de alertas (alert log) y de traza

USER_DUMP_DEST

Destino de los archivos de traza sobre los procesos de usuario

LOG_ARCHIVE_TRACE.

Permite grabar en archivos de trazado la actividad de los históricos redo log.

SGA_MAX_SIZE

Tamaño máximo de la SGA

SGA_TARGET

Con valor distinto de cero indica que el tamaño de la SGA se gestionará automáticamente si es cero la gestión es manual

SHARED_POOL_SIZE

Tamaño del área compartida de la SGA

LARGE_POOL_SIZE

Tamaño del Large Pool

JAVA_POOL_SIZE

tamaño del pool de Java

DB_CACHE_SIZE

Tamaño de la caché de búferes de datos

LOG_BUFFER

Tamaño del búfer Redo Log.

DB_BLOCK_SIZE

Tamaño del bloque de Oracle (de 2 a 32 K)

DB_KEEP_CACHE_SIZE

Tamaño del búfer de retención de bloques de datos del esquema en memoria

DB_RECYCLE_CACHE_SIZE

Tamaño de la papelera de Oracle

STREAMS_POOL_SIZE

Tamaño del búfer para Streams

WORKAREA_SIZE_POLICY

Puede vale manual o auto. Si elegimos manual podremos modificar los siguientes parámetros de uso de la PGA:

SORT_AREA_SIZE

HASH_AREA_SIZE

BITMAP_MERGE_AREA_SIZE

CREATE_BITMAP_AREA_SIZE

OPEN_CURSORS

Número máximo de cursores

REMOTE_LOGIN_PASSWORDFILE

Indica si Oracle busca un archivo de contraseñas. Puede ser: shared (compartido por varias bases de datos), exclusive (solo se usa en una) o none (no se usa archivo de contraseñas)

NLS_LANGUAGE

Lenguaje de la instancia de base de datos. Depende del Sistema Operativo (de la variable de sistema NLS_LANG). Solo se puede modificar para la sesión.

NLS_DATE_FORMAT

Formato de fecha

NLS_NUMERIC_CHARACTERS

Formato nacional de números

NLS_CURRENCY

Formato de moneda

Más información en:

https://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams.htm

[4.4] diccionario de datos en Oracle

En el caso de Oracle, no utiliza el esquema estándar INFORMATION_SCHEMA para consultar el diccionario de datos, en su lugar usa una serie de vistas que comienzan con estos términos:

Así USER_TABLES es la vista que muestra todas las tablas del usuario actual. Otras vistas son (disponibles con el prefijo USER_, DBA_ o ALL_):

Vistas estáticas a usar con el prefijo USER_ ALL_ o USER_

Uso

TABLES

Muestra todas las tablas accesibles desde nuestro usuario.

COLUMNS

Muestra las columnas de las tablas.

CONSTRAINTS

Restricciones

COLS_CONSTRAINTS

Restricciones indicando las columnas implicadas

VIEWS

Vistas

TRIGGERS

Lanzadores de código

SEQUENCES

Secuencias

SYNONYMS

Sinónimos

TAB_COLUMNS

Columnas de las tablas

TYPES

Tipos definidos en la base de datos

VARRAYS

Información sobre los datos de tipo VARRAY definidos en la base de datos

OBJECTS

Objetos de esquema

CATALOG

Lista tablas, vistas, sinónimos y secuencias

DEPENDENCIES

Lista las dependencias de los procedimientos, funciones y triggers

TABLESPACES

Tablespaces

SEGMENTS

Segmentos

FREE_SPACE

Información sobre las extensiones libres en cada tablespace

EXTENTS

Extensiones

INDEXES

Índices

INDEXTYPES

Tipos de índices

SYS_PRIVS

Lista de privilegios de usuario

TAB_PRIVS

Privilegios de los objetos

ROLES_SYS_PRIVS

Lista de roles y privilegios

AUDIT_SESSIONS

Auditoría de sesiones

FLASHBACK_ARCHIVE

Archivos del repositorio Flashback

FLASHBACK_ARCHIVE_TABLES

Tablas marcadas para ser usadas en modo Flashback

FLASHBACK_ARCHIVE_TS

Tablespaces almacenados en modo Flashback

UNUSED_COL_TABS

Columnas que están sin uso en la base de datos

USTATS

Estadísticas de usuario sobre el uso de los objetos por parte de los usuarios

Las siguientes vistas estáticas sólo están disponibles para los usuarios de tipo DBA:

Vista estática

Uso

DICTIONARY

Lista de las vistas del diccionario de datos

DBA_USERS

Usuarios de la base de datos

DBA_ROLES

Roles de la base de datos

DBA_PROFILES

Perfiles de usuario

DBA_TS_QUOTAS

Cuotas de los usuarios

DBA_DIRECTORIES

Objetos de directorio

DBA_DATAFILES

Archivos de datos y pertenencia a los Tablespaces

DBA_TEMP_FILES

Archivos de los tablespaces temporales

DBA_TABLESPACE_GROUPS

Información sobre grupos de tablespaces

DBA_TEMP_FREE_SPACE

Total de espacio libre en los tablespaces temporales

DBA_ROLLBACK_SEGS

Información sobre los segmentos de tipo Rollback

DBA_UNDO_EXTENTS

Extensiones de los tablespaces de tipo deshacer

DBA_HIST_UNDOSTAT

Información histórica mediante instantáneas (snapshots) del uso del espacio de tipo deshacer

DBA_PART_TABLES

Información sobre las tablas particionadas

DBA_RECYCLE_BIN

Información sobre las papeleras del sistema

DBA_THRESHOLD

Umbrales de alerta definidos

DBA_OUTSTANDING_ALERTS

Listado de alertas excepcionales en la base de datos

DBA_ALERT_HISTORY

Historial de alertas ya borradas

DBA_BLOCKERS

Sesiones que están bloqueando objetos por cuyo uso otras sesiones están en estado de espera

DBA_WAITERS

Sesiones en estado de espera por un objeto bloqueado

DBA_DDL_LOCKS

Bloqueos DDL

DBA_DML_LOCKS

Bloqueos DML

DBA_LOCKS

Todos los bloqueos

DBA_ERRORS

Errores almacenados en la base de datos

DBA_AUDIT_POLICIES

Políticas de auditoría

DBA_OBJ_AUDIT_OPT

Opciones de auditoria de objetos

DBA_IND_COLUMNS

Columnas de los índices

DBA_IND_STATS

Estadísticas sobre los índices en uso

DBA_RULES

Reglas de la base de datos

DBA_SERVICES

Servicios de la base de datos

Hay otras vistas que se generan dinámicamente, es decir contienen información que va cambiando durante la ejecución de la base de datos. Se las distingue porque comienzan con el texto V$:

Vistas dinámicas

Uso

V$INSTANCE

Muestra el estado de la instancia de la base de datos

V$PARAMETER

Lista de los parámetros y sus valores actualmente en funcionamiento

V$system_parameter

Parámetros del sistema

V$SPPARAMETER

Muestra el valor de los parámetros en el archivo SPFILE de parámetros actual

V$DATABASE

Información sobre la base de datos activa

V$SESSION

Sesiones activas

V$PROCESS

Procesos activos

V$SESS_IO

Contiene estadísticas de entrada/salida por cada usuario

V$SESSION_LONGOPS

Estado de las operaciones que tardan más de seis segundos en ejecutarse

V$SYSSTAT

Estadísticas de la sesión

V$RESOURCE_LIMIT

Información sobre el uso actual y máximo disponible de cada recurso

V$SQLAREA

Estadísticas sobre el área compartida de SQL (en el Shared Pool de la SGA)

V$SGA

Estadísticas sobre la SGA

V$SGAINFO

Tamaño de los componentes de la SGA

V$SGASTAT

Información sobre el uso de los componentes de la SGA

V$PGASTAT

Uso de la PGA

V$SGA_DYNAMIC_COMPONENTS

Tamaños de los componente de la SGA e información de la última operación realizada sobre ellos

V$SGA_DYNAMIC_FREE_MEMORY

Información sobre la cantidad de memoria disponible para la SGA

V$SGA_TARGET_ADVICE

Estadísticas y avisos sobre el uso de la SGA

V$SQL_WORKAREA

Información sobre el uso del área para instrucciones SQL de la PGA

V$SQL_WORKAREA_ACTIVE

Información sobre el uso del área para instrucciones SQL de la PGA activa actual

V$CONTROLFILE

Información sobre los archivos de control

V$CONTROLFILE_RECORD_SECTION

Información sobre las secciones del registro de archivo de control

V$LOG

Información sobre los archivo Redo Log

V$LOGFILE

Información sobre los grupos y miembros Redo Log

V$ARCHIVED_LOG

Información sobre los históricos (o archivados) redo log

V$ARCHIVE_DEST

Información sobre todos los destinos asignados al histórico de Redo Log

V$ARCHIVE_PROCESSES

Información sobre los procesos relacionados con el histórico de redo Log

V$LOG_HISTORY

Información histórica sobre los redo Log, secuencias, secuencias archivadas,…

V$TABLESPACE

Información sobre los Tablespaces

V$ENCRYPTED _TABLESPACE

Información sobre los Tablespaces encriptados

V$DATAFILE

Información sobre los archivos de datos

V$DATAFILE_HEADER

Cabecera de los archivos de datos

V$TEMPFILE

Información sobre los archivos temporales de datos

V$TEMPSEG_USAGE

Uso de los segmentos temporales por cada usuario

V$UNDOSTAT

Estadísticas sobre el uso de espacio para operaciones de deshacer

V$ROLLSTAT

Información sobre el comportamiento de los segmentos de tipo deshacer (undo)

V$TRANSACTION

Información sobre los segmentos de tipo deshacer

V$DIAG_INFO

Información sobre archivos de traza

V$ALERT_TYPES

Información sobre grupos y tipos de alertas

V$METRICNAME

Información sobre las métricas del sistema

V$METRIC

Valores del sistema actuales para las métricas

V$METRIC_HISTORY

Información histórica sobre las métricas definidas

V$LOCK

Información sobre bloqueos del sistema

V$SESSION_WAIT

Indica el último estado de espera de la sesión actual

V$SESSION_WAIT_HISTORY

Lista de los 10 últimos eventos de espera por cada sesión activa

[4.5] archivos de traza y alerta

En Oracle cada proceso en segundo plano puede tener asociado un archivo de traza que irá monitorizando lo que le ocurre, y esto nos permitirá diagnosticar cada fallo.

[4.5.1]archivo de alerta (alert log)

Registra de forma cronológica los errores ocurridos en la base de datos. Entre los datos que registra, están:

Los siguientes parámetros nos permiten tomar decisiones sobre el funcionamiento de estos archivos o consultar su valor:

parámetro

valor

DIAGNOSTIC_DEST

Contiene la ruta del repositorio de diagnóstico automático de Oracle que es donde, por defecto, se almacenan los archivos de traza y el log de alertas

MAX_DUMP_FILE_SIZE

Tamaño en bloques del sistema operativo máximo de los archivos log y de traza. Por defecto es unlimited (sin límite)

BACKGROUND_DUMP_DEST

Destino del log de alertas y de los archivos de trazado

USER_DUMP_DEST

Ruta a los archivos de traza que guardan información sobre los procesos de usuario

[4.5.3] vistas relacionadas en el diccionario de datos

vista

contenido

V$DIAG_INFO

Información sobre los archivos de traza

V$DIAG_CRITICAL_ERROR

Lista de errores críticos designados por Oracle

DBA_ALERT_HISTORY

Historial de alertas

DBA_OUTSTANDING_ALERTS

Lista de alertas destacadas

V$ALERT_TYPES

Grupos y tipos de alertas

En especial la primera vista es la que nos permite saber los archivos de traza en uso y la ubicación en la que se guardan, luego simplemente bastará con examinarles para monitorizar el estado de la base de datos.

Las consultas más habituales son: