{"id":248,"date":"2012-10-16T22:45:38","date_gmt":"2012-10-16T20:45:38","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=248"},"modified":"2012-10-20T20:01:23","modified_gmt":"2012-10-20T18:01:23","slug":"anadir-un-recurso-a-grid-control-clusterware","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/anadir-un-recurso-a-grid-control-clusterware\/","title":{"rendered":"A\u00f1adir un recurso a grid control \/clusterware"},"content":{"rendered":"<p>Una de las ventajas que nos ofrece Oracle clusterware o Oracle Grid control es el gestionar una serie de elementos\/procesos\/aplicaciones arranc\u00e1ndolas o par\u00e1ndolas de manera centralizada.<\/p>\n<p>Si instalamos nuestras bases con\u00a0 la infraestructura de grid control, podemos aprovecharnos de la misma para gestionar en el arranque otros elementos como servidores de aplicaciones o la consola de administracion.Esto puede sernos muy util por ejemplo en caso de reinicio del servidor ya que grid control se puede encargar de levantar estos procesos.<\/p>\n<p>En esta entrada vamos a ver como a\u00f1adir la consola de administracion a el grid control, pero puede ser igualmente valido para cualquier procesos\/servidor como podr\u00eda ser un tomcat, apache o cualquier cosa por el estilo.<\/p>\n<p>Como pasos prvios necesitaremos:<\/p>\n<ul>\n<li><strong>Script de arranque\/parada\/check de nuestra aplicacion<\/strong>, en nuestro caso estar\u00e1 en \/opt\/oracle\/app\/admin\/PRUEBAS\/consola\/dbconsole<\/li>\n<li><strong>SID del gri<\/strong>d\u00a0 en nuestro caso +ASM<\/li>\n<li><strong>SID de la instancia<\/strong> en nuestro caso PRUEBAS<\/li>\n<li><strong>Nombre del servidor:<\/strong> En nuestro caso\u00a0 pruebas.org<\/li>\n<\/ul>\n<p>Vamos primero a ver el script que arranca\/para \/chequea la consola<\/p>\n<pre>#! \/bin\/sh\r\n# Author:\u00a0\u00a0\u00a0 Clemente Pamplona\r\n# Date:\u00a0\u00a0\u00a0\u00a0\u00a0 15-10-2012\r\n# Usage:\u00a0\u00a0\u00a0\u00a0 dbconsole [start|stop|status|check]\r\n# Purpose:\u00a0\u00a0 Arranca ,para y quequea la dbconsole \r\n# Copyright: GNU GPL\r\n\r\nexport ORACLE_SID=PRUEBAS\r\nexport ORAENV_ASK=NO\r\nexport ORACLE_BASE=\/opt\/oracle\r\nexport ORACLE_HOSTNAME=pruebas.org\r\n. oraenv \r\ncase $1 in\r\n\u00a0\u00a0\u00a0 START|start)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 emctl start dbconsole\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ;;\r\n\u00a0\u00a0\u00a0 STOP|stop)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 emctl stop dbconsole\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ;;\r\n\u00a0\u00a0\u00a0 STATUS|status)\r\n        emctl status dbconsole\r\n        ;;\r\n    CHECK|check)\r\n      rm \/var\/tmp\/consola_status.txt\r\n      emctl status dbconsole \r\n      if [ $? != 0 ]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 then exit 1;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 fi\r\n        ;;\r\n\r\n\u00a0\u00a0\u00a0 *) echo \"Usage: dbconsole [start|stop|status|check]\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 exit\r\n\u00a0\u00a0\u00a0\u00a0 ;;\r\n\u00a0\u00a0 esac<\/pre>\n<p>Este script podemos probarlo como usuario oracle en el servidor.<\/p>\n<p>Una vez tenemos nuestro script creado que es capaz de arrancar y parar la consola, cargaremos el entorno del grid.<\/p>\n<pre>[oracle@pruebas.org consola]$ . oraenv\r\nORACLE_SID = [oracle] ? +ASM<\/pre>\n<p>Lo primero que vamos ha hacer es comprobar que elementos tiene corriendo nuestro grid<\/p>\n<pre>[oracle@pruebas.org consola]$ crs_stat -t\r\nName\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Target\u00a0\u00a0\u00a0 State\u00a0\u00a0\u00a0\u00a0 Host\r\n-----------------------------------------------------------------\r\nora.DATA.dg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.diskgroup.type ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.LISTENER.lsnr ora.listener.type\u00a0 ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.asm\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.asm.type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.cssd\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.cssd.type\u00a0\u00a0\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.pruebas.db\u00a0\u00a0\u00a0 ora.database.type\u00a0 ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.diskmon\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.diskmon.type\u00a0\u00a0 OFFLINE\u00a0\u00a0 OFFLINE\r\nora.evmd\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.evm.type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.ons\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.ons.type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 OFFLINE\u00a0\u00a0 OFFLINE<\/pre>\n<p>Vemos como tenemos claramente identificados el ASM, el Listener y la instancia . As\u00ed pues vamos\u00a0 a a\u00f1adrir un recurso local\u00a0 tal y como dice la documentacion del <a title=\"documentacion de crsctl\" href=\"http:\/\/docs.oracle.com\/cd\/E14072_01\/rac.112\/e10717\/crsref.htm#CHDIHGHE\" target=\"_blank\">crsctl<\/a><\/p>\n<pre>crsctl add resource dbconsola_pruebas -type local_resource \\\r\n-attr \"ACTION_SCRIPT=\/opt\/oracle\/app\/admin\/PRUEBAS\/consola\/dbconsole,\\\r\n\u00a0CHECK_INTERVAL='300',\\\r\n\u00a0RESTART_ATTEMPTS='2',\\\r\n\u00a0START_DEPENDENCIES=hard(ora.pruebas.db)\"<\/pre>\n<p>Con esto le indicamos que cree:<\/p>\n<ul>\n<li>recurso llamado pruebas<\/li>\n<li>del tipo local_resource<\/li>\n<li>usar\u00e1 nuestro script para actuar sobre \u00e9l<\/li>\n<li>chequear\u00e1 su funcionamiento cada 5 minutos (300 segundos)<\/li>\n<li>Intentar\u00e1 rearrancarlo 2 veces<\/li>\n<li>Para arrancarlo deber\u00e1 de estar la base de datos pruebas activa<\/li>\n<\/ul>\n<p>Ahora podremos arrancarlo \/pararlo \/monitorizarlo desde las herramientas del grid.<\/p>\n<pre>$ORACLE_HOME\/bin\/crsctl start resource dbconsola_pruebas\r\n\r\n$ORACLE_HOME\/bin\/crsctl stop resource dbconsola_pruebas\r\n\r\n$ORACLE_HOME\/bin\/crsctl status resource dbconsola_pruebas<\/pre>\n<p>O bien con la salida total del sistema<\/p>\n<pre>[oracle@pruebas.org consola]$ crs_stat -t\r\nName\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Target\u00a0\u00a0\u00a0 State\u00a0\u00a0\u00a0\u00a0 Host\r\n-----------------------------------------------------------------\r\ndbco..._pruebas\u00a0 local_resource\u00a0\u00a0\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.DATA.dg\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.diskgroup.type ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.LISTENER.lsnr ora.listener.type\u00a0 ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.asm\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.asm.type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.cssd\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.cssd.type\u00a0\u00a0\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.pruebas.db\u00a0\u00a0\u00a0 ora.database.type\u00a0 ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.diskmon\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.diskmon.type\u00a0\u00a0 OFFLINE\u00a0\u00a0 OFFLINE\r\nora.evmd\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.evm.type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 ONLINE\u00a0\u00a0\u00a0 pruebas.org\r\nora.ons\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ora.ons.type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 OFFLINE\u00a0\u00a0 OFFLINE<\/pre>\n<p>&nbsp;<\/p>\n<p>P.D uede parecer algo evidente, pero, nuestro recurso nunca podr\u00e1 llamarse <strong>ora.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una de las ventajas que nos ofrece Oracle clusterware o Oracle Grid control es el gestionar una serie de elementos\/procesos\/aplicaciones arranc\u00e1ndolas o par\u00e1ndolas de manera centralizada. Si instalamos nuestras bases con\u00a0 la infraestructura de grid control, podemos aprovecharnos de la &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/anadir-un-recurso-a-grid-control-clusterware\/\">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":[11,43,5],"tags":[],"class_list":["post-248","post","type-post","status-publish","format-standard","hentry","category-11g","category-grid","category-em"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/248","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=248"}],"version-history":[{"count":8,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/248\/revisions"}],"predecessor-version":[{"id":255,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/248\/revisions\/255"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=248"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}