Control File Jaime Amigo P. 2006, Santiago - Chile
Objetivos Después de completar esta lección, usted deberá saber lo siguiente: Explicar el uso del archivo de control Listar los contenidos del archivo de control Multiplexar y administrar el archivo de control Administrar el archivo de control con OMF Obtener información del archivo de control 2
Control File El archivo de control es un archivo binario que define el estado actual de una base de datos física La pérdida del archivo de control requiere una recuperación Es leído en la etapa de MOUNT Es requerido para operar Esta linkeado a una base de datos SINGLE Debe ser multiplexado (replicado) Mantiene la integridad de la base de datos Su tamaño esta dado por ciertos parámetros al momento del CREATE DATABASE CONTROL FILE El archivo de control es un pequeño archivo binario necesario para iniciar y operar la base de datos exitósamente. Cada archivo de control esta asociado con una sola base de datos Oracle. Antes que una BD sea abierta, el archivo de control es leído para determinar si la base de datos esta válida para su uso. Un archivo de control es actualizado continuamente por Oracle Server durante el uso de la BD, por tanto debe estar disponible para escritura mientras la BD esta abierta. La información del archivo de control puede ser modificada solo por Oracle Server; DBA o usuarios finales no pueden editar el archivo de control. Si por alguna razón el archivo de control no esta accesible, la base de datos no puede funcionar correctamente. Si todas las copias de los archivos de control de la base de datos se pierden o dañan, la base de datos debe recuperarse antes de poder abrirse nuevamente. Al menos un archivo de control es requerido, pero los archivos de control pueden ser replicados hasta 8 veces. 3
CONTROL FILE (continuación) Tamaño del Archivo de Control Ciertas palabras claves durante la creación de la base de datos afectan el tamaño del archivo de control. Es particularmente significativo cuando los parámetros tienen valores grandes. El tamaño del archivo de control esta influenciado por las siguientes palabras claves de los siguientes comandos: CREATE DATABASE o CREATE CONTROLFILE MAXLOGFILES MAXLOGMEMBERS MAXLOGHISTORY MAXDATAFILES MAXINSTANCES Usar este comando para recrear un Control File solo si: Todas las copias existente se han perdido o dañado Si se desea modificar el nombre de la base de datos Si se desea modificar el número máximo de grupos de redo log files, miembros de redo log, archivos de archived redo log, datafiles o instancias que pueden abrirse o montarse concurrentemente Oracle recomienda ejecutar un full backup de los archivos de bases de datos, antes de ejecutar esta sentencia 4
Contenidos del Control File Un archivo de control contiene las siguientes entradas: Nombre de la BD e identificador La fecha de la creación de la base de datos Nombres de tablespaces Nombre y ubicación de los datafiles y redo logs Número de secuencia del archivo de redo log actual Información de checkpoint Inicio y término de los segmentos de undo Información de los redo log archivados Información de respaldo Contenidos del Control File La información en el control file incluye: 1. Nombre de la base de datos esta tomado del nombre en los parámetros de inicialización (DB_NAME) o el nombre usado en la sentencia CREATE DATABASE 2. El identificador es registrado cuando la base de datos es creada 3. La fecha de la creación de la base de datos es también registrado al momento de la creación 4. El nombre y ubicación de los archivos de datafile y redo log son actualizados cuando un datafile o redo log es agregado, renombrado o eliminado de la base de datos 5. Información de tablespaces es actualizada cuando éstos son agregados o eliminados 6. La historia de los redo log es registrada durante los log switches 7. Ubicación y estado de los logs archivados 5
Contenidos del Control File (continuación) 8. Ubicación y estado de respaldos son registrados por el utilitario Recovery Manager(RMAN) 9. Número de secuencia de los logs actuales son registrados cuando ocurre el log switch 10. Información de checkpoint es registrada cuando se hace un checkpoints El control file tiene 2 tipos de secciones: Reutilizable No reutilizable La sección reutilizable almacena información del Recovery Manager tal como: nombre de archivos de backup de datos y nombre archivos de redo log de backup. Ella es usada en forma circular y puede ser reusada solo por el Recovery Manager (RMAN) 6
Multiplexación de Control File usando SPFILE Alterando el SPFILE ALTER SYSTEM SET control_files = $HOME/ORADATA/u01/ctrl01.ctl, $HOME/ORADATA/u02/ctrl02.ctl SCOPE=SPFILE; Shutdown normal SHUTDOWN NORMAL; Crear control file adicional # cp $HOME/ORADATA/u01/ctrl01.ctl $HOME/ORATADA/u02/ctrl02.ctl Iniciar la base de datos STARTUP; Multiplexando el Control File Para prevenir un único punto de falla en el archivo de control, es altamente recomendado que el archivo de control sea multiplexado, almacenando cada copia en diferentes discos físicos. Si un archivo de control se pierde, una copia de éste puede ser usada para reiniciar la instancia sin tener que recuperar la base de datos. Los archivos de control pueden ser multiplexados hasta 8 veces. El Oracle Server crea y mantiene todos los archivos de control listados en sus parámetros cuando una instancia es iniciada. El adminitrador de base de datos puede multiplexar los archivos de control según: 1. Creando múltiples control files cuando se crea la base de datos, incluyendo los nombres en el parámetro de inicialización CONTROL_FILES CONTROL_FILES=$HOME/ORADATA/u01/ctrl01.ctl, $HOME/ORADATA/u02/ctrl02.ctl 2. Agregando un control file después que la base de datos ha sido creada. Estos pasos difieren si se usa un archivo initsid.ora o SPFILE. 7
Multiplexando el Control File usando init.ora Bajar la base de datos a un modo normal SHUTDOWN NORMAL; Copiar el control file existente con un nuevo nombre y ubicación # cp control01.ctl../disk3/control02.ctl Agregar un nuevo nombre de control file al init.ora CONTROL_FILES = (/DISK1/control01.ctl, /DISK3/control02.ctl) Iniciar la base de datos STARTUP; Salvaguardando el Control File Hay un comando CREATE CONTROLFILE que permite la creación de archivos de control. Sin embargo, se debe completar de conocer el contenido y estructura para un adecuado uso. Respaldar después que la estructura de la BD ha cambiado Ya que el archivo de control registra la estructura física de la base de datos, se debe inmediatamente respaldar el archivo de control después de hacer cambios físicos a la estructura de la base de datos. Se debe respaldar el archivo de control, pero no puede traer un control file de regreso desde un respaldo sin los datafile apropiados. El control file es un archivo vivo que corresponde al estado actual de la base de datos. ALTER DATABASE BACKUP CONTROLFILE TO FILENAME 8
Manejando Control File con OMF Los archivos de control son creados con OMF si el parametro CONTROL_FILE no esta específicado Los control file con OMF esta ubicados en DB_CREATE_ONLINE_LOG_DEST_N Los nombres de control file son generados en forma única y desplegados en el archivo altersid.log cuando los archivos son creados Manejando Control File con OMF Los archivos de control son creados con OMF automáticamente durante la creación de la BD si el parámetro CONTROL_FILE no esta especificado en el archivo de parámetros de inicialización. Si se usa un archivo init.ora, el parametro CONTROL_FILE debe ser seteado a los nombres generados por OMF, los que pueden ser encontrados seleccionando la vista V$CONTROLFILE o desde el archivo alertsid.log. Si se usa SPFILE, el parámetro CONTROL_FILE es automáticamente seteado y salvado cuando la base de datos es creada. Los nombres de archivos de control son generados de manera única (ora_cmr7t30p.ctl) y desplegados en el archivo alertsid.log cuando los archivos son creados. Se puede crear un nuevo archivo de control para la base de datos usando el comando CREATE CONTROLFILE. Se deben usar los nombres correctos de OMF para los DATAFILES y LOGFILE. El comando DATABASE BACKUP CONTROLFILE TO TRACE, genera un script con los nombres correctos. 9
Obteniendo información del Control File Información sobre el estado y ubicación del(los) archivos de control puede ser recuperada consultando vistas del diccionario de datos V$CONTROLFILE: lista el nombre y estado de todos los control files asociados a una instancia V$PARAMETER: lista el estado y ubicación de todos los parámetros V$CONTROLFILE_RECORD_SECTION: Provee información sobre las secciones de registros del archivo de control SHOW PARAMETERS CONTROL_FILES: lista el nombre, estado y ubicación de los archivos de control Obteniendo Información de los Archivos de Control Para obtener la ubicación y nombre de los archivos de control, se debe utilizar la vista dinámica de rendimiento V$CONTROLFILE SELECT name FROM V$CONTROLFILE; NAME -------------------------------------------------------- /U01/HOME/db03/oradata/u01/ctrl01.ctl SELECT name, value FROM V$PARAMETER WHERE name = control_files ; NAME Value ------------------------------------------------- -------------------------------------------------------- control_files /U01/HOME/db03/oradata/u01/ctrl01.ctl 10
Para obtener información de las diferentes secciones de los archivos de control, consultar la vista dinámica de rendimiento V$CONTROLFILE_RECORD_SECTION SELECT type, record_size, records_total, record_used FROM v$controlfile_record_section TYPE RECORD_SIZE RECORDS_TO RECORDS_US ============================================== DATAFILE 180 30 4 La columna RECORD_TO especifica el número de registros localizado para una sección especial. Por ejemplo, se puede ver que el número máximo de datafiles en el ejemplo es 30, el que esta determinado por el parámetro MAXDATAFILES en el comando CREATE DATABASE. El comando SHOW PARAMETERS también puede ser usado para localizar los archivos de control show parameters control_files; NAME TYPE VALUE -------------- --------------- --------------------------------------------- control_files string /u01/home/db03/oradata/u01/ctrl01.ctl Se puede obtener variada información de los archivos de control en las siguientes vistas dinámicas de rendimiento: V$BACKUP V$DATAFILE V$TEMPFILE V$TABLESPACE V$ARCHIVE V$LOG V$LOGFILE V$LOGHIST V$ARCHIVED_LOG V$DATABASE 11
Fin de la Lección Jaime Amigo P. 2006, Santiago - Chile