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