jueves, julio 12, 2012

ORACLE - INICIAR LISTENER Y BD ORACLE 11G CON SCRIPT EN LINUX RED HAT


A continuación les voy a pasar un script en Linux que les puede servir para poder iniciar diferentes bases de datos en Oracle 11G, el siguiente script lo cree para poder iniciar las tres diferentes bases de datos que tenemos en la empresa, pero para el ejemplo tuve que cambiar el nombre de las base de datos.
Quizás la parte más importante del script es la siguiente

echo "@/data/hwong/sentenciaStartupOracle.sql" | ./sqlplus $usuarioSys/$claveBaseDatos02 as sysdba

Con esta sentencia estamos diciendo que ejecute un script SQL, dentro de ese script SQL, solo está el comando “startup” que sirve para iniciar la base de datos. El valor del parámetro $usuarioSys debe ser de un usuario que tenga permiso para iniciar la base de datos, en nuestro caso el usuario “sys” del Oracle y el parámetro $claveBaseDatos02 representa la clave de dicho usuario, este valor lo pedimos al inicio del script con la sentencia.

read -p "Ingrese la clave del usuario SYS del Base02: " claveBaseDatos02

Y finalmente el script valida que ejecutemos todas estas sentencias con el usuario que instalo el Oracle en el sistema operativo, en este caso el usuario se llama “oracle11”, es una buena práctica instalar el Oracle con un usuario diferente que “root”



#!/bin/sh
# ---------SCRIPT ELABORADO POR : HENRY JOE WONG URQUIZA
# ---------Inicia las instancias de la bases de datos 
clear
usuarioConectado=`whoami`
usuarioSys=sys
usuarioValido=oracle11
echo "[LOG INFO]: Recuerda ejecutar estas sentencia con el usuario $usuarioValido y se va a iniciar el LISTENER de forma automatica"
if [ $usuarioConectado == $usuarioValido ]; then
        clear
        read -p "Ingrese la clave del usuario $usuarioSys del Base01: " claveBaseDatos01
        read -p "Ingrese la clave del usuario $usuarioSys del Base02: " claveBaseDatos02
        read -p "Ingrese la clave del usuario $usuarioSys del Base03: " claveBaseDatos03
        echo ""
        echo "OPCIONES PARA INICIAR LAS BASES DE DATOS ORACLE"
        echo "=============================================="
        echo "[1] Iniciar Base01"
        echo "[2] Iniciar Base02"
        echo "[3] Iniciar Base03"
        echo "[4] Iniciar Todos"
        read -p "Eliga una opcion: " opcion
        export ORACLE_HOME=/home/oracle11/app/oracle11/product/11.2.0/dbhome_1
        cd /home/oracle11/app/oracle11/product/11.2.0/dbhome_1/bin
        echo "[LOG INFO]: INICIADO EL LISTENER"
        ./lsnrctl start
echo "[LOG INFO]: LISTENER INICIADO"
        if [ "$opcion" == "1" ]; then
   export ORACLE_SID=BaseDatos01
            echo "[LOG INFO]: Iniciando la base de datos --> $ORACLE_SID"
            echo "@/data/hwong/sentenciaStartupOracle.sql" | ./sqlplus $usuarioSys/$claveBaseDatos02 as sysdba
        elif [ "$opcion" == "2" ];  then
   export ORACLE_SID=BaseDatos02
            echo "[LOG INFO]: Iniciando la base de datos --> $ORACLE_SID"
            echo "@/data/hwong/sentenciaStartupOracle.sql" | ./sqlplus $usuarioSys/$claveBaseDatos03 as sysdba
        elif [ "$opcion" == "3" ];  then
   export ORACLE_SID=BaseDatos03
            echo "[LOG INFO]: Iniciando la base de datos --> $ORACLE_SID"
            echo "@/data/hwong/sentenciaStartupOracle.sql" | ./sqlplus $usuarioSys/$claveBaseDatos01 as sysdba
        elif [ "$opcion" == "4" ];  then
   export ORACLE_SID=BaseDatos01
            echo "[LOG INFO]: Iniciando la base de datos --> $ORACLE_SID"
            echo "@/data/hwong/sentenciaStartupOracle.sql" | ./sqlplus $usuarioSys/$claveBaseDatos02 as sysdba
            export ORACLE_SID=BaseDatos02
            echo "[LOG INFO]: Iniciando la base de datos --> $ORACLE_SID"
            echo "@/data/hwong/sentenciaStartupOracle.sql" | ./sqlplus $usuarioSys/$claveBaseDatos03 as sysdba
            export ORACLE_SID=BaseDatos03
            echo "[LOG INFO]: Iniciando la base de datos --> $ORACLE_SID"
            echo "@/data/hwong/sentenciaStartupOracle.sql" | ./sqlplus $usuarioSys/$claveBaseDatos01 as sysdba
        else
    clear
            echo "[LOG INFO]: Opcion no valida"
    fi
  
else
        echo "[LOG INFO]: Te has conectado con el usuario $usuarioConectado pero debes estar conectado con $usuarioValido"
fi

Un ejemplo de lo que saldría en pantalla es lo siguiente, obviamente tuve que borrar el nombre de las bases de datos.


0 comentarios: