{"id":1857,"date":"2018-02-08T11:23:33","date_gmt":"2018-02-08T10:23:33","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=1857"},"modified":"2018-02-15T18:53:56","modified_gmt":"2018-02-15T17:53:56","slug":"apagando-instancias","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/apagando-instancias\/","title":{"rendered":"Apagando instancias"},"content":{"rendered":"<p>Hoy vamos aver un peque\u00f1o script que nos facilitara el apagar todas las bases de datos de un servidor aunque no esten incluidas en el rac<\/p>\n<p>Si nos fijamos un poco en el script, podemos ver como las funciones de apagado estan comentadas, esto es una mera medida de seguridad para evitar posibles errrores de <i>\u00abcopy &#038; paste \u00bb <\/i><\/p>\n<p>[cc lang=\u00bbshell\u00bb]<br \/>\n#!\/bin\/bash<br \/>\n#<br \/>\n#<br \/>\n# Name:  stop_oratab_alone.sh<br \/>\n# Desc:  Stops all oratab  databases (not RAC)<\/p>\n<p>function estado<br \/>\n{<br \/>\necho \u00bb The status of $ORACLE_SID is:\u00bb<br \/>\nsqlplus -s \u00ab\/as sysdba\u00bb << EOF 2>>\/dev\/null<br \/>\nset linesize 400;<br \/>\ncolumn host_name format a30;<br \/>\ncolumn instance_name format a20;<br \/>\ncolumn Started format a25;<br \/>\ncolumn uptime format a60;<br \/>\nselect<br \/>\n   host_name,<br \/>\n   instance_name,<br \/>\n   to_char(startup_time,&#8217;DD-MON-YYYY HH24:MI:SS&#8217;) Started,<br \/>\n   &#8216;Uptime : &#8216; || floor(sysdate &#8211; startup_time) || &#8216; days(s) &#8216; ||<br \/>\n   trunc( 24*((sysdate-startup_time) &#8211;<br \/>\n   trunc(sysdate-startup_time))) || &#8216; hour(s) &#8216; ||<br \/>\n   mod(trunc(1440*((sysdate-startup_time) &#8211;<br \/>\n   trunc(sysdate-startup_time))), 60) ||&#8217; minute(s) &#8216; ||<br \/>\n   mod(trunc(86400*((sysdate-startup_time) &#8211;<br \/>\n   trunc(sysdate-startup_time))), 60) ||&#8217; seconds&#8217; uptime<br \/>\nfrom<br \/>\n   sys.v_\\$instance;<br \/>\nEOF<\/p>\n<p>}<\/p>\n<p>function apagar<br \/>\n{<br \/>\n#srvctl stop database  -d ${ORACLE_DB}  ${ORACLE_SID} -stopoption IMMEDIATE <\/p>\n<p>}<\/p>\n<p>function test_status<br \/>\n{<br \/>\nsrvctl status database  -d ${ORACLE_DB} ${ORACLE_SID} RED=&#8217;\\033[0;31m&#8217;<br \/>\nGREEN=&#8217;\\033[0;32m&#8217;<br \/>\nNC=&#8217;\\033[0m&#8217;<br \/>\nCOUNT=` ps -ef |grep smon |grep -v grep | grep $ORACLE_SID|wc -l `<br \/>\nif [ ${COUNT} -ne 0 ]; then<br \/>\n  printf \u00ab${RED}FAIL${NC} There are ${COUNT} smon_${ORACLE_SID} processes\\n\u00bb<br \/>\nelse<br \/>\n        printf \u00ab${GREEN} OK ${NC} There is not any smon_${ORACLE_SID} process\\n\u00bb<br \/>\nfi<br \/>\n}<\/p>\n<p>export ORAENV_ASK=NO<br \/>\nexport NODO=`hostname -a`<br \/>\nfor i in  `cat \/etc\/oratab |tr &#8216;:&#8217; &#8216; &#8216; |awk &#8216;{ print ($1)&#8217;}|grep -v \u00ab#\u00bb|grep -v \u00ab+\u00bb|grep -v \u00ab-\u00bb |grep -v [1-9]`<br \/>\n do<br \/>\n        clear<br \/>\n\t\tORACLE_DB=$i<br \/>\n        ORACLE_SID=$i<br \/>\n        . oraenv 2>\/dev\/null<br \/>\n        export ORACLE_SID=`ps -ef|grep pmon|grep $i |tr &#8216;_&#8217; &#8216; &#8216;|awk &#8216;{ print ($10)&#8217;}`<br \/>\n        echo \u00abNew oracle SID=$ORACLE_SID\u00bb<br \/>\n        estado;<br \/>\n        #apagar<br \/>\n        test_status;<\/p>\n<p>read<br \/>\necho \u00ab[press any key]\u00bb<br \/>\n done<\/p>\n<p>[\/cc]<\/p>\n<p>Este script tiene una particularidad, y es que no esta pensado para usarse en RAC, para usarse en un RAC solamente habra que modificar la sintaxsis de apagado incluyendo el <i>instance name <\/i> y el <i>nodo <\/i><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy vamos aver un peque\u00f1o script que nos facilitara el apagar todas las bases de datos de un servidor aunque no esten incluidas en el rac Si nos fijamos un poco en el script, podemos ver como las funciones de &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/apagando-instancias\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60,9],"tags":[867,865,248,869,213],"class_list":["post-1857","post","type-post","status-publish","format-standard","hentry","category-12c","category-dummie","tag-apagado","tag-bookmark","tag-dummie","tag-oratab","tag-srvctl"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1857","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=1857"}],"version-history":[{"count":6,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1857\/revisions"}],"predecessor-version":[{"id":1876,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1857\/revisions\/1876"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=1857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=1857"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=1857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}