{"id":240,"date":"2012-10-02T22:10:28","date_gmt":"2012-10-02T20:10:28","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=240"},"modified":"2012-10-20T20:04:21","modified_gmt":"2012-10-20T18:04:21","slug":"oracleasm-cuando-no-tienes-la-version-excta-del-kernel","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/oracleasm-cuando-no-tienes-la-version-excta-del-kernel\/","title":{"rendered":"oracleasm  cuando no tienes la versi\u00f3n excta del kernel"},"content":{"rendered":"<p>Hoy vamos a ver una solucion casera y <span style=\"color: #ff0000;\"><strong>no soportada<\/strong> <\/span>para cuando no tenemos la versi\u00f3n exacta del kernel y el m\u00f3dulo oracleasm.<\/p>\n<p>El m\u00f3dulo oracleasm viene empaquetado (para RedHat,Centos) en un fichero .rpm y lo deja en el directorio <em>\/lib\/modules\/2.6.XX\/kernel\/drivers\/addon\/oracleasm\/<\/em>\u00a0 . El problema lo tenemos cuando por algun motivo es necesario el actualizar la version del kernel y no hay un paquete espec\u00edfico de asmlib para este kernel.<\/p>\n<p>En la mayor\u00eda de las veces, la nueva\u00a0 version del kernel es un cambio menor de versi\u00f3n, y el m\u00f3dulo de la asmlib funcionar\u00e1 correctamente, nuestro problemas ser\u00e1 que el sistema operativo intentar\u00e1 montar ese m\u00f3dulo para la versi\u00f3n del kernel que tenemos . Si tenemos la version YY\u00a0 el sistema operativo lo buscar\u00e1 en <em>\/lib\/modules\/2.6.YY\/kernel\/drivers\/addon\/oracleasm\/<\/em>\u00a0 y,\u00a0 como hemos dicho antes, el m\u00f3dulo estar\u00e1 en <em>\/lib\/modules\/2.6.XX\/kernel\/drivers\/addon\/oracleasm\/<\/em>\u00a0 lo que significa que en el arranque no cargar\u00e1 el m\u00f3dulo &#8211;&gt; No ira el ASM &#8211;&gt; No arrancar\u00e1 las instancias.<\/p>\n<p>La solucion (como dec\u00eda antes <strong><span style=\"color: #ff0000;\">no soportada<\/span><\/strong> ) es simlemente asegurarnos que, vamos a tener nuestro modulo en el directorio que lo va a buscar el sistema operativo en el arranque.<\/p>\n<p>Para ello miraremos al arrancar si exsiste el fichero\u00a0 del m\u00f3dulo para\u00a0 nuestro kernel\u00a0 <em>\/lib\/modules\/2.6.YY\/kernel\/drivers\/addon\/oracleasm\/oracleasm.ko <\/em>, si no exsiste creamos el directorio y lo copiamos, si exsite, salimos y listo .<\/p>\n<p>El script quedar\u00eda tal que:<\/p>\n<pre>#!\/bin\/bash\r\n#\r\n#  Script que copia el m\u00f3dulo de  oracleasm a directorio\r\n#   kernel\/drivers\/addon\/oracle de nuestro kernel actual\r\n#\r\ncase \"$1\" in\r\nstart )\r\n\u00a0 ORIG_MODULE=\"\/lib\/modules\/2.6.18-308.13.1.el5\/kernel\/drivers\/addon\/oracleasm\/oracleasm.ko\"\r\n\u00a0 MODULE_DIR=\/lib\/modules\/`uname -r`\/kernel\/drivers\/addon\/oracle\r\n\u00a0 if [ ! -f ${MODULE_DIR} ]\r\n\u00a0 then\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 mkdir -p ${MODULE_DIR}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 cp -p ${ORIG_MODULE} ${MODULE_DIR}\r\n\u00a0 fi\r\n\u00a0 depmod -a\r\n;;\r\nstop)\r\n\u00a0\u00a0 true\r\n;;\r\n*)\r\n\u00a0\u00a0\u00a0 echo $\"Usage: $0 {start|stop}\"\r\n\u00a0\u00a0\u00a0 RETVAL=1\r\n;;\r\nesac<\/pre>\n<p>Una de las cosas que tenemos que tener en cuenta es que esto funcionar\u00e1 solo para versiones menores del kernel.<\/p>\n<p>He de advertir de nuevo que, esta soluci\u00f3n <strong><span style=\"color: #ff0000;\">no es una soluci\u00f3n soportada<\/span><\/strong> , con lo que su uso\u00a0 podr\u00eda limitar el soporte que oracle pueda darnos en caso de surgir alg\u00fan problema, sin embargo puede ser una solucion muuy c\u00f3moda en m\u00e1quinas de desarrollo,test o servidores en los que, la base de datos comparte equipo con servidores de aplicaciones o frontales web y la actualizacion de kernel no es una opcion sino una necesidad.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy vamos a ver una solucion casera y no soportada para cuando no tenemos la versi\u00f3n exacta del kernel y el m\u00f3dulo oracleasm. El m\u00f3dulo oracleasm viene empaquetado (para RedHat,Centos) en un fichero .rpm y lo deja en el directorio &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/oracleasm-cuando-no-tienes-la-version-excta-del-kernel\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42,13,41],"tags":[37,39,40,38,36],"class_list":["post-240","post","type-post","status-publish","format-standard","hentry","category-asm","category-scripting","category-sistema-operativo","tag-asmlib","tag-kernel","tag-linux","tag-modulo","tag-oracleasm"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/comments?post=240"}],"version-history":[{"count":8,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/240\/revisions"}],"predecessor-version":[{"id":260,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/240\/revisions\/260"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=240"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}