Hoy vamos a ver todo lo que tiene que ver con el arranque y la parada de la base de datos, para ello vamos a ver primero el fichero de configuración de la instancia.
Para arrancar la instancia, el servidor Oracle tiene que leer el fichero de parámetros de inicialización (spfile o init), cuya ubicación predeterminada es $ORACLE_HOME/dbs.
El fichero de parámetros de inicialización puede ser de dos tipos
- Init: se trata de un fichero de texto, editable, cuyo nombre sigue el patron init$ORACLE_SID.ora
- Spfile: es un fichero binario, no editable pero visualizable, cuyo nombre sigue el patrón spfiles$ORACLE_SID.ora.
- Para poder crear un fichero binario (Spfile) es necesario crear un crear un fichero ascii, por tanto hay que partir de un fichero init.
La primera vez que arrancamos la base de datos oracle lo hacemos con el fichero init, y luego ya creamos el Spfile.
CREATE SPFILE [=’nombre’] FROM PFILE [=’nombre’];
Si se omiten los nombres, toma los valores por defecto.
La Base de datos no podrá abrir el nuevo spfile hasta el siguiente arranque.
Se puede crear un init a partir de un spfile, invirtiendo la sixtansis. - Los parámetros del spfile se modifican con:
ALTER SYSTEM SET parametro = valor [SCOPE = MEMORY | SPFILE | BOTH]Si sólo queremos modificar el parámetros en el spfile, indicaremos SPFILE. Para hacer el cambio solo en memoria, especifica MEMORY.
- Para poder crear un fichero binario (Spfile) es necesario crear un crear un fichero ascii, por tanto hay que partir de un fichero init.
Oracle cuando arranca primero comprueba si existe el fichero Spfile, si este no existe buscara el fichero Init y arranca con este.
¿Por qué la base de datos Oracle busca primero el fichero Init?
El fichero binario te proporciona mayor seguridad a la hora de configurar la base de datos Oracle porque te parsea los parámetros, por tanto si metes un parámetros que no existe o un valor que se sale del rango te dirá oracle donde esta el error cosa que con el texto plano solo te indicará que existe un error en el fichero pero no te indica el motivo.
¿Cómo se crea un fichero Init?
- Hay dos tipos de parámetros:
- Explícitos: los que se indican en el fichero de parámetros.
- Implícitos: el resto, que tomarán un valor por defecto.
- La forma de indicar valor a los parámetros es
parametro=valor. - El símbolo # indica el comienzo de un comentario, pudiendoestar al principio o en medio de la línea.
- En el init.ora, el parámetro ifile permite incluir otros ficheros con parámetros.
- Una lista de valores se indicará entre paréntesis, separando los valores por comas.
- Para indicar un valor de tipo cadena de caracteres hay que encerrarlo entre comillas simples.
- Si usamos OFA, la ubicación típica para el init.ora es $ORACLE_BASE/admin/$ORACLE_SID/pfile. Después creamos unenlace en $ORACLE_HOME/dbs (ubicación por defecto).
Ejemplo de código INIT.ORA
db_name=CURSO08 db_block_size=2048 compatible = 11.1.0 control_files = (/u02/oradata/CURSO08/control1.ctl, /u03/oradata/CURSO08/control2.ctl) undo_management = auto # Utilizado para realizar rollback de las transacciones undo_tablespace = undo_rbs diagnostic_dest = /u01/app/oracle # Parámetro que define donde va estar el directorio de diagnostico. memory_max_target = 208M memory_target = 200M sga_max_size = 160M sga_target = 0 pga_aggregate_target = 0 log_buffer = 1048576 log_checkpoint_interval = 0 log_checkpoint_timeout = 1800 # t. en segundos processes = 40 # Establece el nº max procesos simultaneos en la instancia, (procesos background + procesos servidores) remote_login_passwordfile=EXCLUSIVE # Para activar el fichero de claves para usar el sys en remoto. nls_territory=spain nls_language=spanish session_cached_cursors=50 # En <=9i era open_cursors (Numero de cursores que se van a cachear en la sesion) result_cache_max_size = 8M
Muchas gracias por tu aporte espero continué aportando..
Muy claro gracias