En Oracle 19c, los parámetros de configuración se pueden clasificar en dos tipos: parámetros estáticos y parámetros dinámicos.
Parámetros Estáticos
Los parámetros estáticos son aquellos que requieren un reinicio de la base de datos para que los cambios tengan efecto. Estos parámetros se establecen en el archivo de inicialización (init.ora o spfile) y afectan la configuración de la base de datos, el número de procesos permitidos, la memoria asignada, etc.
Ejemplos de parámetros estáticos:
DB_BLOCK_SIZE: Define el tamaño del bloque de datos.SGA_TARGET: Establece el tamaño total de la Área Global de Sistema (SGA).PGA_AGGREGATE_TARGET: Define el tamaño total de la memoria de acceso personal (PGA) utilizada por el servidor.
Parámetros Dinámicos
Los parámetros dinámicos pueden ser modificados en tiempo de ejecución, sin necesidad de reiniciar la base de datos. Esto permite ajustes y optimizaciones inmediatas en la configuración de la base de datos.
Ejemplos de parámetros dinámicos:
CURSOR_SHARING: Controla cómo se comparten los cursores entre sesiones.LOG_BUFFER: Define el tamaño del buffer de registro de transacciones.UNDO_RETENTION: Establece el tiempo que se conservan los datos no confirmados en el espacio de Undo.
Así mismo se dividen en Parámetros de Nivel Sesión (Session-Level) y Parámetros a nivel Sistema (System-Level)
Los parámetros de nivel de sesión son específicos para la sesión actual. Cambiar un parámetro en este nivel solo afecta a la sesión en la que se realiza el cambio. Es útil para ajustar configuraciones específicas sin afectar a otras sesiones o al sistema en su conjunto.
Modificación:
Para modificar un parámetro a nivel de sesión, se utiliza la siguiente sintaxis:
ALTER SESSION SET nombre_parametro = valor;
ALTER SESSION SET CURSOR_SHARING = 'FORCE';
Para consultar el valor de un parámetro a nivel de sesión, puedes usar:
SELECT * FROM V$SESSION_PARAMETERS WHERE NAME = 'nombre_parametro';
Parámetros de Nivel de Sistema (System-Level)
Los parámetros de nivel de sistema afectan a toda la instancia de la base de datos. Cambiar un parámetro a este nivel puede tener un impacto en todas las sesiones activas y futuras, dependiendo de cómo se configure.
Modificación:
Para modificar un parámetro a nivel de sistema, la sintaxis es:
ALTER SYSTEM SET nombre_parametro = valor [SCOPE = {MEMORY | SPFILE | BOTH}];
ALTER SYSTEM SET SGA_TARGET = 1G SCOPE = BOTH;
Consulta:
Para consultar el valor de un parámetro a nivel de sistema, se puede usar:
SELECT * FROM V$PARAMETER WHERE NAME = 'nombre_parametro';
Ver todas las Configuraciones
Si deseas ver todos los parámetros configurados (tanto a nivel de sesión como de sistema), puedes usar las siguientes consultas:
-- Para sesión actual
SELECT * FROM V$SESSION_PARAMETERS;
-- Para toda la instancia
SELECT * FROM V$PARAMETER;
-- Para sesión actual
SELECT * FROM V$SESSION_PARAMETERS;
-- Para toda la instancia
SELECT * FROM V$PARAMETER;
Modificación de Parámetros
Para modificar un parámetro dinámico, se puede usar la siguiente sintaxis SQL:
ALTER SYSTEM SET nombre_parametro = valor [SCOPE = SPECIFIED_SCOPE];
Donde SPECIFIED_SCOPE puede ser MEMORY, SPFILE, o BOTH (si se desea que el cambio persista en el archivo de parámetros y en la memoria).
SCOPE = MEMORY
- Descripción: Los cambios realizados con
SCOPE = MEMORYafectan solo a la memoria actual de la instancia de la base de datos. Esto significa que el cambio es temporal y se perderá si la base de datos se reinicia. - Uso: Ideal para realizar ajustes temporales o pruebas sin que el ajuste persista más allá de la sesión actual de la base de datos.
ALTER SYSTEM SET example_parameter = value SCOPE = MEMORY;
Resultado: El valor se cambia en la memoria y se aplica inmediatamente, pero no se almacena en el archivo de parámetros de modo que se restaura el valor anterior después de un reinicio.
SCOPE = SPFILE
- Descripción: Los cambios realizados con
SCOPE = SPFILEse almacenan en el archivo de parámetros (spfile o pfile) de la base de datos. Este cambio persistirá incluso después de reiniciar la base de datos. - Uso: Este tipo de configuración se utiliza para hacer cambios permanentes que deben aplicarse cada vez que se inicia la base de datos.
- Ejemplo
ALTER SYSTEM SET example_parameter = value SCOPE = SPFILE;
Resultado: El cambio se realiza y se guarda en el archivo de parámetros. La próxima vez que se inicie la base de datos, el nuevo valor estará activo.
SCOPE = BOTH
- Descripción: Al usar
SCOPE = BOTH, el cambio se aplica tanto en la memoria actual de la base de datos como en el archivo de parámetros. Esto significa que el cambio es inmediato y también se almacenará para futuras instancias. - Uso: Útil cuando deseas aplicar un cambio de inmediato y asegurarte de que se mantenga en la configuración futura de la base de datos.
ALTER SYSTEM SET example_parameter = value SCOPE = BOTH;
- Resultado: El cambio se aplica inmediatamente en la memoria y se guarda en el archivo de parámetros, asegurando que el nuevo valor esté activo incluso después de un reinicio.
Resumen
- SCOPE = MEMORY: Cambio temporal, se pierde tras el reinicio.
- SCOPE = SPFILE: Cambio permanente, persiste en el archivo de parámetros.
- SCOPE = BOTH: Cambio inmediato y permanente, se aplica en ambos contextos.
Para parámetros dinámicos también se puede usar «deferred» que se refiere a la capacidad de ciertos parámetros para ser aplicados de manera diferida o acumulativa hasta que la base de datos pueda aplicarlos. Esto es particularmente relevante en el caso de parámetros que se consideran «cambiables» pero que no se pueden aplicar inmediatamente debido a restricciones operativas o a la naturaleza de los cambios que provocan.
Estos aspectos son importantes para la administración de parámetros en Oracle, ya que te permiten controlar cuándo y cómo se aplican los cambios según tus necesidades específicas.
Ejemplo de Uso
Cuando un parámetro se modifica con la cláusula SCOPE como BOTH, pero no se puede aplicar de inmediato (por ejemplo, porque la base de datos ya está utilizando ciertas configuraciones), puede ser marcado como diferido para que se aplique en un contexto seguro posteriormente.
Cómo Identificar Parámetros Deferred
Puedes identificar cuáles parámetros admiten cambios diferidos consultando la vista V$PARAMETER o V$PARAMETER2. Al hacer una consulta, puedes observar las columnas que describen la aplicabilidad de los parámetros, tales como:
SELECT NAME, VALUE, ISMODIFIED, ISDEFAULT, ISSESS_MODIFIED
FROM V$PARAMETER
WHERE NAME LIKE '%deferred%';
No todos los parámetros admiten la operación de deferred. Generalmente, los parámetros que afectan estructuras críticas o sesiones activas pueden no ser modificables de manera diferida. En estos casos, Oracle puede requerir un reinicio o una alteración de la sesión para aplicar los cambios.
Ejemplos Comunes
DB_CACHE_SIZE: Ajustar este parámetro puede ser diferido si no hay una necesidad inmediata de cambiarlo en memoria.SGA_TARGET: De forma similar, los ajustes en la memoria pueden ser aplicados de manera diferida si no es posible realizar la modificación de inmediato.
Si tienes más preguntas o necesitas más detalles, ¡no dudes en preguntar!
Para los parámetros estáticos, la modificación solo se puede hacer editando el archivo de inicialización y reiniciando la base de datos.
Consulta de Parámetros
Puedes consultar los parámetros en la base de datos usando la vista V$PARAMETER o el siguiente comando:
SHOW PARAMETER nombre_parametro;
Esto proporciona tanto el valor actual como la definición del parámetro.
Si necesitas información más específica sobre un parámetro en particular en Oracle 19c, no dudes en preguntar.






Deja un comentario