martes, 29 de marzo de 2011

Como automatizar las tareas de arranque y parada del entorno

Aqui les dejo dos scripts que hemos elaborado en conjunto con Fernando Garcia, para subir y bajar el entorno de estudio instalado para la capacitacion gratuita en Oracle 11g ofrecida por la Comunidad Oracle Hispana.
Para aquellos que no han instalado ASM deberán retocar los scripts para su tipo de configuración.

Crear Directorio


Creamos un directorio donde sea cómodo, para guardar todos nuestros scripts. En mi caso, lo crearé en la ruta: /home/oracle/ con el nombre: myscripts

[oracle@curso ~]$  mkdir myscripts

Modificar el bash_profile (opcional)


Para que nos podamos mover rápidamente al directorio donde se encuentran los scripts debemos modificar el bash_profile, creando una Variable:

[oracle@curso ~]$  vi /home/oracle/.bash_profile

Agregamos en la variable $PATH la ruta de la carpeta myscripts, guardamos y cerramos.
Para que se reflejen los cambios debemos cerrar la terminal y volver a abrirla.

Creación de los Scripts

Crear Script sube.sh


Para crearlo usamos el comando vi:

[oracle@curso myscripts]$  vi sube.sh

Ingresar el texto que sigue:

emctl start dbconsole
lsnrctl start
export ORACLE_SID=+ASM
export ORAENV_ASK=NO
. oraenv
sqlplus -s '/ as sysasm' << eof
startup
exit
eof
export ORACLE_SID=orcl
export ORAENV_ASK=NO
. oraenv
sqlplus -s '/ as sysdba' << eof
startup
exit
eof

Para Insertar texto presionamos a, alli se nos habilita el modo INSERTAR, agregamos uno debajo del otro  las instancias que tengamos en nuestro equipo, si hay mas de una.
Para cerrar la ventana y guardar los cambios, presionamos ESC, luego :x! y <Enter>
Para salir sin guardar los cambios ESC, luego :q! y <Enter>

Crear Script baja.sh


Estando en la misma ruta, creamos el archivo baja.sh, usando nuevamente el comando vi:

[oracle@curso myscripts]$  vi baja.sh

Ingresar el texto que sigue:

export ORACLE_SID=orcl
export ORAENV_ASK=NO
. oraenv
sqlplus -s '/ as sysdba' << eof
shutdown immediate
exit
eof
export ORACLE_SID=+ASM
export ORAENV_ASK=NO
. oraenv
sqlplus -s '/ as sysasm' << eof
shutdown immediate
exit
eof
export ORACLE_SID=orcl
export ORAENV_ASK=NO
. oraenv
lsnrctl stop
emctl stop dbconsole




Asignar a los scripts permisos de ejecución:


[oracle@curso myscripts]$ chmod +x sube.sh
[oracle@curso myscripts]$ chmod +x baja.sh

Para ver las instancias que están arriba:


[oracle@curso myscripts]$ ps -ef |grep pmon
oracle   15466 13114  0 12:38 pts/1    00:00:00 grep pmon

No hay instancias de bases de datos arriba

Ejecutamos el script sube.sh


Qué hace cada Script?


Script sube.sh
emctl start dbconsole
Inicia la consola de Oracle Enterprise Manager
lsnrctl start
Inicia el servicio de Listener
export ORACLE_SID=+ASM
Exporta la Variable ORACLE_SID y le asigna el nombre +ASM (o el nombre de nuestra instancia de ASM)
export ORAENV_ASK=NO
Para que no pida confirmación
. oraenv
Ejecuta el . oraenv y como no le ponemos nada toma el valor que contiene el SID
sqlplus -s '/ as sysasm' << eof
Ingresa al sqlplus como usuario sysasm
startup
Monta la instancia de ASM
exit
Sale del SQL Plus
eof
Termina
export ORACLE_SID=orcl
Exporta la Variable ORACLE_SID y le asigna el nombre orcl (o el nombre de nuestra instancia de base de datos)
export ORAENV_ASK=NO
Para que no pida confirmación
. oraenv
Ejecuta el . oraenv y como no le ponemos nada toma el valor que contiene el SID
sqlplus -s '/ as sysdba' << eof
Ingresa al sqlplus como usuario sysdba
startup
Levanta la instancia de la base de datos
exit
Sale del SQLPlus
eof
Termina

Script baja.sh
export ORACLE_SID=orcl
Exporta la Variable ORACLE_SID y le asigna el nombre orcl (o el nombre de nuestra instancia de base de datos)
export ORAENV_ASK=NO
Para que no pida confirmación
. oraenv
Ejecuta el . oraenv y como no le ponemos nada toma el valor que contiene el SID
sqlplus -s '/ as sysdba' << eof
Ingresa al sqlplus como usuario sysdba
shutdown immediate
Baja la instancia de la base de datos
exit
Sale del SQLPlus
eof
Termina
export ORACLE_SID=+ASM
Exporta la Variable ORACLE_SID y le asigna el nombre +ASM (o el nombre de nuestra instancia de ASM)
export ORAENV_ASK=NO
Para que no pida confirmación
. oraenv
Ejecuta el . oraenv y como no le ponemos nada toma el valor que contiene el SID
sqlplus -s '/ as sysasm' << eof
Ingresa al sqlplus como usuario sysasm
shutdown immediate
Baja la instancia de ASM
exit
Sale del SQLPlus
eof
Termina
export ORACLE_SID=orcl
Exporta la Variable ORACLE_SID y le asigna el nombre orcl (o el nombre de nuestra instancia de base de datos)
export ORAENV_ASK=NO
Para que no pida confirmación
. oraenv
Ejecuta el . oraenv y como no le ponemos nada toma el valor que contiene el SID
lsnrctl stop
Para el Listener
emctl stop dbconsole
Para la consola del Oracle Enterprise Manager


[oracle@curso myscripts]$  sube.sh

[oracle@curso myscripts]$ ps -ef |grep pmon
oracle    5096     1  0 08:43 ?        00:00:00 asm_pmon_+ASM
oracle    5224     1  0 08:43 ?        00:00:00 ora_pmon_orcl
oracle    5969 28958  0 08:46 pts/1    00:00:00 grep pmon

Ejecutamos el script baja.sh

[oracle@curso myscripts]$  sube.sh

[oracle@curso myscripts]$ ps -ef |grep pmon
oracle    5969 28958  0 08:46 pts/1    00:00:00 grep pmon
 


Licencia Creative Commons
Como automatizar las tareas de arranque y parada del entorno por Clarisa Maman Orfali se encuentra bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.



4 comentarios:

  1. Super aporte amiguita, ya tienes un fans +, henry.fc.skype :-)

    ResponderEliminar
  2. hola, primeramente felicidades por el blog.
    quiero saber como dejar el script de sube.sh para que se ejecute al iniciar el servidor.
    saludos.

    ResponderEliminar
  3. Excelente, nunca se me ocurrio armar un script que levante o baje todo pero es muy practico lo voy a implementar, gracias, saludos.

    ResponderEliminar
  4. Funcionará con oracle version 10??

    ResponderEliminar