En este metodo, lo que hicimos fue construir un solo ORACLE_HOME y clonarlo a los demas servidores, pero en este proceso nos dimos cuenta que nuestra copia "base", habia sido borrado el archivo $ORACLE_HOME/network/admin/shrept.lst. Esto causaba que la clonacion a la hora de vincular los binarios de Oracle con el sistema operativo fallaba con el siguiente error:
INFO: Calling Action unixActions10.2.0.3.0 make registerOnly = false installMakePath = /usr/ccs/bin/make installMakeFileName = /mount/oracle/product/11.2.0.2v2/rdbms/lib/ins_rdbms.mk installTarget = client_sharedlib undoMakeFileName = installArguments = ORACLE_HOME=/mount/oracle/product/11.2.0.2v2 logFile = /mount/oracle/product/11.2.0.2v2/install/make.log undoTarget = progMsg = Building Client Shared Libraries INFO: The output of this make operation is also available at: '/mount/oracle/product/11.2.0.2v2/install/make.log' INFO: INFO: Start output from spawned process: INFO: ---------------------------------- INFO: INFO: /mount/oracle/product/11.2.0.2v2/bin/genclntsh INFO: genclntsh: Could not locate /mount/oracle/product/11.2.0.2v2/network/admin/shrept.lst genclntsh: exiting ... INFO: make: Fatal error: Command failed for target `client_sharedlib' INFO: *** Error code 1
Para poder entender lo que hicimos para solucionar este problema, hay que entender que en cualquier distribucion de un sistema operativo basado en Unix, el software de Oracle viene como archivos tipo objeto (object files) o como archivos tipo fuente (source files), estos al ser instalados en Unix se vinculan con las librerias del sistema operativo para generar el ejecutable de oracle.
Lo primero que tuvimos que hacer es recrear el archivo, ya sea de otra instalacion de 11.2.0.2 que tuviera el archivo o lo puedes extraer del cd de instalacion (Metalink id 340978.1), en este caso el contenido de nuestro archivo, es como se menciona abajo:
oracle@localhost [DBATEST] /mount/oracle/product/11.2.0.2v2/network/admin root $ cat shrept.lst # function entry points for genclntsh.sh network : snaumihi_inithostinfo network : snaumbg_gmt network : naedpwd_encrypt network : naumbsb_bld_singlebyte network : ztapis network : nlgh
Una vez que reconstruimos el archivo con el usuario oracle y permisos 644, bajamos todas las instancias y listeners que estuvieran corriendo en el ORACLE_HOME donde fallo la instalacion, y utilizamos el comando $ORACLE_HOME/bin/relink all
oracle@localhost [DBATEST] /mount/oracle/product/11.2.0.2v2/bin root $ ./relink all writing relink log to: /mount/oracle/product/11.2.0.2v2/install/relink.log
Este comando no te regresa un mensaje de exito, es mas bien si ocurre un error durante esta fase te muestra el mensaje de falla, como por ejemplo
'Fatal error', 'Ld: fatal', 'Exit Code 1'
Si te llega a suceder un error, lo mas recomendable es buscar en metalink, si hay otro suceso de este error o abrir un SR con oracle para resolverlo.
Conclusion
El comando de relink all es una herramienta muy util, sobre todo cuando por alguna razon los vinculos se perdieron entre Oracle y las librerias del sistema operativo.
No hay comentarios.:
Publicar un comentario