Administración avanzada Oracle Arranque y parada de la base de datos. Ficheros de traza. Jesús Miguel Muñoz Rodríguez SGBD Administración avanzada de Oracle Jesús Miguel Muñoz Rodríguez Arranque y parada de la Base de datos. Ficheros de traza. 1 Administración avanzada Oracle ARRANQUE Y PARADA DE LA BASE DE DATOS. FICHEROS DE TRAZA. Esta guía pretende arrojar información profunda de como se arranca y para una base de datos; que tipos de estado tiene una base de datos y para que sirve cada uno de ellos; y qué son los ficheros de traza y para que están destinados. Comencemos: ARRANQUE Y PARADA DE UNA BASE DE DATOS: Introducción: Una base de datos en Oracle no estará completamente operativa hasta que el administrador inicie la instancia y abra la base de datos. El comando que abre la base de datos es el comando STARTUP. Este comando realiza 3 procesos en los cuales la base de datos va cambiando de estado hasta que llega al punto de abrirse. Los procesos son: • • • Arranca la instancia. Construye las estructuras de memoria. La base de datos se encuentra en estado NOMOUNT. Monta la base de datos. Para ello y con la información del fichero CONTROLFILE, lee los ficheros físicos asociados y comprueba que existen. La base de datos pasa ha estar en estado MOUNT. Se abre la base de datos. Se abren los ficheros. La base de datos pasa ha estado OPEN. Nuestra base de datos está arrancada de forma correcta y con todas las características. El comando que cierra la base de datos es el comando SHUTDOWN, el cuál realiza los mismos pasos que el comando STARTUP pero al contrario, hasta que finalmente cierra la base de datos. En cuanto al arranque y parada de la base de datos hay que hacer mención especial a los privilegios que serán dados a los usuarios. El DBA ha de analizar de forma exhaustiva que usuarios tendrán el privilegio de conectarse a la base de datos y cuáles no. Vamos a ver todos estos proceso de forma profunda: El comando STARTUP: El comando STARTUP es el comando de arranque de la base de datos, y tiene la siguiente sintaxis: STARTUP [PFILE=’ARCHIVO_PARAMS’] [MODO] El ARCHIVO_PARAMS es un archivo de parámetros que contiene una serie de valores que se utilizarán para poner en funcionamiento una instancia de la base de datos. Este archivo se denominaba initsid.ora en las versiones anteriores a la 9i, en las posteriores se denomina SPFILE. Jesús Miguel Muñoz Rodríguez Arranque y parada de la Base de datos. Ficheros de traza. 2 Administración avanzada Oracle Este archivo la analizaremos de una manera más profunda más adelante. En caso de que la base de datos ya esté ejecutándose y queramos pasar a otro estado podemos usar el siguiente comando: ALTER DATABASE MODO; El MODO es el modo de arranque que se le puede indicar para que la base de datos pase a un estado u otro, en función de las tareas que se quieran realizar. Los distintos modos son NOMOUNT, MOUNT Y OPEN. Vamos a ver los tres modos de forma detallada: Modo NOMOUNT: En este estado arrancan los procesos de background y se construye la instancia. Este estado se emplea para deshabilitar procesos, modificar ficheros de la BD, y recrear el fichero de control. En caso de que queramos modificar algún fichero de la base de datos debido a que necesitamos por ejemplo si se quieren modificar los archivos de control o los de datos. Cuando estemos ejecutando este estado se pueden presentar algunos problemas: • Problemas de hardware. • Que no exista el fichero de inicialización que le hemos pasado. • Que algunos parámetros del fichero de inicialización estén mal. Si se nos da este problema podemos decirle que arranque con el fichero de inicio por defecto llamado init.ora escribiendo el comando STARTUP PFILE = INIT.ora NOMOUNT. Modo MOUNT: Analiza que los ficheros que le indica el parámetro CONTROLFILE en el archivo de parámetros, son los que los que se han puesto y que la ruta indicada sea la correcta. Este estado se usa en caso de que queramos hacer una copia de seguridad de la base de datos. Como en el estado anterior, en modo MOUNT pueden aparecer algunos problemas como los siguientes: • No exista el fichero de control. • Que existan ficheros no sincronizados (lo cual implicaría que se hiciera un recover). • No existan los ficheros de datos o de redo log que el CONTROLFILE debe leer. Si el fichero de datos que falta no es crítico, puedo arrancar sin él y después recuperarlo con un backup. Jesús Miguel Muñoz Rodríguez Arranque y parada de la Base de datos. Ficheros de traza. 3 Administración avanzada Oracle Modo OPEN: Abre los ficheros. Es en este modo cuando podemos decir que la base de datos está completamente operativa. Cuando arrancamos este estado existe la posibilidad de arrancar una misma base de datos con distintas instancias, indicando que fichero init.ora queremos que utilice. El comando SHUTDOWN: SHUTDOWN es el comando de parada de la base de datos y tienen la siguiente sintaxis: SHUTDOWN [MODO] El proceso de cierre de la base de datos se realiza al revés que el STARTUP realizando los siguientes pasos: • Cierra los archivos y valida las transacciones. • Graba al fichero de control el estado de los ficheros. • Cierra la instancia y libera los recursos. Disponemos de cuatro opciones o modos diferentes para realizar el shutdown: Jesús Miguel Muñoz Rodríguez Arranque y parada de la Base de datos. Ficheros de traza. 4 Administración avanzada Oracle • • • • SHUTDOWN NORMAL: Espera a que todas las sesiones finalicen y después cierra la base de datos. SHUTDOWN INMEDIATE: Hace rollback de las transacciones en curso y el sistema cierra todas las sesiones abiertas, marcando un checkpoint que evita inconsistencias. SHUTDOWN ABORT: Cierra las sesiones, pero no cancela las transacciones. Requiere RECOVERY. SHUTDOWN TRANSACCIONAL: Espera a que termine la transacción en curso. Lanza un timeout para transacciones largas. Archivo de parámetros: El archivo de parámetros es un archivo de texto que contiene valores y parámetros que definen cómo será la puesta en marcha de una instancia. Este fichero normalmente es el init.ora. Este fichero solo se lee durante el inicio de la instancia por lo que en caso de que se haga algún cambio en dicho fichero, habría que parar la instancia y volver a lanzadla para que los cambios tengan efecto. Existen algunos parámetros que son dinámicos, los cuales se ejecutan con la instancia activa sin necesidad de reiniciarla. A partir de la versión de Oracle 9i aparece un nuevo tipo ficheros de parámetros llamados SPFILE que se crean a partir del init.ora con el siguiente comando: Create SPFILE = ’nombre_spfile’ FROM PFILE = ’nombre_pfile(pj: init.ora)’ Cuando creamos un nuevo archivo SPFILE debemos de parar y arrancar de nuevo la base de datos para que esta ya no lea el init.ora sino el nuevo spfile. A diferencia del init.ora este fichero no es un fichero editable. Para poder hacer algún cambio en el fichero hay que hacerlo con el siguiente comando: ALTER SYSTEM SET param = valor [SCOPE = MEMORY | SPFILE | BOTH] REGLAS PARA ESPECIFIACAR PARÁMETROS EN EL INIT.ORA • Los valores se especifican con el formato: parámetro = valor. • Todos los parámetros son opcionales. • El servidor tiene un valor por defecto para cada parámetro. • Se pueden especificar en cualquier orden. • Las líneas de comentario se especifican con # • Los literales de carácter se especifican entre comillas dobles. • Hay valores que se encierran entre paréntesis y se separan por comas. Para poder mostrar los valores de los parámetros especificados en el archivo de parámetros podemos usar el siguiente comando: SHOW PARAMETER texto También se pueden usar vistas dinámicas para consultar dicha información. Las vistas en Jesús Miguel Muñoz Rodríguez Arranque y parada de la Base de datos. Ficheros de traza. 5 Administración avanzada Oracle cuestión serían: V$PARAMETER y V$SPPARAMETER. Algunos parámetros que se podrían aplicar al fichero de init.ora pueden ser: • • • • • • DB_NAME: Nombre de la base de datos. Único parámetro obligatorio para el inicio de la base de datos. CONTROL_FILES: Nombres de los archivos de control. DB_BLOCK_SIZE: Tamaño de bloque de la base de datos. BACKGROUND_DUMP_DEST: Ubicación para los archivos de rastreo de los procesos en segundo plano. Es también la ubicación del log de alerta. USER_DUMP_DEST: Ubicación donde se crean los archivos de rastreo de depuración del usuario a favor de un proceso de usuario. LOG_BUFFER: Número de bytes asignados al buffer de redo log en la SGA. • MAX_DUMP_FILE_SIZE: Tamaño máximo de los archivos de rastreo, especificado como el número de bloques del sistema operativo. • SQL_TRACE: Activa o desactiva la utilidad de rastreo SQL para cada sesión de usuario. • PROCESSES: Número máximo de procesos del sistema operativo que se pueden conectar simultáneamente a la instancia. • IFILE: Nombre de otro archivo de parámetros que se debe embeber en el archivo de parámetros. Se permite hasta tres niveles de anidamiento. • TIMED_STATISTICS: Activa o desactiva la temporización en los archivos de rastreo y en las pantallas del monitor. Los archivos de parámetros también pueden ser modificados desde la consola web de Oracle. Accediendo al explorador de Internet que usemos y poniendo en la url: https://localhost:1158/em. Desde aquí podremos modificar a nuestro gusto todos y cada uno de los parámetros que existen en el fichero de parámetros: Jesús Miguel Muñoz Rodríguez Arranque y parada de la Base de datos. Ficheros de traza. 6 Administración avanzada Oracle LOS ARCHIVOS DE RASTREO (TRACE FILES) Cuando uno de los procesos en segundo plano detecta un error, genera un archivo de rastreo con información sobre dicho error. Cada proceso de servidor y en segundo plano puede escribir en un archivo de rastreo asociado. La ubicación de estos archivos de rastreo es el directorio especificado en el parámetro de inicialización BACKGROUND_DUMP_DEST que se encuentra en el init.ora. Normalmente el nombre del archivo de rastreo contiene el nombre del proceso en segundo plano que lo creó para poder identificarlo y la extensión de estos archivos será TRC. También es importante que el administrador de la base de datos revise estos ficheros periódicamente para comprobar si hay errores y depurarlos si fueran demasiado peligrosos. Para activar los ficheros de traza para la sesión actual usamos el siguiente comando: dbms_support.start_trace_in_session( sid=> 42, serial# => 1215, waits => true, binds => true) Este es un ejemplo de una linea de una archivo de traza: 2010-11-02 20:10:31.296: [ default]ut_read_reg:2:ocr registry key SOFTWARE\Oracle\olr cannot be opened. Error 2 Jesús Miguel Muñoz Rodríguez Arranque y parada de la Base de datos. Ficheros de traza. 7 Administración avanzada Oracle Nos ofrece información sobre cuando se ha producido el error, donde ha sido, a que servicio está asociado el error y qué código de error se ha generado. VISTA DBA_REGISTRY Muchas veces, además de conocer la versión exacta de la base de datos (a través de V$VERSION), es necesario saber los componentes instalados, así como su estado y versión. Desde la versión 9i existe la vista de diccionario de datos DBA_REGISTRY, que proporciona esta información y más… (siempre a usuarios con los correspondientes privilegios). Veamos un ejemplo: select substr(COMP_ID,1,10) COMP_ID, substr(COMP_NAME,1,30) COMP_NAME, VERSION, STATUS from DBA_REGISTRY; COMP_ID EM XDB CONTEXT ORDIM EXF OWM COMP_NAME Oracle Enterprise Manager Oracle XML Database Oracle Text Oracle interMedia Oracle Expression Filter Oracle Workspace Manager VERSION 10.1.0.2.0 10.1.0.2.0 10.1.0.2.0 10.1.0.2.0 10.1.0.2.0 10.1.0.2.0 STATUS VALID VALID VALID VALID VALID VALID COMANDOS EMCA Y EMCTL La consola de administración web es una excelente herramienta para administrar nuestra base de datos Oracle. Esta se haya controlada por los comandos emca (Enterprise Manager Configuration Assistant) y emctl (Enterprise Manager Command-Line Utility ). Ambos comandos son paquetes para la gestión de la consola web de oracle. Para ver su funcionamiento vamos a ver un caso hipotético de fallo en la consola de administración web: Tras una migración de nuestra base de datos nos damos cuenta que no funciona nuestra consola de administración debido a que el nombre de host de la máquina ha cambiado. ¿Qué podríamos hacer para recuperar la consola?: Verificaciones y reconfiguraciones Debes cambiar el nombre del host dentro del archivo .bash_profile En general esta dentro de la variable ORACLE_HOSTNAME Debes verificar el contenido del archivo $ORACLE_HOME/tnsnames.ora y asegurarte de que esté el nuevo nombre de host. Reiniciar el host Reiniciar el host, y verificar que la base de datos haya arrancado. sqlplus usuario/password@instancia select sysdate from dual Jesús Miguel Muñoz Rodríguez Arranque y parada de la Base de datos. Ficheros de traza. 8 Administración avanzada Oracle Si responde pues la base de datos esta levantada. Limpiar configuración Para desconfigurar completamente el enterprise manager emca -deconfig dbcontrol db Limpiar y recrear el repositorio emca -deconfig dbcontrol db -repos drop emca -config dbcontrol db -repos create Reconfigurar el enterprise manager Debes reconfigurar el enterprise manager con el comando emca -config dbcontrol db Este comando te preguntara 1. Nombre de instancia 2. Puerta en la que escucha el listener 1521 3. Password de administrador de SYS,DBSNMP,SYSMAN 4. El mail y el smtp es opcional (no lo completes) Prueba de buen funcionamiento Si ha configurado correctamente el enterprise manager pues simplemente debe entrar al link https://nombredelhost:1158/em En caso de problemas fijate en los siguientes aspectos Clave emkey.ora Si falta la clave emkey.ora obténgala desde un respaldo y póngala en la carpeta $ORACLE_HOME/nombredelainstancia/sysman/config. En caso que no tenga respaldo use el comando $ORACLE_HOME/bin/emca with -repos create option . Cópiela a la carpeta $ORACLE_HOME/sysman/config Luego ejecute el comando $ORACLE_HOME/bin/emctl config emkey -emkeyfile $ORACLE_HOME/sysman/config/emkey.ora -force Password insensitivos a la mayúscula y minúscula Para dejar los password compatibles con la versión Oracle 10g use los siguientes comandos: alter system set sec_case_sensitive_logon=false scope=both; show parameter sec_case_sensitive_logon; Tras esto tendremos de nuevo nuestra consola de administración funcionando, permitiéndonos un control de la administración de Oracle de forma eficiente y sencilla. Jesús Miguel Muñoz Rodríguez Arranque y parada de la Base de datos. Ficheros de traza. 9 Administración avanzada Oracle Jesús Miguel Muñoz Rodríguez Arranque y parada de la Base de datos. Ficheros de traza. 10