Error ORA-12154 en Oracle RMAN

Hola a todos. En esta ocasión, vamos a hablaros de un error que nos ha aparecido en RMAN. El error ORA-12154 nos ha aparecido duplicando una base de datos. Pero ¿por qué ocurre?,¿cómo solucionarlo?

En este caso estamos lanzando un active duplicate con rman

rman target sys/pass@pri auxiliary sys/pass@aux

En ambos nodos hemos probado las entradas pri y aux, funcionando correctamente, pero a la hora de lanzar el duplicate obtenemos un error ORA-12154.

¿Por qué se produce el error ORA-12154?

En ocasiones RMAN falla cuando estamos duplicando una base de datos en un RAC y nos da el siguiente error:

ORA-12154: TNS:could not resolve the connect identifier specified

RMAN-03002: failure of Duplicate Db command at 05/06/2023 11:11:48

RMAN-05501: aborting duplication of target database

RMAN-03015: error occurred in stored script Memory Script

RMAN-03009: failure of backup command on t0 channel at 05/06/2023 11:11:48

ORA-17629: Cannot connect to the remote database server

ORA-17627: ORA-12154: TNS:could not resolve the connect identifier specified

ORA-17629: Cannot connect to the remote database server

El error ORA-12154 se produce cuando Oracle no encuentra un alias en el fichero TNSNAMES.ORA.

solucionar el error ORA-12154

Como os indicamos en esta entrada, en el fichero tnsnames.ora, se establecen las conexiones de Oracle para poder acceder a los servidores.

Tras revisar la configuración, vemos que nuestros TNSNAMES están correctos en el servidor de origen (source) y en el servidor de destino (target). Recuerda que debes haber añadido a la cadena de conexión del TNSNAMES:  (UR=A). ¿Entonces que está pasando?

¿Cómo solucionar el error ORA-12154?

Al realizar la conexión entre la primary y la standby, hay ocasiones en las que Oracle utiliza un fichero tnsnames.ora que no es el correcto. Para poder solucionar el error ORA-12154 tenemos dos opciones:

Copiando el TNSNAMES en el ORACLE_HOME de GRID

Este error podemos solucionarlo copiando las entrasdas pri y aux en el TNSNAMES en el HOME del GRID ($ORACLE_HOME/network/admin), de esta manera RMAN ya reconocerá origen y destino y comenzará con la duplicación de la base de datos.

Usando la cadena de conexión completa

Otra posible solución para este error es lanzar la conexión a RMAN usando la cadena de conexión completa del alias del TNSNAMES:

RMAN> connect auxiliary_db sys/<password>@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<service name>)(UR=A)))

Con esta solución, ya se están dando todos los datos para realizar el duplicate, por lo que no es necesario utilizar el tnsnames.ora y evitamos el error.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *