jueves, 10 de septiembre de 2009

Errores ORA-01105 / ORA-19808 RAC

Uno de los problemas que pueden darse con regularidad en una instalación RAC, es que por omisión a la hora de cambiar un parámetro de configuración en alguno de los nodos de la instancia, lo hagamos sólo para el nodo en donde estamos conectados y no para todos los nodos del RAC.
Esto podría evitarse, si los archivos SPFILE estuvieran en el ASM+, pero alguna razón especial, podría darse, que queramos mantenerlos en cada nodo del RAC.
Si la opción tomada es esta última, es necesario tener el cuidado respectivo para evitar problemas como el ORA-01105 / ORA-19808, el cuál se debe a que los parámetros de db_recovery_file_dest y db_recovery_file_dest_size, deben ser iguales para todas las instancias del RAC.
Veamos un ejemplo:

Hemos notado que nuestra instalación RAC esta un poco lenta. A la hora de verificar la cantidad de instancias activas en el RAC, nos encontramos que nos hace falta un nodo del mismo.

SQL> connect / as sysdba
Connected.
SQL> select * from v$active_instances;

INST_NUMBER INST_NAME
----------- ------------------------------------------------------------
2 racdb2.lab.co.cr:admin2

Aprovechando que estamos en este nodo, verificamos los parámetros en cuestión, que tienen que ver con este error específico.

SQL> show parameter recovery

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string +FLASH_RECOVERY
db_recovery_file_dest_size big integer 200000M
recovery_parallelism integer 0

Nos vamos al nodo 1, que al parecer no tiene activa la instancia. Cuando intento montar la base de datos, me muestra el mensaje de la condición de error:

SQL> connect / as sysdba
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1610612736 bytes
Fixed Size 2084296 bytes
Variable Size 553648696 bytes
Database Buffers 1040187392 bytes
Redo Buffers 14692352 bytes
ORA-01105: mount is incompatible with mounts by other instances
ORA-19808: recovery destination parameter mismatch

Si recordamos los valores de la instancia del nodo 2, nos damos cuenta, que el valor para el db_recovery_file_dest_size, esta diferente en el nodo 1. Para resolver el problema, modifique el valor del parámetro al valor de la instancia del nodo 2. Esto lo puede hacer de varias formas. Una de ellas es, a partir del archivo binario ( SPFILE ) de parámetros, cree un archivo tipo ASCII ( PFILE ), modifique el valor del parámetro e intente levantar la instancia con el archivo creado.

SQL> show parameter recovery

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string +FLASH_RECOVERY
db_recovery_file_dest_size big integer 150000M
recovery_parallelism integer 0
SQL> exit
Disconnected from Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
With the Real Application Clusters option


SQL> startup mount;
ORACLE instance started.

Total System Global Area 1610612736 bytes
Fixed Size 2084296 bytes
Variable Size 553648696 bytes
Database Buffers 1040187392 bytes
Redo Buffers 14692352 bytes
Database mounted.
SQL>

Si el resultado es positivo, a partir del archivo PFILE, vuelva a recrear el archivo SPFILE de la instancia con problema y reinicié la base de datos.
Si a la hora de consultar la vista v$active_instances, lográ ver el nodo 1 activo, el problema ya se encuentra resuelto.

SQL> select * from v$active_instances;

INST_NUMBER INST_NAME
----------- ------------------------------------------------------------
1 racdb1.lab.co.cr:admin1
2 racdb2.lab.co.cr:admin2

SQL>


No hay comentarios:

Publicar un comentario

Te agradezco tus comentarios. Te esperamos de vuelta.

Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar