
Varios fuentesen Internet sugieren que es necesario volver a vincular los archivos binarios de Oracle después de cada actualización y/o parche del sistema operativo.
Puedo entender que sería necesario volver a vincular al actualizar glibc. Es probable que algunos paquetes no requieran volver a vincularse, otros sí, otros no estoy seguro de ellos:
- actualizando glibc -> Supongo que es necesario volver a vincular
- actualizando vim -> Supongo que no es necesario volver a vincularlo
- actualizando gzip -> No estoy seguro
- actualizando el kernel -> No estoy seguro
¿Alguien tiene una lista o alguien puede indicarme una lista de las bibliotecas que Oracle realmente vincula? No soy un DBA de Oracle, por lo que no tengo ni idea sobre el procedimiento de vinculación de Oracle. Ni siquiera estoy seguro de entender lo que Oracle está haciendo durante la nueva vinculación: en realidad no es una práctica común en el software binario realizar su propia vinculación después de la instalación, ¿verdad?
De todos modos, para abreviar la historia: tengo un par de cajas RHEL[345] a las que necesito aplicar algunos parches. La mayoría de las cajas ejecutan Oracle y me pregunto qué parches requerirían volver a vincularse y cuáles no. Estaría bien una lista lo más exhaustiva posible :)
Respuesta1
Rara vez he necesitado volver a vincular la base de datos de Oracle, tal vez solo después de una actualización importante del sistema operativo o de pasar de 32 bits a 64 bits. Sin embargo, si tienes dudas, simplemente ejecútalo. Tarda un minuto. Otra fuente para consultar es la nota 131321.1 de metalink... lo esencial es:
" La nueva vinculación se produce automáticamente en estas circunstancias:
- Se ha instalado un producto de Oracle con un instalador proporcionado por Oracle.
- Se aplicó un conjunto de parches de Oracle a través de un instalador proporcionado por Oracle.
La siguiente información se ha agregado a la sección 'Certificar' de Metalink:
Notas generales para la base de datos Oracle - Edición empresarial:
Información O/S: Los proveedores garantizan la compatibilidad binaria del sistema operativo; por lo tanto, no es necesario volver a instalar ni vincular el software de Oracle al actualizar estos sistemas operativos, a menos que se indique específicamente lo contrario.
Se sugiere volver a vincular Oracle manualmente en las siguientes circunstancias (aunque el proveedor del sistema operativo no lo requiera):
- Se ha producido una actualización del sistema operativo.
- Se ha realizado un cambio en las bibliotecas del sistema operativo. Esto puede ocurrir durante la aplicación de un parche del sistema operativo.
- Una nueva instalación falló durante la fase de revinculación.
- Volcado de núcleo de ejecutables individuales de Oracle durante el inicio inicial.
- Se ha aplicado un parche individual de Oracle (sin embargo, las instrucciones explícitas para volver a vincular generalmente se incluyen en el archivo README o se integran en el script de instalación del parche).
"
Respuesta2
Para obtener una imagen completa, además de lo que se dijo anteriormente, es posible que Oracle Clusterware también necesite volver a vincularse si está cambiando el kernel de Linux. Por ejemplo, si utiliza el sistema de archivos ACFS, Oracle tiene controladores del kernel ACFS para una versión específica del kernel de Linux. Sin embargo, no estoy seguro de si las actualizaciones menores del kernel califican para esto.
En realidad, no es un reenlace en sí mismo lo que repara los controladores de clusterware acfs, sino el script crs/install/rootcrs.pl -lock (o roothas.pl -lock para un clusterware de un solo nodo) que instala nuevos controladores ACFS. Tendrá que llamar a rootcrs.pl -unlock antes de volver a vincular los archivos binarios del clusterware y, una vez finalizado el proceso de vinculación, entonces rootcrs.pl -lock .
Respuesta3
De la nota de Oracle Metalink "Preguntas frecuentes sobre cómo volver a vincular Oracle Home (Preguntas frecuentes) (ID de documento 1467060.1)" ya mencionada en otra respuesta, la versión actual del documento:
¿Cuándo es necesario volver a vincular manualmente? Es necesario volver a vincular manualmente en las siguientes situaciones.
A) Después de la actualización del sistema operativo, generalmente los proveedores de sistemas operativos garantizan la compatibilidad binaria del sistema operativo; por lo tanto, no es necesario volver a instalar ni vincular el software de Oracle al actualizar estos sistemas operativos, a menos que se indique específicamente lo contrario. "Sin embargo, Oracle recomienda volver a vincular manualmente los archivos binarios de Oracle Home después de la actualización del sistema operativo". Los cambios de hardware no requieren volver a vincularse.
B) Después de que se haya parcheado el sistema operativo (recomendado).
¿Se requiere volver a vincular después de una actualización del sistema operativo, una degradación, un parche o la eliminación del parche? Sí, Oracle recomienda volver a vincular manualmente los binarios principales de Oracle después de actualizar, aplicar parches, degradar o eliminar el parche o cualquier cambio que afecte el comportamiento de la biblioteca del sistema operativo. La revinculación exitosa muestra que Oracle Executable está vinculado correctamente con los archivos binarios del sistema operativo.
Si utiliza Oracle Linux, entonces esto es 100% compatible con Redhat Enterprise Linux segúnPreguntas frecuentes sobre Oracle Linux
- Oracle Linux es una aplicación binaria compatible con Red Hat Enterprise Linux, ya sea que ejecute Unbreakable Enterprise Kernel o el kernel alternativo compatible con Red Hat de Oracle. Las aplicaciones existentes se ejecutan sin cambios con Unbreakable Enterprise Kernel porque todas las bibliotecas del sistema permanecen sin cambios.
Red Hat Enterprise Linux 7: GUÍA de compatibilidad de aplicaciones.
Nota: Durante el ciclo de vida de una versión principal, Red Hat realiza esfuerzos comercialmente razonables para mantener la compatibilidad binaria para el entorno de ejecución principal en todas las versiones menores y avisos de erratas. Si es necesario, Red Hat puede hacer excepciones a este objetivo de compatibilidad por impactos críticos en la seguridad u otros problemas importantes. Además, como se describió anteriormente y en el Apéndice A, las versiones principales de Red Hat Enterprise Linux contienen un conjunto limitado de bibliotecas compatibles con versiones anteriores incluidas en versiones principales anteriores para permitir una fácil migración de aplicaciones. Normalmente, Red Hat aplica los cambios de tal manera que minimice la cantidad de cambios y mantenga la compatibilidad binaria. Se pueden aplicar excepciones para rebases de paquetes controlados bajo ciertas circunstancias.
Por lo tanto, Oracle recomienda volver a vincular los binarios después de un cambio (un parche, una actualización,...) y Redhat sólo hace "esfuerzos comercialmente razonables para mantener la compatibilidad binaria para el entorno de ejecución principal en todas las versiones menores".
Para la compatibilidad binaria no sólo es necesario que el sistema operativo no cambie la interfaz binaria de la aplicación (ABI), sino también que la aplicación sólo utilice esta interfaz y ninguna otra rutina, tal vez no documentada.
Volver a vincular es fácil y Oracle proporciona un script que debe ejecutarse en el entorno correcto. Entonces, en realidad, podría agregar enlaces a los scripts de inicio de su base de datos, si tiene uno, y hacer este enlace cada vez que inicie la base de datos.
Los paquetes de Linux necesarios se pueden encontrar en elGuía de instalación de bases de datos para Linuxen la sección
- Tareas de preinstalación de la base de datos Oracle
4.8. Requisitos del sistema operativo para plataformas Linux x86-64
4.8.1. Distribuciones compatibles de Oracle Linux 7 y Red Hat Enterprise Linux 7 para x86-64 y para Linux 7 y Oracle 12. Puede encontrar
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
Pero no estoy seguro de qué tan confiable sea esta información del manual. >También puedes ejecutar el comando "ldd" para algunos binarios para saber qué bibliotecas utiliza.
$ ldd $ORACLE_HOME/bin/oracle
linux-vdso.so.1 => (0x...)
libodm11.so => $ORACLE_HOME/lib/libodm11.so (0x...)
libcell11.so => $ORACLE_HOME/lib/libcell11.so (0x...)
libskgxp11.so => $ORACLE_HOME/lib/libskgxp11.so (0x...)
librt.so.1 => /lib64/librt.so.1 (0x...)
libnnz11.so => $ORACLE_HOME/lib/libnnz11.so (0x...)
libclsra11.so => $ORACLE_HOME/lib/libclsra11.so (0x...)
libdbcfg11.so => $ORACLE_HOME/lib/libdbcfg11.so (0x...)
libhasgen11.so => $ORACLE_HOME/lib/libhasgen11.so (0x...)
libskgxn2.so => $ORACLE_HOME/lib/libskgxn2.so (0x...)
libocr11.so => $ORACLE_HOME/lib/libocr11.so (0x...)
libocrb11.so => $ORACLE_HOME/lib/libocrb11.so (0x...)
libocrutl11.so => $ORACLE_HOME/lib/libocrutl11.so (0x...)
libaio.so.1 => /lib64/libaio.so.1 (0x...)
libdl.so.2 => /lib64/libdl.so.2 (0x...)
libm.so.6 => /lib64/libm.so.6 (0x...)
libpthread.so.0 => /lib64/libpthread.so.0 (0x...)
libnsl.so.1 => /lib64/libnsl.so.1 (0x...)
libc.so.6 => /lib64/libc.so.6 (0x...)
/lib64/ld-linux-x86-64.so.2 (0x...)
$
Pero creo que es más fácil volver a vincular el software de Oracle. Esto no es difícil. Según la nota de Metalink, establece las variables.
ORACLE_HOME
PATH to include $ORACLE_HOME/bin
LD_LIBRARY_PATH $ORACLE_HOME/lib:/usr/lib
y correr
$ORACLE_HOME/bin/relink all
Respuesta4
Yo sugeriríaNopara todos tus escenarios. Siempre entendí que volver a vincular era para cuando actualizabas o parcheabas partes de tuOráculoinstalación, no su sistema operativo compatible.