domingo, 17 de octubre de 2010

Recrear la consola de Administracion de Oracle con EMCA

Al instalar el nuevo servidor de base de datos Oracle 11g, sobre un CentOS 5.4, se puede acceder a la consola de administración por la siguiente dirección.     


Pero luego de reiniciar el servidor posiblemente tengamos un problema al tratar de iniciar el Administrado, y veremos un mensaje como el siguiente, que nos indica que el inicio ha fallado.




Si nos sucede esto, entonces podemos usar el emca (Asistente de Configuracion del EM), así primero debemos editar el archivo portlist.ini

[root@oracleserver ~]# su oracle
[oracle@oracleserver alex]$ cd $ORACLE_HOME/install/
[oracle@oracleserver install]$ vi portlist.ini


Y debemos cambiar la segunda línea al puerto que se 1158, o el que ustedes deseen utilizar, en este caso usaremos el 1158.

Número de puerto HTTP para Ultra Search =5620
Puerto HTTP de la Consola de Enterprise Manager (orcl) = 1158
Puerto del Agente de Enterprise Manager (orcl) = 3938


Para salir de la edición damos ESC y escribimos ":wq" y damos enter. 

Ahora podremos recrear la consola, para esto escribimos lo siguiente, e ingresamos los datos que el asistente nos solicitará.   Para obtener el puerto del listener podemos visualizarlo con: lsnrctl status.


[oracle@oracleserver alex]$ emca -deconfig dbcontrol db -repos drop

EMCA iniciado en 17-oct-2010 18:46:49
Asistente de Configuración EM, Versión 11.1.0.5.0 Producción
Copyright (c) 2003, 2005, Oracle. Todos los Derechos Reservados.

Introduzca la siguiente información:
SID de Base de Datos: orcl
Número de Puerto del Listener: 1521
Contraseña de Usuario SYSMAN:
Contraseña de Usuario SYSMAN:
¿Desea continuar? [sí(Y)/no(N)]: y^H^H
17-oct-2010 18:47:47 oracle.sysman.emcp.EMConfig perform
INFO: Esta operación se está registrando en /usr/app/oracle/cfgtoollogs/emca/ORCL/emca_2010_10_17_18_46_49.log.
17-oct-2010 18:47:48 oracle.sysman.emcp.util.DBControlUtil stopOMS
INFO: Parando Database Control. Puede tardar unos minutos...
17-oct-2010 18:47:55 oracle.sysman.emcp.EMReposConfig stopDBMSJobs
ADVERTENCIA: Error al iniciar la conexión SQL. No se pueden realizar las operaciones SQL
17-oct-2010 18:47:55 oracle.sysman.emcp.EMReposConfig invoke
ADVERTENCIA: No se han podido eliminar los trabajos DBMS.
17-oct-2010 18:47:55 oracle.sysman.emcp.ParamsManager checkListenerStatusForDBControl
ADVERTENCIA: Error al iniciar la conexión SQL. No se pueden realizar las operaciones SQL
17-oct-2010 18:47:55 oracle.sysman.emcp.EMReposConfig invoke
INFO: Borrando el repositorio de EM. Puede tardar unos minutos...
17-oct-2010 18:47:58 oracle.sysman.emcp.EMReposConfig invoke
INFO: El repositorio se ha borrado correctamente
La configuración de Enterprise Manager se ha realizado correctamente
EMCA terminado en 17-oct-2010 18:48:07



Y luego:

 [oracle@oracleserver alex]$ emca -config dbcontrol db -repos create

