domingo, 30 de junio de 2013

Instalar Oracle Database 12cR1 en OEL 6 con ASM

Verificar si se cumplen con los requerimientos del sistema:


1 GB of space in the /tmp directory.


Mis recursos son los siguientes:

[root@orcl12c ~]# grep MemTotal /proc/meminfo
MemTotal:        4066632 kB
[root@orcl12c ~]# grep SwapTotal /proc/meminfo
SwapTotal:       3080188 kB
[root@orcl12c ~]# df -h /tmp
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_orcl12c-lv_root
                       32G  2.8G   28G  10% /
[root@orcl12c ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_orcl12c-lv_root
                       32G  2.8G   28G  10% /
tmpfs                 1.5G  100K  1.5G   1% /dev/shm
/dev/sda1             485M   55M  405M  12% /boot
[root@orcl12c ~]# free
             total       used       free     shared    buffers     cached
Mem:       3066632     503408    2563224          0      23304     186700
-/+ buffers/cache:     293404    2773228
Swap:      3080188          0    3080188
[root@orcl12c ~]# uname -m
x86_64
[root@orcl12c ~]# cat /etc/issue
Oracle Linux Server release 6.4

Instalar los paquetes necesarios para el sistema, Para OEL 6 64 bits son los siguientes:

binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (i686)
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (i686)
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (i686)
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6 (i686)
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6 (i686)
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6 (i686)
libXext-1.1 (x86_64)
libXext-1.1 (i686)
libXtst-1.0.99.2 (x86_64)
libXtst-1.0.99.2 (i686)
libX11-1.3 (x86_64)
libX11-1.3 (i686)
libXau-1.0.5 (x86_64)
libXau-1.0.5 (i686)
libxcb-1.5 (x86_64)
libxcb-1.5 (i686)
libXi-1.3 (x86_64)
libXi-1.3 (i686)
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)

Si se necesita instalar paquetes ODBC estas son las versiones:


Para Más información sobre prerrequisitos visite el siguiente link:

http://docs.oracle.com/cd/E16655_01/install.121/e17720/pre_install.htm#BABFDGHJ

Configuraicon de los parametros del Kernel:

[root@orcl12c app]# vi /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

[root@orcl12c app]# /sbin/sysctl -p

Configuracion de Limits, Agregar las siguientes líneas en el archivo limits.conf:

[root@orcl12c app]# vi /etc/security/limits.conf
grid  hard  nofile  65536
grid  soft  nproc  2047

oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    2047
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768

Creación de grupos y usuarios para base de datos y Grid Infrastructure  (GI) Standalone:

# /usr/sbin/groupadd -g 54321 oinstall
# /usr/sbin/groupadd -g 54322 dba
# /usr/sbin/groupadd -g 54323 oper
# /usr/sbin/groupadd -g 54324 backupdba
# /usr/sbin/groupadd -g 54325 dgdba
# /usr/sbin/groupadd -g 54326 kmdba
# /usr/sbin/groupadd -g 54327 asmdba
# /usr/sbin/groupadd -g 54328 asmoper
# /usr/sbin/groupadd -g 54329 asmadmin
#/usr/sbin/useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba oracle
#/usr/sbin/useradd -u 54322 -g oinstall -G asmadmin,asmdba,dba grid
# passwd oracle

Para más información sobre los grupos y usuarios visite el siguiente link:

http://docs.oracle.com/cd/E16655_01/install.121/e17720/usr_grps.htm#CHDGHJBF

Creación de los directorios para el software de la base de datos y para el software de GI Standalone:

# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01/app/oracle

# mkdir -p /u01/app/grid
# chown -R grid:oinstall /u01/app/grid
# chmod -R 775 /u01/app/grid

# mkdir -p /u01/app/oraInventory
# chown -R grid:oinstall /u01/app/oraInventory
# chmod -R 775 /u01/app/oraInventory
[grid@orcl12c ~]$ cat .bash_profile
export ORACLE_SID=+ASM
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/grid
export ORACLE_BASE=/u01/app/oracle
export PATH=$ORACLE_HOME/bin:$PATH
[oracle@orcl12c ~]$ cat .bash_profile
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/db1
export ORACLE_BASE=/u01/app/oracle
export PATH=$ORACLE_HOME/bin:$PATH
Permisos a los discos que se van a usar en ASM:

[root@orcl12c ~]# chown grid:asmadmin /dev/sdb1
[root@orcl12c ~]# chmod 660 /dev/sdb1
[root@orcl12c ~]# ls -ltr /dev/sdb*
brw-rw----. 1 root disk     8, 16 Jun 28 15:39 /dev/sdb
brw-rw----. 1 grid asmadmin 8, 17 Jun 28 15:39 /dev/sdb1

Situar los instaladores de Base de Datos y GI en el servidor:

#rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm
#rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm

Los paquetes de ASM puedes descargarlos de aqui:

