Download Administrando una Instancia Oracle

Document related concepts
no text concepts found
Transcript
Instituto Profesional DuocUC
Escuela de Ingeniería
Administrando una Instancia Oracle
Jaime Amigo P. © 2006, Santiago - Chile
Instituto Profesional DuocUC
Escuela de Ingeniería
Objetivos
Después de completar esta lección, usted deberá saber
cómo:
• Crear y manejar los archivos de parámetros de
inicialización
• Configurar OMF
• Levantar y Bajar una instancia
• Monitorear y usar archivos de diagnóstico
2
Instituto Profesional DuocUC
Escuela de Ingeniería
Archivo de Parámetros de Inicialización
Al levantar una instancia Oracle, el servidor Oracle debe leer el
archivo de Parámetros de Inicialización
Archivos de Inicialización
Sus entradas son específicas para la instancia que está siendo accesada
Hay dos tipos de parámetros:
●
Explícitos: Tiene una entrada en el archivo
●
Implícitos: No tienen entrada en el archivo, pero asumen los valores por Default
de Oracle
Una base de datos puede tener múltiples archivos de inicialización,
fundamentalmente para diversas situaciones de rendimiento.
Los cambios a las entradas en el archivo tienen efecto según el tipo de archivo de
parámetros de inicialización utilizado:
●
Archivos de parámetros estático (PFILE)
●
Archivos de parámetros persistente (SPFILE)
3
Instituto Profesional DuocUC
Escuela de Ingeniería
PFILE - initSID.ora
●
●
●
●
●
●
El PFILE es un archivo de texto que puede ser
modificado con un editor del sistema operativo
El PFILE solo es leído durante la subida de la instancia
Las modificaciones sobre él, solo tienen efecto en el
próximo startup de la instancia
La localicación por defecto es $ORACLE_HOME/dbs
(ambiente Linux/Unix) y recibe el nombre initSID.ora
Algunos parámetros son dinámicos, es decir, tienen
efecto mientras la instancia esta corriendo
Los cambios sobre parámetros dinámicos no se reflejan
en el PFILE
Ejemplo de PFILE
# Initialization Parameter File: initdb01.ora
db_name
= db01
instance_name
= db01
control_files
= (/u03/oradata/db01/control01db01.ctl,
/u03/oradata/db01/control02db01.ctl)
db_block_size
= 4096
db_block_buffers
= 500
shared_pool_size
= 31457280 # 30M Shared Pool
db_files
= 1024
max_dump_file_size = 10240
background_dump_dest
= /u05/oracle9i/admin/db01/bdump
user_dump_dest
= /u05/oracle9i/admin/db01/udump
core_dump_dest
= /u05/oracle9i/admin/db01/cdump
undo_management
= auto
undo_tablespace
= undtbs
. . .
4
Instituto Profesional DuocUC
Escuela de Ingeniería
SPFILE - spfileSID.ora
●
●
●
●
●
Es una nueva característica disponible desde Oracle 9i
Este archivo (binario) no puede ser modificado manualmente y
reside en el servidor
La ubicación por defecto de este archivo es en
$ORACLE_HOME/dbs y recibe el nombre de spfileSID.ora
(Linux/Unix)
Para alterar los valores de los parámetros, se hacen con el
comando ALTER SYSTEM command
A través de la cláusula SCOPE se indica el ámbito del cambio
(MEMORY, SPFILE, BOTH)
ALTER SYSTEM SET parameter = value [SCOPE = MEMORY | SPFILE | BOTH];
5
Instituto Profesional DuocUC
Escuela de Ingeniería
Creando un SPFILE
●
●
●
El SPFILE puede ser creado desde un archivo
initSID.ora usando el comando CREATE SPFILE
El comando puede ser ejecutado antes o después de
subir la instancia
Para ejecutar este comando se requiere el Rol de
SYSDBA
CREATE SPFILE [='spfile_name'] FROM PFILE [='Spfile_name'];
Ejemplo SPFILE:
.background_dump_dest=ORACLE_HOME/admin/db01/bdump
.compatible=9.0.0
.control_files= /u03/oradata/db01/control01db01.ctl,
/u03/oradata/db01/control02db01.ctl
.core_dump_dest=ORACLE_HOME/admin/db01/cdump
.db_block_buffers=500
.db_block_size=4096
.db_files=40
.db_name=db01
.instance_name=db01
.remote_login_passwordfile=exclusive
.shared_pool_size=31457280 # 30M Shared Pool
.undo_management=AUTO
db01.undo_tablespace=UNDOTBS01
db02.undo_tablespace=UNDOTBS02
. . .
6
Instituto Profesional DuocUC
Escuela de Ingeniería
Oracle Managed Files
●
●
●
Oracle Managed Files (OMF) simplifica la
administración de archivos
Son creados y eliminados directamente por el Servidor
Oracle vía comandos SQL
OMF define dos tipos de parámetros:
●
●
DB_CREATE_FILE_DEST: Seteo para definir la
ubicación por defecto de los archivos de bases de datos
DB_CREATE_ONLINE_LOG_DEST_N: Seteo para
definir la ubicación por defecto para los archivos de
Redo Logs y Control Files con un máximo de 5
localizaciones
7
Instituto Profesional DuocUC
Escuela de Ingeniería
Ejemplo: Oracle Managed File
Al crear una base de datos donde los data file, control file y redo
log online están en directorios separados
●
Setear los parámetros de inicialización:
●
●
●
●
●
●
DB_CREATE_FILE_DEST
= '/u01/oradata'
DB_CREATE_ONLINE_LOG_DEST_1 = '/u02/oradata'
DB_CREATE_ONLINE_LOG_DEST_2 = '/u03/oradata'
Después de setear los parámetros de inicialización, la base
de datos puede ser creada con la sentencia SQL CREATE
DATABASE
Información sobre la creación se puede accesar en los
objetos Oracle DBA_DATAFILES y V$LOGFILE
Tanto DB_CREATE_FILE_DEST y
DB_CREATE_ONLINE_LOG_DEST_n pueden ser
modificados con el comando SQL ALTER SYSTEM SET
comando
8
Instituto Profesional DuocUC
Escuela de Ingeniería
Subiendo una base de datos
Levantar una Base de Datos
Cuando una base de datos es levantada (subida/startup), usted selecciona el
estado en el cual se inicia. Los siguientes son los escenarios posibles al levantar una
instancia Oracle.
NOMOUNT
Una instancia es iniciada en estado NOMOUNT solo durante la creación de la
base de datos o la recreación de los archivos de control.
Levantar una instancia incluye las siguientes tareas:
- Leer el archivo de inicialización $ORACLE_HOME/dbs en el siguiente orden:
1. Primero spfileSID.ora
2. Sino encuentra el anterior, entonces lee pfileSID.ora
3. Sino encuentra el anterior, initSID.ora
- Asignar la SGA
- Iniciar los procesos background
- Abrir el archivo alertSID.log y los archivos de Trace
9
Instituto Profesional DuocUC
Escuela de Ingeniería
Subiendo una base de datos
Montando la Base de Datos (MOUNT)
Para ejecutar labores específicas de mantenimiento, usted debe iniciar la instancia y
montarla, pero no abrir la base de datos.
Por ejemplo, la base de datos debe ser montada pero no abierta en los siguientes casos:
a) Renombrar Datafiles (datafiles para un tablespace offline debe ser renombrado cuando la
base de datos esta abierta (OPEN))
b) Habilitar y deshabilitar archivos de redo log online
c) Ejecutar una recuperación full de la base de datos
Montar una base de datos incluye las siguientes tareas:
a) Asociar la base de datos con una instancia previamente levantada
b) Localizar y abrir los archivos de control especificados en el archivo de parametros
c) Leer el archivo de control y obtener los nombres y estados de los datafiles y archivos de
redo log online. Sin embargo, no chequea o verifica la existencia de los archivos de datafile
o redolog online en este instante
10
Instituto Profesional DuocUC
Escuela de Ingeniería
Subiendo una base de datos
Abrir una Base de Datos (OPEN)
Una base de datos en modo normal de operación, significa que una instancia de
base de datos ha sido iniciada y la base de datos montada y abierta. OPEN es la
opción por defecto al subir una base de datos. En este modo, cualquier usuario
válido puede conectarse a la base de datos y ejecutar operaciones típicas de
acceso a los datos.
Abrir una base de datos incluye las siguientes tareas:
1. Abrir los archivos de datafile online
2. Abrir los archivos de redo log online
Si alguno de los archivos de datafile o redo log no existe cuando una base de datos
esta pasando el modo OPEN, el servidor Oracle retorna un error.
Durante la etapa final, el servidor ORACLE verifica que todos los datafiles y redo log
puedan ser abiertos y chequea la consistencia de la base de datos. Si es necesario,
el proceso background SMON inicia una recuperación.
11
Instituto Profesional DuocUC
Escuela de Ingeniería
Comando startup
STARTUP
STARTUP PFILE=ORACLE_HOME/dbs/initdb01.ora
STARTUP [FORCE] [RESTRICT] [PFILE=filename]
[OPEN] [RECOVER] [database]
| MOUNT
| NOMOUNT ]
OPEN
: Habilita a los usuarios a accesar la base de datos
MOUNT
: Monta la BD para ciertas actividades de Administración (DBA)
pero usuarios no pueden accesar
NOMOUNT
: Crea la SGA e inicia los procesos background, pero no otorga
acceso a la base de datos
PFILE=parfile
: Habilita los parámetros para la instancia indicados en el archivo
FORCE
: Aborta los procesos que estan corriendo en la instancia antes de
realizar un startup normal
RESTRICT
: Habilita solo a usuarios con privilegio de RESTRICTED SESSION
para acceder a la base de datos
RECOVER
: Inicia recuperación cuando se inicia la base de datos
12
Instituto Profesional DuocUC
Escuela de Ingeniería
Base de datos en modo restringido
1. Para habilitar la subida en modo restringido:
STARTUP RESTRICT;
2. Para alterar el modo de una base de datos:
ALTER SYSTEM ENABLE RESTRICTED SESSION;
Una sesión restringida es util para ejecutar mantención de estructuras o export e import
de una base de datos.
Comando
ALTER SYSTEM [ { ENABLE | DISABLE} RESTRICTED SESSION ];
ENABLE RESTRICTED SESSION
Permite futuros logins solo a usuarios con privilegio de RESTRICTED SESSION
(usualmente usuario ROL DBA)
DISABLE RESTRICTED SESSION
Deshabilita el RESTRICTED SESSION
Después de habilitar una instancia en modo restringido, es posible que queden
sesiones de usuarios activas. Estas sesiones deben ser canceladas (matadas) con el
siguiente comando
ALTER SYSTEM KILL SESSION -integer1, integer2integern : es el valor de la columna SID de la vista V$SESSION
13
Instituto Profesional DuocUC
Escuela de Ingeniería
Base de datos en modo Read-Only
• Una base de datos puede ser usada en modo Read-Only
para:
• Ejecutar solo consultas
• Ejecutar ordenamiento en disco, usando
tablespaces manejados localmente
• Dejar un datafile offline y online, no tablespace
• Ejecutar una recuperación offline de los datafile y
tablespaces
Es decir, fundamentalmente para labores de
Administración del DBA
14
Instituto Profesional DuocUC
Escuela de Ingeniería
Bajando una Base de Datos
SHUTDOWN [ NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT]
En algunas ocaciones, es preciso bajar (shutdown) una base de datos, por ejemplo, para
ejecutar respaldos en frio de la base de datos o para realizar upgrades o bien para aplicar
parches de Oracle. Cualquiera sea el caso, usted debe comprender las opciones de bajada
(shutdown).
Shutdown Normal
Es el modo por defecto que Oracle ejecuta sino se especifican otras opciones. Espera que
todos los usuarios conectados actualmente se desconecten de la base de datos y no permite
nuevas conecciones desde el momento de iniciado el SHUTDOWN NORMAL. Dado que
Oracle espera que todos clientes se desconecten, usted podria esperar indefinidamente. En
este caso, es preciso hacer KILL a cada sesión de usuario, lo que toma un tiempo extra al
DBA. Este tipo de Shutdown es conocido como “shutdown clean” porque cuando se inicia
nuevamente la base de datos, no es precisa una recuperación.
15
Bajando una instancia (continuación)
Shutdown Transactional
Esta es una característica un poco mas agresiva que Shutdown Normal. Las siguientes son las
características de un Shutdown Transactional:
- No se permiten nuevas conexiones desde iniciado el Shutdown Transactional
- No se permiten nuevas transacciones a los usuarios que ya estaban conectados
- Cuando todas las transacciones activas en la BD han terminado, todos los clientes son
desconectados
Este tipo de shutdown también es limpio y no requiere de recuperación en el próximo
startup.
La diferencia entre Normal y Transactional es que el primero, espera que todos los
usuarios se desconecten voluntariamente de la base de datos y solo ahí, se baja la base
de datos. El segundo, espera que las transacciones de los usuarios que ya estan
conectados terminen y Oracle deconecta automáticamente a cada proceso usuario,
iniciando así el shutdown.
16
Instituto Profesional DuocUC
Escuela de Ingeniería
Bajando una Base de Datos
SHUTDOWN [ NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT]
Shutdown Immediate
Es el siguiente método de shutdown mas agresivo que dispone Oracle.
Shutdown Immediate se caracteriza por:
- No permite nuevas conexiones a la base de datos desde iniciado el Shutdown
Immediate
- Transacciones sin COMMIT no podran hacer ROLLBACK. Asi, el usuario en la
mitad de una transacción perdera todo el trabajo sin COMMIT
- Oracle no espera que los clientes se desconecten. A cualquier transacción no
finalizada se le aplica ROLLBACK y sus conecciones a la base de datos son
finalizadas.
Este tipo de shutdown trabaja bien si usted desea ejecutar una bajada inmediata y
asegurarse que todas las transacciones y clientes seran desconectados.
17
Shutdown Abort
Es el método más agresivo de todos los shutdown y tiene las siguientes
características:
- No permite nuevas conecciones a partir del shutdown abort
- Cualquier sentencia SQL en proceso es finalizada, sin importar el estado en la
que se encuentre
- Al trabajo sin COMMIT no se le aplica ROLLBACK
- Oracle desconecta todas las conecciones de clientes inmediatamente
No es recomendable usar shutdown abort regularmente. Utilicelo, solo si las otras
opciones de bajada no funcionan. Este tipo de shutdown no es “clean” y requiere
recuperación cuando la base de datos sea iniciada la próxima vez.
18
Instituto Profesional DuocUC
Escuela de Ingeniería
Opciones de SHUTDOWN
19
Instituto Profesional DuocUC
Escuela de Ingeniería
Opciones de SHUTDOWN
20
Instituto Profesional DuocUC
Escuela de Ingeniería
Monitoreando Archivos de Diagnóstico
Los archivos de diagnóstico capturan información de las
actividades de una base de datos
●
Usado para resolver problemas o mejorar la
administración de la base de datos en el día a día
●
Existen varios tipos de archivos de diagnóstico
●
Archivo alertSID.log, contiene información de la
operación diaria
●
Archivos de trace de procesos background, útiles
cuando SMON, PMON, DBWn y otros fallan
●
Archivos de trace de usuarios, información vital
cuando hay errores de usuarios
Archivos de Alertas
Cada instancia Oracle tiene un archivo de Alert Log. Sino esta creado, Oracle
crea uno en el Startup
El archivo alertSID.log registra los comandos y resultados de los principales eventos
mientras una BD esta operativa.
Usado para el trabajo diario o para diagnósticos de errores de la base de datos.
Cada entrada tiene una hora asociada al evento.
Los DBA son los encargados de administrar este archivo.
Su localización esta definida en BACKGROUND_DUMP_DEST. Ubicación UNIX por
defecto es $ORACLE_HOME/rdbms/log
El archivo de Alert contiene punteros a archivos de trace mas detallados.
Información que contiene:
●
Cuando la BD fue subida y bajada
●
Lista de todos los parámetros de inicialización no default
●
Subida de los procesos background
●
El Thread (hebra) que esta siendo usado por la instancia
21
●
●
●
●
El número de secuencia de log que LGWR esta escribiendo
Información de LOG SWITCH
Creación de tablespaces y segmentos de UNDO
Información de mensajes de error ORA-600 y errores de extent
22
Instituto Profesional DuocUC
Escuela de Ingeniería
Monitoreando Archivos de Diagnóstico
Cada base de datos tiene un alert_sid.log. Este archivo esta en el servidor donde
reside la Base de Datos y esta almacenado en el directorio especificado en el
parámetro de inicialización background_dump_dest.
El archivo de alertas de la base de datos, es un archivo de mensajes cronologicos y de
errores, incluyendo lo siguiente:
-Errores internos (ORA-600), errores de corrupción de bloques (ORA-1578) y errores
de deadlock (ORA-60)
-Operaciones administrativas, tales como sentencias SQL CREATE, ALTER, DROP
DATABASE, TABLESPACE, ROLLBACK SEGMENT y sentencias de STARTUP,
SHUTDOWN, ARCHIVE LOG y RECOVER
-Errores durante el refresco automático de vistas materializadas
EM monitorea el archivo de alertas de log y notifica los errores criticos (este proceso
puede automatizarse vía email). También se pueden ver los errores no críticos o
mensajes informativos. Este archivo puede crecer a un tamaño inimaginable. Se debe
tener prevención de respaldar este archivo (por su historia y utilidad) con cierta
regularidad y borrar el archivo de alertas, para efectos de limpieza. Si el archivo no
existe, al subir la base de datos, se creara un nuevo archivo de alertas de logs.
23
Instituto Profesional DuocUC
Escuela de Ingeniería
Fin de la Lección
Jaime Amigo P. © 2006, Santiago - Chile