How to find Hidden Parameters in Oracle

The oracle database have a houndres of hidden parameters, that a lot of those parameters are not documented.

Know about those parameters are important for dbas involved in database migrations and upgrades.

Many parameters have a high performance improve on different systems.

Here, I share how to query and change the oracle hidden parameters.

Query to find hidden parameters in oracle 12c , 18c and 19c

 set line 150
 col PARAMETER format a30
 col DESCRIPTION format a60
 col SESSION_VALUE format a10
 col INSTANCE_VALUE format a10
 spool HIDDEN_parameter_database.log


 SELECT a.ksppinm AS parameter,
        a.ksppdesc AS description,
        b.ksppstvl AS session_value,
        c.ksppstvl AS instance_value
 FROM   x$ksppi a,
        x$ksppcv b,
        x$ksppsv c
 WHERE  a.indx = b.indx
 AND    a.indx = c.indx
 AND    a.ksppinm LIKE '/_%' ESCAPE '/'
 ORDER BY a.ksppinm;

spool off

Now, after we save this list, is possible that we need started with an planificated change.

Hidden ParameHow can I set the value of a hidden parameter?

alter system set "_report_capture_cycle_time"=0 scope=spfile sid='*';

Remember, the importance that these parameters must be recommendations of the oracle support, because it can change the behavior of the engine and can leave us in the situation of not having support.

ORA-00845: MEMORY_TARGET not supported on this system

Hace unos dias se tuvo que hacer un redimensionamiento de la memoria donde hubo dos componentes en la memoria:

  1. Quitar del manejo automatico la memoria.
  2. Aumentar el valor de la memoria.

Revisamos los parametros y vemos que la memoria se encuentra configurada de modo automatica.

SQL> sho parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 7960M
sga_target                           big integer 0

Configuramos los parametros para colocar los nuevos valores:

SQL> alter system set sga_max_size = 10240M scope=spfile;
System altered.
SQL>

Cuando inicio la instancia me encuento con el siguiente error:

SQL> startup mount
ORA-00845: MEMORY_TARGET not supported on this system
SQL>

Sigue leyendo

Configurando Dataguard Broker

Oracle nos ofrece esta herramienta para poder hacer pasaje automatico en caso de tener un switch o un fail, y su uso una vez configurado  es tan sencillo como conectarse a la consola del administrador con el comando dgmgrl o desde el Entrerprise Manager con solo haciendo un click.

Yo en este caso voy a disponibilizar el modo de configuración desde la linea de comandos ya que me parece super práctico y nos sirve para conocer un poco más el modo en que trabaja.

Es importante saber que tanto desde la consola del GRID CONTROL o desde comandos hay que hacer una configuración previa que incluye:

  • Configuración de Listener en primaria y secundaria.
  • Configuración de Parametros de la base.
  • Creación de los archivos de configuración del broker. (Debemos ser sysdba)
  • En el caso de trabajar con una base que esta en RAC, hay que hacer la configuración con srvctl. (En este caso yo voy a presentarlo en una instancia en RAC y serán informados de ello para que sepan que el modo es el mismo para la single instance, menos este paso.)

CONFIGURANDO LISTENERS

Comenzaremos configurando los listeners, tanto en nuestra base primaria como en nuestra standby.
Es muy importante este paso ya que si el broker no ve el servicio no podrá hacer ninguna operación de switcheo.

# listener.ora.saturno01 Network Configuration File: /u01/app/oracle/product/10.2.0/db_mbpro/network/admin/listener.ora.saturno01
# Generated by Oracle configuration tools.

MBPRO_SATURNO01 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = saturno01-vip.danahomelinux.com)(PORT = 1526)
(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = saturno01.danahomelinux.com)(PORT = 1526)
(IP = FIRST))
)
)

SID_LIST_MBPRO_SATURNO01 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_mbpro)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = MBPRO_DGMGRL.danahomelinux.com)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_mbpro)
(SID_NAME = MBPRO1)
)
)

Una vez realizada la tarea, procedemos a relodear el listener, y luego con un status service vemos si los cambios fueron impactados.

lsnrctl status MBPRO_SATURNO01
lsnrctl service MBPRO_SATURNO01

Sigue leyendo