EMCA iniciado en 17-oct-2010 18:48:26
Asistente de Configuración EM, Versión 11.1.0.5.0 Producción
Copyright (c) 2003, 2005, Oracle. Todos los Derechos Reservados.
Introduzca la siguiente información:
SID de Base de Datos: orcl
Número de Puerto del Listener: 1521
Contraseña de Usuario SYSMAN:
Contraseña de Usuario SYSMAN: Dirección de Correo Electrónico para Notificaciones (opcional):
Servidor de Correo Saliente (SMTP) para Notificaciones (opcional):
-----------------------------------------------------------------
Ha especificado los siguientes valores
ORACLE_HOME de Base de Datos ................ /usr/app/oracle/product/11.1.0/db_1
Nombre de Host Local ................ localhost
Número de Puerto del Listener ................ 1521
SID de Base de Datos ................ orcl
Dirección de Correo Electrónico para Notificaciones ...............
Servidor de Correo Saliente (SMTP) para Notificaciones ...............
-----------------------------------------------------------------
¿Desea continuar? [sí(Y)/no(N)]: y
17-oct-2010 18:49:21 oracle.sysman.emcp.EMConfig perform
INFO: Esta operación se está registrando en /usr/app/oracle/cfgtoollogs/emca/ORCL/emca_2010_10_17_18_48_26.log.
17-oct-2010 18:49:22 oracle.sysman.emcp.EMReposConfig createRepository
INFO: Creando el repositorio de EM. Puede tardar unos minutos...
17-oct-2010 18:53:16 oracle.sysman.emcp.EMReposConfig invoke
INFO: El repositorio se ha creado correctamente
17-oct-2010 18:53:18 oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository
INFO: Cargando los datos de configuración en el repositorio de EM. Puede tardar unos minutos...
17-oct-2010 18:53:53 oracle.sysman.emcp.EMReposConfig invoke
INFO: Los datos de configuración se han cargado correctamente
17-oct-2010 18:53:53 oracle.sysman.emcp.ParamsManager getLocalListener
ADVERTENCIA: Error al recuperar el listener para localhost
17-oct-2010 18:53:54 oracle.sysman.emcp.util.DBControlUtil configureSoftwareLib
INFO: La biblioteca de software se ha configurado correctamente.
17-oct-2010 18:53:54 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary
INFO: Desplegando archivos de provisionamiento...
17-oct-2010 18:54:01 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary
INFO: Los archivos de provisionamiento se han desplegado correctamente.
17-oct-2010 18:54:01 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
INFO: Protegiendo Database Control. Puede tardar unos minutos...
17-oct-2010 18:54:11 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
INFO: Database Control se ha protegido correctamente.
17-oct-2010 18:54:11 oracle.sysman.emcp.util.DBControlUtil startOMS
INFO: Iniciando Database Control. Puede tardar unos minutos...
17-oct-2010 18:54:36 oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: Database Control se ha iniciado correctamente
17-oct-2010 18:54:36 oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: >>>>>>>>>>> La dirección URL de Database Control es https://localhost:1158/em <<<<<<<<<<<
17-oct-2010 18:54:38 oracle.sysman.emcp.EMDBPostConfig invoke
ADVERTENCIA:
************************  WARNING  ************************
El repositorio de gestión se ha colocado en el modo seguro en el que se cifrarán los datos de Enterprise Manager. La clave de ci
frado se ha colocado en el archivo: /usr/app/oracle/product/11.1.0/db_1/localhost_orcl/sysman/config/emkey.ora. Asegúrese de que
se ha realizado una copia de seguridad de este archivo ya que los datos cifrados no se podrán utilizar si éste se pierde.
***********************************************************
La configuración de Enterprise Manager se ha realizado correctamente
EMCA terminado en 17-oct-2010 18:54:38


Y con esto tendremos nuestra consola reconstruida y funcionando correctamente. 
Escribamos en nuestro navegador: https://ipserveroracle:1158/em





lunes, 4 de octubre de 2010

Programar backup Oracle 11g en Centos 5

A continuación se realizará un script que generará un backup de Oracle utilizando el utilitario de exportacion EXP


Script del archivo 1 (backup1.bat):



#!/bin/bash
###########################################################
## Script para realizar backup Oracle
## ver 1.0
## Alex Echavarría
###########################################################
XBACKUP="/backups/oracle"
XDIA=`date +'%Y%m%d-%H%M'`
XDIA_BACKUP=$XBACKUP/$D_DIA
XDIA_F=`date +'%d-%m-%Y %H%M'`
echo "***Proceso de Backup iniciado: " $D_DIA_F


##Creamos el directorio para realizar el backup
mkdir $XDIA_BACKUP
echo "  -> Carpeta creada..."
chmod 777 $XDIA_BACKUP
echo "  -> Generando backup..."


##Seteamos variables de Entorno
export ORACLE_SID=nombre_instancia_oracle
export ORACLE_HOME=/usr/app/oracle/product/11.1.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_OWNER=oracle


##Lanzamos exportacion de ORACLE
exp system/1234 file=$XDIA_BACKUP/archivo_data.dmp owner=pruebas, administracion, conta1, conta2 log=/tmp/export_orasite.log buffer=1000000
echo "  -> Comprimiendo el Backup..."


##Comprimimos el archivo generado
gzip -8 $XDIA_BACKUP/archivo_data.dmp
echo "  -> Backup Generado en " $XDIA_BACKUP 




Ahora necesitamos un script para ejecutar el archivo 1 y que todas las salidas de este se guarden en un archivo log. Para esto simplemente escribimos lo siguiente:


Script del archivo 2 (backup2.bat) :


#!/bin/bash
cd /home/oracle
./backup_oracle.bat >> /tmp/oracle.log


Lo que hará el segundo script es ejecutar el bat 1 y enviar todas las salidas del mismo al archivo oracle.log.

Si consultamos el archivo podremos visualizar algo así:


Ahora que ya tenemos ambos archivos debemos ejecutarlos indicarle al S.O. que lo ejecute en las horas que nosotros deseemos, para esto utilizamos el crontab (Programador de Tareas de Linux). Este es un archivo ubicado en /etc/crontab.

Editamos el archivo con vi:  # vi /etc/crontab

Y agregamos una línea como esta al final:


Donde 45 indica el minuto, y 12,18 la hora, es decir este script se ejecutará a las 12:45 pm. y a las 6:45 p.m.