[root@orcl12c ~]# /usr/sbin/oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: grid
Start Oracle ASM library driver on boot (y/n) [n]: ^C
[root@orcl12c ~]# /usr/sbin/oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
[root@orcl12c ~]#

# /usr/sbin/oracleasm init

[root@orcl12c ~]# oracleasm createdisk disk1 /dev/sdb1
Writing disk header: done
Instantiating disk: done

ls -r /home/*

/home/oracle:
linuxamd64_12c_database_2of2.zip
linuxamd64_12c_database_1of2.zip

/home/grid:
linuxamd64_12c_grid_2of2.zip  linuxamd64_12c_grid_1of2.zip

INSTALAR GRID INFRASTRUCTURE STANDALONE

Descomprimir los archivos para instalar GI:

[grid@orcl12c ~]$ unzip linuxamd64_12c_grid_1of2.zip
[grid@orcl12c ~]$ unzip linuxamd64_12c_grid_2of2.zip
[grid@orcl12c grid]$ ./runInstaller

Si recive el siguiente error: "PRVF-002: Could not retrieve local nodename" vaya al siguiente link: http://oraclefromguatemala.blogspot.com/2013/06/prvf-002-could-not-retrieve-local.html














Estos parametros se dejaron a proposito sin establecerse para que se pueda observar la utilidad de 12c, Un script que genera automáticamente el instalador y establece todos los parametros necesarios de Kernel.












INSTALAR LA BASE DE DATOS

[oracle@orcl12c ~]$ unzip linuxamd64_12c_database_1of2.zip
[oracle@orcl12c ~]$ unzip linuxamd64_12c_database_2of2.zip
[oracle@orcl12c ~]$ cd database/
[oracle@orcl12c database]$ ./runInstaller






















viernes, 28 de junio de 2013

PRVF-002: Could not retrieve local nodename

Cuando instalamos una base de datos Oracle comunmente se realiza sobre una instalación fresca del Sistema Operativo, esto puede provocar que cuando se instale el Software del Grid Infraestructure se ve el siguiente error:


La solución es sencilla, solo realize los siguientes pasos:

Vemos el hostname que esta seteado correctamente:

[root@orcl12c ~]# hostname
orcl12c

La solución es modificar el archivo /etc/hosts y registrar nuestro servidor con el hostname:

Antes:
[root@orcl12c ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Despues:
[root@orcl12c ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.2    orcl12c

Volver a lanzar el instalador:

[grid@orcl12c grid]$ ./runInstaller

miércoles, 26 de junio de 2013

java.util.zip.ZipException: error in opening zip file

Síntomas:

AIX 6.1 64bits
weblogic 10.3.5
SOA Suite 11.1.1.5
JDK 1.6 

Se realiza el despliegue el Enterprise Manager em.ear (este articulo también aplica a cualquier EAR), el despliegue se realiza correctamente pero cuando se inicializa (Servicing all request) falla con el siguiente error en la consola web: 


Se consulta el log del AdminServer y no muestra información relevante,  solamente el siguiente mensaje:

        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused By: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:137)
        at java.util.jar.JarFile.<init>(JarFile.java:149)
        at java.util.jar.JarFile.<init>(JarFile.java:86)
        at com.sun.faces.facelets.util.Classpath.getAlternativeJarFile(Classpath.java:259)
        at com.sun.faces.facelets.util.Classpath.search(Classpath.java:112)
        at com.sun.faces.facelets.util.Classpath.search(Classpath.java:89)
        at com.sun.faces.config.conf

Causa:

La causa de este error pueden ser varias, entre ellas:

  • Corrupción del EAR que se desea desplegar.
  • Permisos de los archivos que almacena el EAR
  • Conflicto de Librerías.
  • Corrupción de binarios en el WebLogic

 Para descartar que el EAR esté corrupto puede hacer lo siguiente:

$unzip midespliegue.ear

Si los archivos son extraídos correctamente, entonces el EAR no está corrupto.
Si pasa la prueba de corrupción, entonces ya tendríamos que tener los archivos extraídos, bastaría con ejecutar la siguiente sentencia para ver los permisos de todos los archivos extraídos:

ls -ltr *

Si todos los permisos son correctos, entonces se tendría que verificar qué librerías utiliza nuestro despliegue y luego hacer un análisis si esas librerías existen en el weblogic, sí fueron cargadas correctamente, si las versiones de las librerías son las correctas, etc., esta fue la causa de mi problema.

De no encontrar conflictos entre librerías, la única razón que quedaría sería corrupción en binarios del Weblogic, por lo que se necesitaría reinstalar el dominio, o restaurar el dominio desde un backup que se tenga realizado.

Solución:

La Solución para este problema en particular (despliegue del em.ear) se debe a conflictos entre las librerias jsf(1.2,1.2.9.0) y  jsf(2.0). Unicamente el jsf (1.2) debe estar corriendo en el AdminServer.

1. Logearse al WebLogic Console (http://hostname:7001/console)
2. Clic Deployments
3. Clic en el despliegue jsf(2.0)
4. Clic Pestaña Targets
5. Deseleccionar AdminServer
6. Reiniciar los servicios de WebLogic.

martes, 25 de junio de 2013

Oracle 12cR1 Liberado

El día de hoy Oracle ha liberado la versión 12c de Base de Datos en su primer Release. Esta base de datos ha sido esperada desde principios de año por sus nuevas caracteristicas que dejan muy atras a su predecesor 11g.

A continuación un articulo donde se detallan algunas de las nuevas caracteristicas de base de datos 12c:

http://oraclefromguatemala.blogspot.com/2013/03/que-hay-de-nuevo-en-oracle-database-12c_26.html

A continuación los links de descarga:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

La documentación se encuentra en el siguiente link:

http://www.oracle.com/pls/db121/homepage



lunes, 17 de junio de 2013

¿Cuándo usar BPEL?

En el mundo de TI, el concepto de abstracción es particularmente útil. Pero cada abstracción tiene un precio, y la abstracción de los servicios no es la excepción. Acoplamiento débil, compatibilidad, la agilidad y los demás beneficios de SOA todos introducen sobrecarga de rendimiento. Para los conjuntos limitados de servicios con un pequeño número de usuarios, este impacto en el rendimiento puede ser mínimo, pero para las implementaciones de SOA con un gran número de usuarios, servicios o de tráfico, el mantenimiento de los niveles de desempeño necesarios plantea un reto importante, tanto para los arquitectos que diseñan la infraestructura, como personal de operaciones de TI que son responsables de velar por que el rendimiento se mantenga optimo.

De hecho, en ambientes SOA con los más altos requisitos de rendimiento, manteniendo la abstracción servicios con alto tráfico es una preocupación primordial. Pero si dejamos la abstracción por un lado, entonces los servicios dejan de satisfacer las necesidades ágiles de la empresa, y la calidad de la implementación de SOA se viene abajo como un castillo de naipes.

No todos los servicios web deben ser construidos en BPEL, pues entonces se estaría tomando BPEL como un nuevo "lenguaje de programación" y eso, bien se sabe que no es así, adicionalmente sobrecargamos el web service.

Entonces, como ya lo indicamos antes, tenemos que encontrar un punto intermedio entre flexibilidad y buen rendimiento, por lo que aconsejo utilizar BPEL para las siguientes situaciones:

  • Composición compleja de flujos paralelos que involucran varios servicios web.
  • Composiciones que se ejecutan por largo tiempo, varios minutos, horas o incluso días.
  • Composiciones Asíncronas que requieren la interacción de varios servicios web.
  • Procesos que son necesarios realizar un trazo para debuggear en tiempo real las interacciones entre varios servicios web.
  • Tareas Humanas (aprobaciones, rechazos y escalamiento de tareas).

En el articulo Challenges With Using Bpel, realizado por Guy Huntington, se resalta el siguiente párrafo:


Ejemplo de un servicio BPEL (Proceso Solicitud de Compra)


viernes, 14 de junio de 2013

Specified driver could not be loaded due to system error 1114

Ambiente

Windows Server 2003 SP2 32bits
Oracle Cliente 11.2.0.3 32bits
Business Object XI 3.0
BD destino: Oracle Database 11.2.0.3

Nota:
  • El cliente fue instalado con Administrador Local.
  • El Antivirus está desactivado 

Síntomas

El test de conectividad por tnsnames desde el Cliente es satisfactorio.
Al intentar conectarse mediante ODBC desde Business Object pasando por el cliente de Oracle se produce el siguiente error:

DBD: Specified driver could not be loaded due to system error  1114 (Oracle en OraClient11g_home1).

Se buscó errores en el Event Viewer de Windows y no se encontraron errores reportados.

Se reemplazaron librerías mfc71.dll, msvcrt.dll and msvcr71.dll desde C:\Windows\System32 hacia Oracle_Home.

Limpieza de la instalación:
Se eliminó el ODBC actualmente utilizado.
Se desinstaló el cliente 11.2.0.3.
Se limpió la instalación, eliminación de registros en el registro del sistema, eliminación del home en el Oracle Inventory, eliminación de los archivos en el Oracle_Home.
Se reinició la maquina.

Se instaló el cliente 11.2.0.1 32bits. con Administrador Local.
La instalación se realiza sin problemas.
El problema aún persistía.

Solución

Se hizo nuevamente la limpieza de la instalación del cliente 11.2.0.1.

Una vez limpiada la instalación del anterior cliente 11.2.0.1, se procedió a instalar el cliente 10.2.0.1 32bits (10201_client_win32) con usuario Administrador Local.

Se reinició la maquina.

La conexión Business Object - ODBC Oracle Client funcionó correctamente.

Oracle ACE Director Award - Deiby Gómez

Thanks #OracleACE Program for this awesome certificate recognizing the work I have done in the community for the last year. Looking forwa...